我有一个可执行文件(由其他人编译)在我的代码附近发出一个断言。我在Visual C ++ 2003中处理代码,但我没有这个特定可执行文件的项目文件(该代码用于构建许多不同的工具)。是否可以在Visual C ++的调试器中启动二进制文件,并告诉它源的位置?我以前在GDB中做过这个,所以我知道它应该是可能的。
答案 0 :(得分:2)
如果没有该应用程序的PDB符号,您将很难做出正在发生的事情或其中的正面或反面。我认为任何源代码信息都只会出现在构建该应用程序时创建的PDB文件中。
这假设PDB文件是为此应用程序创建的 - 这不是我认为的发布模式VC ++项目的默认配置。既然你断言了,我猜这是一个调试配置?
答案 1 :(得分:0)
没有任何其他答案,我会尝试附加到Visual Studio中的可执行进程,在代码中设置一个断点,当你进入你没有源代码的进程时,它应该要求一个源文件
答案 2 :(得分:0)
是的,这是可能的。只需设置一个空项目并将所需的.exe
文件指定为调试目标。我不记得具体如何,但我知道它是可行的,因为我在为Winamp开发插件时曾经将winamp.exe
设置为调试目标。
由于你没有源文件,它只会显示汇编代码,但这可能仍然有用,因为你还可以检查内存,寄存器等。
<强>更新强>
如果您正在自己的程序中调试断言,那么您应该能够正确地看到源代码,因为在使用调试信息编译它时,源文件的路径存储在可执行文件中。