我使用VS2k8在Vista x64上使用MPICH2库编写和编译(但不运行)程序。然后我从命令行使用mpiexec
来启动程序(只有一个进程用于调试),我想将gdb附加到它上面。简单地使用attach
或gdb --pid=###
不起作用(我得到错误Can't attach to process
),可能是因为VS没有使用正确的调试信息编译代码。另一方面,尽管有几个google会话,我还没有找到VS用来编译的实际命令行,所以我不能只是进入并编辑它。
请注意,我使用VS的唯一原因是因为在尝试从命令行编译时我无法使g ++找到MPI库,而VS只需要点击几下就可以使一切正常工作。 (是的,我尝试过-I
和-l
开关,但无效)
我需要的只是将gdb附加到运行我的MPI程序的进程中,我真的不关心它是如何完成的。任何帮助表示赞赏。
答案 0 :(得分:2)
不幸的是,cl.exe(Visual Studio)和gdb的二进制格式不兼容。除非你能想出一种用gcc重建代码的方法,否则你将无法使用gdb进行调试。在此期间,您可以直接使用Visual Studio调试程序,方法是转到工具>附加到处理(或按Ctrl + Alt + P)
答案 1 :(得分:2)
gdb不起作用,但只要启动,您就可以使用Gflags使程序从调试器(VS,windbg,...)运行。还有一个注册表选项可以直接执行:HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Image File Execution Options \ ImageFileName \ Debugger