Skip to content

[Console] Markup error and crash when loading specific media image in debug mode. #854

Open
@claunia

Description

@claunia

Version

Development commit

Commit hash

1f164d9

Tested debug version?

  • Yes

Which operating systems have you used?

  • Windows
  • Linux
  • macOS
  • Other

What is the architectural bit size you're using?

  • 32-bit
  • 64-bit
  • Unsure or unknown

What processor are you using?

  • An Intel or AMD
  • An ARM or Apple Silicon
  • Unsure or unknown

Description

Some debug output from filesystem information is detected as wrong markup crashing console manager.

Exact command line used

aaru --debug fs info Verbatim.vhd

Expected behavior

Debug information shown.

Actual behavior

Crash.

Output of command execution with debug output enabled

aaru 6.0.0-alpha9+1f164d9c.1f164d9c7513c8293c0c385d20e7ad83831ad2d4
Copyright © 2011-2024 Natalia Portillo

DEBUG (Fs-info command): --debug=True
DEBUG (Fs-info command): --encoding=
DEBUG (Fs-info command): --filesystems=True
DEBUG (Fs-info command): --input=Verbatim.vhd
DEBUG (Fs-info command): --partitions=True
DEBUG (Fs-info command): --verbose=False
DEBUG (Format detection): Trying plugin A2R
DEBUG (Format detection): Trying plugin Aaru Format
DEBUG (Format detection): Trying plugin ACT Apricot Disk Image
DEBUG (Format detection): Trying plugin Alcohol 120% Media Descriptor Structure
DEBUG (Format detection): Trying plugin Anex86 Disk Image
DEBUG (Anex86 plugin): fdihdr.unknown = 0
DEBUG (Anex86 plugin): fdihdr.hddtype = 0
DEBUG (Anex86 plugin): fdihdr.hdrSize = 0
DEBUG (Anex86 plugin): fdihdr.dskSize = 0
DEBUG (Anex86 plugin): fdihdr.bps = 0
DEBUG (Anex86 plugin): fdihdr.spt = 0
DEBUG (Anex86 plugin): fdihdr.heads = 0
DEBUG (Anex86 plugin): fdihdr.cylinders = 0
DEBUG (Format detection): Trying plugin Apple 2IMG
DEBUG (Format detection): Trying plugin Apple Disk Archival/Retrieval Tool
DEBUG (Format detection): Trying plugin Apple DiskCopy 4.2
DEBUG (DiskCopy 4.2 plugin): tmp_header.diskName = ""
DEBUG (DiskCopy 4.2 plugin): tmp_header.dataSize = 0 bytes
DEBUG (DiskCopy 4.2 plugin): tmp_header.tagSize = 0 bytes
DEBUG (DiskCopy 4.2 plugin): tmp_header.dataChecksum = 0x00000000
DEBUG (DiskCopy 4.2 plugin): tmp_header.tagChecksum = 0x00000000
DEBUG (DiskCopy 4.2 plugin): tmp_header.format = 0x00
DEBUG (DiskCopy 4.2 plugin): tmp_header.fmtByte = 0x00
DEBUG (DiskCopy 4.2 plugin): tmp_header.valid = 0
DEBUG (DiskCopy 4.2 plugin): tmp_header.reserved = 0
DEBUG (Format detection): Trying plugin Apple New Disk Image Format
DEBUG (Format detection): Trying plugin Apple NIB
DEBUG (Format detection): Trying plugin Apple Universal Disk Image Format
DEBUG (Format detection): Trying plugin Basic Lisa Utility
DEBUG (Format detection): Trying plugin BlindWrite 4
DEBUG (Format detection): Trying plugin BlindWrite 5
DEBUG (Format detection): Trying plugin CDRDAO tocfile
DEBUG (Format detection): Trying plugin CDRWin cuesheet
DEBUG (Format detection): Trying plugin CisCopy Disk Image (DC-File)
DEBUG (Format detection): Trying plugin CloneCD
DEBUG (Format detection): Trying plugin CopyTape
DEBUG (Format detection): Trying plugin CPCEMU Disk-File and Extended CPC Disk-File
DEBUG (Format detection): Trying plugin d2f disk image
DEBUG (Format detection): Trying plugin D88 Disk Image
DEBUG (D88 plugin): d88hdr.name = ""
DEBUG (D88 plugin): d88hdr.reserved is empty? = True
DEBUG (D88 plugin): d88hdr.write_protect = 0x00
DEBUG (D88 plugin): d88hdr.disk_type = D2 (0)
DEBUG (D88 plugin): d88hdr.disk_size = 0
DEBUG (Format detection): Trying plugin Digital Research DiskCopy
DEBUG (Format detection): Trying plugin DIM Disk Image
DEBUG (Format detection): Trying plugin DiscFerret
DEBUG (Format detection): Trying plugin DiscJuggler
DEBUG (DiscJuggler plugin): dscLen = 0
DEBUG (Format detection): Trying plugin DiskDupe DDI Disk Image
DEBUG (Format detection): Trying plugin Dreamcast GDI image
DEBUG (Format detection): Trying plugin Dunfield's IMD
DEBUG (Format detection): Trying plugin HD-Copy disk image
DEBUG (Format detection): Trying plugin IBM SaveDskF
DEBUG (Format detection): Trying plugin KryoFlux STREAM
DEBUG (Format detection): Trying plugin MAME Compressed Hunks of Data
DEBUG (Format detection): Trying plugin MAXI Disk image
DEBUG (MAXI Disk plugin): tmp_header.unknown = 0
DEBUG (MAXI Disk plugin): tmp_header.diskType = 0
DEBUG (MAXI Disk plugin): tmp_header.heads = 0
DEBUG (MAXI Disk plugin): tmp_header.cylinders = 0
DEBUG (MAXI Disk plugin): tmp_header.bytesPerSector = 0
DEBUG (MAXI Disk plugin): tmp_header.sectorsPerTrack = 0
DEBUG (MAXI Disk plugin): tmp_header.unknown2 = 0
DEBUG (MAXI Disk plugin): tmp_header.unknown3 = 0
DEBUG (Format detection): Trying plugin Microsoft VHDX
DEBUG (Format detection): Trying plugin Nero Burning ROM image
DEBUG (Nero plugin): imageStream.Length = 500107862528
DEBUG (Nero plugin): footerV1.ChunkID = 0x00000000
DEBUG (Nero plugin): footerV1.FirstChunkOffset = 0
DEBUG (Nero plugin): footerV2.ChunkID = 0x00000000
DEBUG (Nero plugin): footerV2.FirstChunkOffset = 0
DEBUG (Format detection): Trying plugin Parallels disk image
DEBUG (Format detection): Trying plugin PartClone disk image
DEBUG (Format detection): Trying plugin Partimage disk image
DEBUG (Format detection): Trying plugin QEMU Copy-On-Write disk image
DEBUG (Format detection): Trying plugin QEMU Copy-On-Write disk image v2
DEBUG (QCOW2 plugin): qHdr.magic = 0x00000000
DEBUG (QCOW2 plugin): qHdr.version = 0
DEBUG (Format detection): Trying plugin QEMU Enhanced Disk image
DEBUG (Format detection): Trying plugin Ray Arachelian's Disk IMage
DEBUG (Ray Arachelian's Disk IMage plugin): header.signature = 
DEBUG (Ray Arachelian's Disk IMage plugin): header.diskType = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.heads = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.cylinders = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.sectorsPerTrack = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.signature matches? = False
DEBUG (Format detection): Trying plugin RS-IDE Hard Disk Image
DEBUG (Format detection): Trying plugin Spectrum Floppy Disk Image
DEBUG (Format detection): Trying plugin SuperCardPro
DEBUG (Format detection): Trying plugin Sydex CopyQM
DEBUG (Format detection): Trying plugin Sydex TeleDisk
DEBUG (Format detection): Trying plugin T98 Hard Disk Image
DEBUG (T98 plugin): cylinders = 0
DEBUG (Format detection): Trying plugin T98-Next NHD r0 Disk Image
DEBUG (Format detection): Trying plugin Virtual PC
Image format identified by Virtual PC.

DEBUG (Virtual PC plugin): Header checksum = 0x00000000, calculated = 0xFFFFF718
DEBUG (Virtual PC plugin): Header checksum = 0xFFFFE905, calculated = 0xFFFFE905
DEBUG (Virtual PC plugin): footer.cookie = 0x636F6E6563746978
DEBUG (Virtual PC plugin): footer.features = 0x00000002
DEBUG (Virtual PC plugin): footer.version = 0x00010000
DEBUG (Virtual PC plugin): footer.offset = 18446744073709551615
DEBUG (Virtual PC plugin): footer.timestamp = 0x2EDBAD94 (11/28/2024 10:39:16 PM)
DEBUG (Virtual PC plugin): footer.creatorApplication = 0x61617275 ("aaru")
DEBUG (Virtual PC plugin): footer.creatorVersion = 0x05030200
DEBUG (Virtual PC plugin): footer.creatorHostOS = 0x5769326B ("Wi2k")
DEBUG (Virtual PC plugin): footer.originalSize = 500107862016
DEBUG (Virtual PC plugin): footer.currentSize = 500107862016
DEBUG (Virtual PC plugin): footer.diskGeometry = 0xC93D103F (C/H/S: 51517/16/63)
DEBUG (Virtual PC plugin): footer.diskType = 0x00000002
DEBUG (Virtual PC plugin): footer.checksum = 0xFFFFE905
DEBUG (Virtual PC plugin): footer.uniqueId = 75032a47-0000-0000-0000-000000000000
DEBUG (Virtual PC plugin): footer.savedState = 0x00
DEBUG (Virtual PC plugin): footer.reserved's SHA1 = 0x85c37df2fb35b828d0bef525f6d8b7ee5cda6f60
DEBUG (Apricot partitions plugin): label.version = ""
DEBUG (Apricot partitions plugin): label.operatingSystem = 0 (Invalid)
DEBUG (Apricot partitions plugin): label.writeProtected = False
DEBUG (Apricot partitions plugin): label.copyProtected = False
DEBUG (Apricot partitions plugin): label.bootType = 0 (Non-bootable)
DEBUG (Apricot partitions plugin): label.partitionCount = 0
DEBUG (Apricot partitions plugin): label.winchester = False
DEBUG (Apricot partitions plugin): label.sectorSize = 0
DEBUG (Apricot partitions plugin): label.spt = 0
DEBUG (Apricot partitions plugin): label.cylinders = 0
DEBUG (Apricot partitions plugin): label.heads = 0
DEBUG (Apricot partitions plugin): label.interleave = 0
DEBUG (Apricot partitions plugin): label.skew = 0
DEBUG (Apricot partitions plugin): label.bootLocation = 0
DEBUG (Apricot partitions plugin): label.bootSize = 0
DEBUG (Apricot partitions plugin): label.bootAddress = 0x00000000
DEBUG (Apricot partitions plugin): label.bootOffset:label.bootSegment = 0000:0000
DEBUG (Apricot partitions plugin): label.firstDataBlock = 0
DEBUG (Apricot partitions plugin): label.generation = 0
DEBUG (Apricot partitions plugin): label.copyCount = 0
DEBUG (Apricot partitions plugin): label.maxCopies = 0
DEBUG (Apricot partitions plugin): label.serialNumber = ""
DEBUG (Apricot partitions plugin): label.partNumber = ""
DEBUG (Apricot partitions plugin): label.copyright = ""
DEBUG (Apricot partitions plugin): label.mainBPB.bps = 0
DEBUG (Apricot partitions plugin): label.mainBPB.spc = 0
DEBUG (Apricot partitions plugin): label.mainBPB.rsectors = 0
DEBUG (Apricot partitions plugin): label.mainBPB.fats_no = 0
DEBUG (Apricot partitions plugin): label.mainBPB.root_ent = 0
DEBUG (Apricot partitions plugin): label.mainBPB.sectors = 0
DEBUG (Apricot partitions plugin): label.mainBPB.media = 0
DEBUG (Apricot partitions plugin): label.mainBPB.spfat = 0
DEBUG (Apricot partitions plugin): label.mainBPB.diskType = 0 (MF1DD 70-track)
DEBUG (Apricot partitions plugin): label.mainBPB.startSector = 0
DEBUG (Apricot partitions plugin): label.fontName = ""
DEBUG (Apricot partitions plugin): label.keyboardName = ""
DEBUG (Apricot partitions plugin): label.biosMajorVersion = 0
DEBUG (Apricot partitions plugin): label.biosMinorVersion = 0
DEBUG (Apricot partitions plugin): label.diagnosticsFlag = False
DEBUG (Apricot partitions plugin): label.prnDevice = 0 (Parallel)
DEBUG (Apricot partitions plugin): label.bellVolume = 0
DEBUG (Apricot partitions plugin): label.enableCache = False
DEBUG (Apricot partitions plugin): label.enableGraphics = False
DEBUG (Apricot partitions plugin): label.dosLength = 0
DEBUG (Apricot partitions plugin): label.fontLength = 0
DEBUG (Apricot partitions plugin): label.keyboardLength = 0
DEBUG (Apricot partitions plugin): label.dosStart = 0
DEBUG (Apricot partitions plugin): label.fontStart = 0
DEBUG (Apricot partitions plugin): label.keyboardStart = 0
DEBUG (Apricot partitions plugin): label.keyboardVolume = 0
DEBUG (Apricot partitions plugin): label.autorepeat = False
DEBUG (Apricot partitions plugin): label.autorepeatLeadIn = 0
DEBUG (Apricot partitions plugin): label.autorepeatInterval = 0
DEBUG (Apricot partitions plugin): label.microscreenMode = 0
DEBUG (Apricot partitions plugin): label.spareKeyboard is null? = True
DEBUG (Apricot partitions plugin): label.lineMode = 0 (256 lines)
DEBUG (Apricot partitions plugin): label.lineWidth = 0 (80 columns)
DEBUG (Apricot partitions plugin): label.imageOff = False
DEBUG (Apricot partitions plugin): label.spareScreen is null? = True
DEBUG (Apricot partitions plugin): label.txBaudRate = 0 (50 bps)
DEBUG (Apricot partitions plugin): label.rxBaudRate = 0 (50 bps)
DEBUG (Apricot partitions plugin): label.txBits = 0
DEBUG (Apricot partitions plugin): label.rxBits = 0
DEBUG (Apricot partitions plugin): label.stopBits = 0 (1 bits)
DEBUG (Apricot partitions plugin): label.parityCheck = False
DEBUG (Apricot partitions plugin): label.parityType = 0 (None)
DEBUG (Apricot partitions plugin): label.txXonXoff = False
DEBUG (Apricot partitions plugin): label.rxXonXoff = False
DEBUG (Apricot partitions plugin): label.xonCharacter = 0
DEBUG (Apricot partitions plugin): label.xoffCharacter = 0
DEBUG (Apricot partitions plugin): label.rxXonXoffBuffer = 0
DEBUG (Apricot partitions plugin): label.dtrDsr = False
DEBUG (Apricot partitions plugin): label.ctsRts = False
DEBUG (Apricot partitions plugin): label.nullsAfterCr = 0
DEBUG (Apricot partitions plugin): label.nullsAfterFF = 0
DEBUG (Apricot partitions plugin): label.lfAfterCRSerial = False
DEBUG (Apricot partitions plugin): label.biosErrorReportSerial = False
DEBUG (Apricot partitions plugin): label.spareSerial is null? = True
DEBUG (Apricot partitions plugin): label.lfAfterCrParallel = False
DEBUG (Apricot partitions plugin): label.selectLine = False
DEBUG (Apricot partitions plugin): label.paperEmpty = False
DEBUG (Apricot partitions plugin): label.faultLine = False
DEBUG (Apricot partitions plugin): label.biosErrorReportParallel = False
DEBUG (Apricot partitions plugin): label.spareParallel is null? = True
DEBUG (Apricot partitions plugin): label.spareWinchester is null? = True
DEBUG (Apricot partitions plugin): label.parkingEnabled = False
DEBUG (Apricot partitions plugin): label.formatProtection = False
DEBUG (Apricot partitions plugin): label.spareRamDisk is null? = True
Error reading file: Unbalanced markup stack. Did you forget to close a tag?
System.InvalidOperationException: Unbalanced markup stack. Did you forget to close a tag?
  at Paragraph Spectre.Console.MarkupParser.Parse(string text, Style style) in /_/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs:55                                                                                             
  at void Spectre.Console.AnsiConsoleExtensions.Markup(IAnsiConsole console, string value) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:77                                                                        
  at void Spectre.Console.AnsiConsoleExtensions.Markup(IAnsiConsole console, IFormatProvider provider, string format, params object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:47                       
  at void Spectre.Console.AnsiConsoleExtensions.MarkupLine(IAnsiConsole console, IFormatProvider provider, string format, params object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:129                  
  at void Spectre.Console.AnsiConsoleExtensions.MarkupLine(IAnsiConsole console, string format, params object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:88                                             
  at void Aaru.Commands.Filesystem.FilesystemInfoCommand.<>c__DisplayClass2_1.<Invoke>b__2(string format, object[] objects) in /home/claunia/Development/Aaru/Aaru/Aaru/Commands/Filesystem/Info.cs:91                                    
  at void Aaru.Console.AaruConsole.DebugWriteLine(string module, string format, params object[] arg) in /home/claunia/Development/Aaru/Aaru/Aaru.Console/AaruConsole.cs:188                                                               
  at bool Aaru.Partitions.Apricot.GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) in /home/claunia/Development/Aaru/Aaru/Aaru.Partitions/Apricot.cs:300                                       
  at List<Partition> Aaru.Core.Partitions.GetAll(IMediaImage image) in /home/claunia/Development/Aaru/Aaru/Aaru.Core/Partitions.cs:113                                                                                                    
  at void Aaru.Commands.Filesystem.FilesystemInfoCommand.<>c__DisplayClass2_4.<Invoke>b__6(ProgressContext ctx) in /home/claunia/Development/Aaru/Aaru/Aaru/Commands/Filesystem/Info.cs:235                                               
  at Task Spectre.Console.Progress.<>c__DisplayClass29_0.<Start>b__0(ProgressContext ctx) in /_/src/Spectre.Console/Live/Progress/Progress.cs:70                                                                                          
  at void Spectre.Console.Progress.<>c__DisplayClass31_0.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:103                                                                                           
  at void Spectre.Console.Progress.<>c__DisplayClass32_0`1.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:138                                                                                         
  at async Task<T> Spectre.Console.Internal.DefaultExclusivityMode.RunAsync<T>(Func<Task<T>> func) in /_/src/Spectre.Console/Internal/DefaultExclusivityMode.cs:40                                                                        
  at async Task<T> Spectre.Console.Progress.StartAsync<T>(Func<ProgressContext, Task<T>> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:121                                                                                  
  at async Task Spectre.Console.Progress.StartAsync(Func<ProgressContext, Task> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:101                                                                                           
  at void Spectre.Console.Progress.Start(Action<ProgressContext> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:74                                                                                                           
  at void Aaru.Core.Spectre.ProgressSingleSpinner(Action<ProgressContext> action) in /home/claunia/Development/Aaru/Aaru/Aaru.Core/Spectre.cs:11                                                                                          
  at int Aaru.Commands.Filesystem.FilesystemInfoCommand.Invoke(bool verbose, bool debug, string encoding, bool filesystems, bool partitions, string imagePath) in /home/claunia/Development/Aaru/Aaru/Aaru/Commands/Filesystem/Info.cs:232
Uploading statistics

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions