我将.EXE,.PDB和源代码.C文件放入计算机,并尝试查看Ollydbg中的程序。

我正在一台计算机上编译C程序(XP Vm实际上),然后在另一台计算机上的Windows 7中的Ollydbg 2.01中运行它们。我想查看发布代码,因此我按照链接中所述设置了编译和链接选项。所以我在Ollydbg所在的Win7中有一个“ prog.exe”和“ prog.pdb”。我可以在Ollydbg中启动prog.exe,然后看到main()和其他函数的标签,并可以通过CTRL + G“输入要遵循的表达式”对话框转到它们。

但是我还希望看到相关的源代码行,能够在CPU窗口中的代码下方看到它,并能够双击并打开源代码.C文件。

但是除非我在Win7(Olly)计算机上重新创建整个相同的目录路径,否则Olly无法获得此源代码(即使它看到了代码块的标签名称)。我花了一些时间在Visual Studio(对我来说是6)中浏览设置,以尝试没有绝对路径,在Olly中尝试更改外观。有什么想法吗?

#1 楼

pdb是自包含的,因此您可以拖放它,调试器可以使用它
,但是src文件只是路径引用
相对路径或绝对路径
,因此您必须将它们复制到本地目录
(考虑一下此方法在具有数千个src文件的项目中的可行性)或
设置目录结构(如果不使用c:\​​编译,会容易一些))
diskmgmt.msc不允许您更改系统引导分区的驱动器号)

,如果您位于系统引导分区以外的其他分区,则只需将目录从基础转储到可移动驱动器并更改驱动器号

或了解一些windbg的环境变量_NT_SOURCE_PATH,_NT_SYMBOL_PATH,然后让ollydbg使用windbg目录中的symsrv.dll

查看
选项->调试数据->选项卡

评论


交接点和类似ntsubst的工具始终可以帮助欺骗您摆脱所描述的难题。当然,除非您将源代码放在类似C:\ Windows \ System32的地方;)

– 0xC0000022L♦
18年6月19日在12:05

我已多次阅读此答案,但仍然不明白。我没有.PDB,只有.EXE和.C-如何告诉我.C文件在哪里,以便可以断点并逐步执行代码?提前致谢

–莫格说要恢复莫妮卡
18年7月26日在7:14

没有pdb文件的exe和源代码之间不存在链接,因此您不能在没有调试符号信息的情况下告诉ollydbg或任何调试器

– blabb
18年7月26日在20:50