[Bug 34990] New: Winedbg is unable to set breakpoints when encountering unsupported managed PDB symbol/record types
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Nov 24 06:44:43 CST 2013
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 at winehq.org
ReportedBy: focht at 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/836b682ed3bff439f1264bc9cee4ecce6ca88bb2:/dlls/dbghelp/symbol.c#l390
--- 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/1d65efe50b7ac88a060defb301b4a5c10587b055:/dlls/dbghelp/msc.c#l1560
-> 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.
More information about the wine-bugs
mailing list