[Bug 34990] New: Winedbg is unable to set breakpoints when encountering unsupported managed PDB symbol/record types
http://bugs.winehq.org/show_bug.cgi?id=34990 Bug #: 34990 Summary: Winedbg is unable to set breakpoints when encountering unsupported managed PDB symbol/record types Product: Wine Version: 1.7.7 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: dbghelp AssignedTo: wine-bugs(a)winehq.org ReportedBy: focht(a)gmx.net Classification: Unclassified Hello folks, although Winedbg is not useful for the managed part it might be for getting to a specific failure point. --- snip --- $ WINEDEBUG=+dbghelp_msc,+dbghelp winedbg ... <attach> ... $ b MessageBoxW ... trace:dbghelp_msc:codeview_process_info Processing signature RSDS trace:dbghelp_msc:codeview_process_info Got RSDS type of PDB file: guid={28bacf55-dda2-4f32-8975-fe4b6d565a8b} age=00000001 name=D:\Work\academagia\trunk\src\ContentModel\obj\x86\Release\ContentModel.pdb trace:dbghelp_msc:pdb_process_internal Processing PDB file D:\Work\academagia\trunk\src\ContentModel\obj\x86\Release\ContentModel.pdb trace:dbghelp:path_find_symbol_file (pcs = 0x1136e8, full_path = "D:\\Work\\academagia\\trunk\\src\\ContentModel\\obj\\x86\\Release\\ContentModel.pdb", guid = {28bacf55-dda2-4f32-8975-fe4b6d565a8b}, dw1 = 0x00000000, dw2 = 0x00000001, buffer = 0x32bd38) warn:dbghelp_msc:pdb_fetch_file_info Unable to open .PDB file: D:\Work\academagia\trunk\src\ContentModel\obj\x86\Release\ContentModel.pdb trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\unins000.dat" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\unins000.exe" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Academagia Patch 14.txt" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Academagia.Core.dll" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Academagia.exe" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Academagia.ico" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Academagia.UI.dll" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Academagia_Manual.pdf" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\AMTempFilesCleaner.exe" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Castle.DynamicProxy.dll" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\Common.dll" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\config.xml" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\ContentModel.dll" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp:SymMatchFileNameW (L"C:\\Program Files\\Academagia\\ContentModel.pdb" L"ContentModel.pdb" (nil) (nil)) trace:dbghelp_msc:pdb_init PDB(C:\Program Files\Academagia\ContentModel.pdb): "Microsoft C/C++ MSF 7.00\r\n\x1aDS\x00\ trace:dbghelp_msc:pdb_init found DS for C:\Program Files\Academagia\ContentModel.pdb: age=1 guid={28bacf55-dda2-4f32-8975-fe4b6d565a8b} trace:dbghelp_msc:pdb_init PDB(D:\Work\academagia\trunk\src\ContentModel\obj\x86\Release\ContentModel.pdb): "Microsoft C/C++ MSF 7.00\r\n\x1aDS\x00\ trace:dbghelp_msc:pdb_init found DS for D:\Work\academagia\trunk\src\ContentModel\obj\x86\Release\ContentModel.pdb: age=1 guid={28bacf55-dda2-4f32-8975-fe4b6d565a8b} fixme:dbghelp_msc:codeview_snarf sym->generic.id=0x1125, curr_func=(nil) fixme:dbghelp_msc:codeview_snarf sym->generic.id=0x1129, curr_func=(nil) fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 1129 fixme:dbghelp_msc:dump 00000000: 16 00 29 11 00 00 00 00 04 00 00 00 3f 00 30 36 ..).........?.06 fixme:dbghelp_msc:dump 00000010: 30 30 30 33 65 37 00 00 0003e7.. ... <100's of repeats> ... fixme:dbghelp_msc:codeview_snarf sym->generic.id=0x1125, curr_func=(nil) fixme:dbghelp_msc:codeview_snarf sym->generic.id=0x1129, curr_func=(nil) fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 1129 fixme:dbghelp_msc:dump 00000000: 16 00 29 11 00 00 00 00 b0 01 00 00 0e 00 30 36 ..)...........06 fixme:dbghelp_msc:dump 00000010: 30 30 30 31 36 32 00 00 000162.. fixme:dbghelp_msc:codeview_snarf sym->generic.id=0x112a, curr_func=(nil) fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 112a fixme:dbghelp_msc:dump 00000000: 2e 00 2a 11 00 00 00 00 74 01 00 00 00 00 00 00 ..*.....t....... fixme:dbghelp_msc:dump 00000010: 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 06 ................ fixme:dbghelp_msc:dump 00000020: 00 00 00 00 01 00 00 00 00 4f 6e 53 61 76 65 00 .........OnSave. fixme:dbghelp_msc:codeview_snarf sym->generic.id=0x1103, curr_func=(nil) /home/focht/projects/wine/wine-git/dlls/dbghelp/symbol.c:398: symt_open_func_block: Assertion `func' failed. Wine-dbg> ... Wine-dbg>info break No breakpoints No watchpoints --- snip --- Unfortunately just doing assert() isn't useful here. It doesn't give any context hence I added a trace message in caller (see 'fixme:dbghelp_msc:codeview_snarf sym->generic.id=xxx'). Source: http://source.winehq.org/git/wine.git/blob/836b682ed3bff439f1264bc9cee4ecce6... --- snip --- 390 struct symt_block* symt_open_func_block(struct module* module, 391 struct symt_function* func, 392 struct symt_block* parent_block, 393 unsigned pc, unsigned len) 394 { 395 struct symt_block* block; 396 struct symt** p; 397 398 assert(func); 399 assert(func->symt.tag == SymTagFunction); ... --- snip --- The code in question: http://source.winehq.org/git/wine.git/blob/1d65efe50b7ac88a060defb301b4a5c10... -> codeview_snarf When someone works on it ... you might as well clean up all the whitespace/tab mixups here. That file That file definitely needs more love ;-) I'd expect that winedbg sets the breakpoint regardless of earlier symbol lookup failure. Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=34990 --- Comment #1 from Anastasius Focht <focht(a)gmx.net> 2013-11-24 07:08:19 CST --- Hello folks, I found information about PDB support for managed assemblies in the Mono Cecil project: http://www.mono-project.com/Cecil https://github.com/jbevain/cecil/wiki/Debug-symbols The C# code is published under MS-PL (MS public license) Finding a more or less complete in-depth PDB format documentation is difficult so this might prove a useful resource when adding/improving currently unsupported symbol/record types. Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=34990 Vincent Povirk <madewokherd(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd(a)gmail.com -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=34990 --- Comment #2 from Austin English <austinenglish(a)gmail.com> --- Still in 1.7.37. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=34990 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Winedbg is unable to set |Winedbg is unable to set |breakpoints when |breakpoints when |encountering unsupported |encountering unsupported |managed PDB symbol/record |managed PDB symbol/record |types |types (S_TOKENREF, | |S_LMANPROC, S_GMANPROC) Keywords| |dotnet --- Comment #3 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, revisiting, still present. https://source.winehq.org/git/wine.git/commitdiff/d8a39d40d82eb72fedc3b1818b... ("dbghelp: Add even more symbol types.") 0x1129 -> S_TOKENREF https://github.com/Microsoft/microsoft-pdb/search?q=S_TOKENREF&unscoped_q=S_... 0x112a -> S_GMANPROC https://github.com/Microsoft/microsoft-pdb/search?q=S_GMANPROC&unscoped_q=S_... https://github.com/Microsoft/microsoft-pdb/search?q=S_LMANPROC&unscoped_q=S_... $ wine --version wine-3.13 Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=34990 NyaMisty <misty(a)misty.moe> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |misty(a)misty.moe --- Comment #4 from NyaMisty <misty(a)misty.moe> --- Still present in Wine 6.0.1 (Staging) ``` $ wine XXX.exe .... 0024:fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 1129 0024:fixme:dbghelp_msc:dump 00000000: 16 00 29 11 00 00 00 00 ac 0b 00 00 07 00 30 36 ..)...........06 0024:fixme:dbghelp_msc:dump 00000010: 30 30 30 30 34 63 00 00 00004c.. 0024:fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 1129 0024:fixme:dbghelp_msc:dump 00000000: 16 00 29 11 00 00 00 00 04 00 00 00 0c 00 30 36 ..)...........06 0024:fixme:dbghelp_msc:dump 00000010: 30 30 30 30 35 36 00 00 000056.. 0024:fixme:dbghelp_msc:codeview_snarf Unsupported symbol id 112a 0024:fixme:dbghelp_msc:dump 00000000: 2e 00 2a 11 00 00 00 00 9c 01 00 00 00 00 00 00 ..*............. 0024:fixme:dbghelp_msc:dump 00000010: 5a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 06 Z............... 0024:fixme:dbghelp_msc:dump 00000020: 00 00 00 00 01 00 00 00 00 2e 63 74 6f 72 00 00 ..........ctor.. Assertion failed: func, file dlls/dbghelp/symbol.c, line 397 (wine aborted) ``` But deleting *.pdb in directory will allow the program to run normally. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla