1
12
This post 带我去 chkmatch . 在已处理的dll上,chkmatch显示以下信息: Executable: TimeDateStamp: 4a086937 Debug info: 2 ( CodeView ) TimeStamp: 4a086937 Characteristics: 0 MajorVer: 0 MinorVer: 0 Size: 123 RVA: 00380460 FileOffset: 00380460 CodeView signature: sUar Debug information file: Format: PDB 7.00 Result: unmatched (reason: incompatible debug information formats) 对于预处理的dll使用相同的pdb,它报告如下: Executable: TimeDateStamp: 4a086937 Debug info: 2 ( CodeView ) TimeStamp: 4a086937 Characteristics: 0 MajorVer: 0 MinorVer: 0 Size: 123 RVA: 00380460 FileOffset: 00380460 CodeView format: RSDS Signature: (my guid) Age: 19 PdbFile: (my path) Debug information file: Format: PDB 7.00 Signature: (my matching guid) Age: 19 我打开了DLL的两个版本,并转到了偏移量00380460。在原始版本中,我可以清楚地看到pdb的名称,但在后处理版本中,该偏移处没有pdb信息。我搜索了pdb路径,发现了完全相同的块-只是在不同的偏移量。然后我在bin中搜索原始dll中的字节“38 00 60 04”。在处理的dll中查看相同的偏移量时,我发现了相同的字节。所以我调整了RVA和偏移量(通过匹配字节来定位)。答对了!现在,chkmatch报告处理的dll与原始dll的结果完全相同(除了我更改的rva和fileoffset)。 编辑 :已确认,现在Visual Studio加载引用已处理的dll的转储的符号。 |
2
2
在windbg中,尝试使用 .symopt +40 ,这将强制加载PDB。 |
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
Cobra_Fast · 如何查找不必要的空运算符? 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |