【问题标题】:Need help attaching gdb to my project需要帮助将 gdb 附加到我的项目
【发布时间】:2010-11-23 16:51:29
【问题描述】:

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

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

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

【问题讨论】:

  • 如果你真的想要在 Windows 上使用 g++ 编译 MPI(不管是什么),问第二个问题(不要编辑这个)可能是个好主意。

标签: c++ gdb mpi


【解决方案1】:

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

【讨论】:

  • 不幸的是,该程序仅在通过mpiexec 启动时才有效,因此从 VS 进行调试也并非易事。我想我现在会坚持使用cout 来调试我的代码。 :)
  • 为什么不通过 mpiexec 启动后将 VS 调试器附加到您的进程?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2020-05-18
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多