0

我使用 VS2k8 在 Vista x64 上使用 MPICH2 库编写和编译(但不运行)程序。然后我mpiexec从命令行使用启动程序(只有 1 个用于调试目的的进程),我想将 gdb 附加到它。简单地使用attachorgdb --pid=###不起作用(我得到错误Can't attach to process),大概是因为 VS 没有使用正确的调试信息编译代码。另一方面,尽管有几个谷歌会话,我还没有找到 VS 用来编译的实际命令行,所以我不能直接进去编辑它。

请注意,我使用 VS 的唯一原因是因为在尝试从命令行编译时无法让 g++ 找到 MPI 库,而 VS 只需单击几下即可使一切正常。(是的,我尝试了-Iand-l开关,但无济于事)

我所需要的只是将 gdb 附加到运行我的 MPI 程序的进程中,我并不关心它是如何完成的。任何帮助表示赞赏。

4

2 回答 2

2

不幸的是,cl.exe (Visual Studio) 和 gdb 的二进制格式不兼容。除非您能找到一种使用 gcc 重建代码的方法,否则您将无法使用 gdb 进行调试。同时,您可以直接使用 Visual Studio 调试程序,方法是转到工具 > 附加到进程(或按 Ctrl+Alt+P)

于 2009-08-28T11:28:00.233 回答
2

gdb 不起作用,但您可以使用Gflags让您的程序在启动时从调试器(VS、windbg、...)运行。还有一个注册表选项可以直接执行此操作:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ImageFileName\Debugger

于 2009-08-28T12:29:24.560 回答