【问题标题】:GDB-Run Executable Doesn't Work (VS Code)GDB 运行可执行文件不起作用(VS 代码)
【发布时间】:2020-06-15 21:56:00
【问题描述】:

我正在将 VS Code 用于 C++ 项目。我还使用 CMake 工具来管理 CMake 方面的事情和我的编译器工具链。

我有两个独立的编译器套件 - i686-w64-mingw32 和 x86_64-w64-mingw32(gcc 版本 10.1.0)。

我已将 launch.json 中的 gdb.exe 路径设置为 64 位 gdb 调试器的路径。这可以正常工作,我可以按预期使用断点运行和调试。

但是,当使用 64 位调试器运行 32 位可执行文件时,我的控制台没有任何输出,也没有命中断点。

可能是什么问题?

【问题讨论】:

    标签: gcc visual-studio-code gdb mingw


    【解决方案1】:

    不要混合平台。使用 32 位调试器调试 32 位可执行文件。

    【讨论】:

    • 64 位 GDB 完全能够调试 32 位可执行文件。见这里stackoverflow.com/questions/3931889/…。不幸的是,我当前使用 CMake 工具的设置使得切换调试器成为一项任务,我想让一切尽可能自动化。
    • 您是否尝试过通过命令行执行此操作?你有错误吗?如果我尝试使用 64 位 gdb 调试 32 位进程,我确实会看到一些与此匹配的警告:virtuallyfun.com/wordpress/2015/10/04/32bit-64bit-gdb-collision
    • 我还没有,但是我在这里用详细的输出日志重新提出了这个问题:stackoverflow.com/questions/62404382/…。旁注 - 你是来自 Winlibs 的 Brecht Sanders 吗?我碰巧正在使用您构建的 MinGW-w64!哈哈,非常感谢。因此,如果它对您不起作用,那么我们似乎在同一条船上?为什么其他链接提到它是可能的? @brecht-sanders
    • @gasko 是的,我是来自 winlibs.com 的人,其中完全分离 32 位和 64 位工具链是哲学的一部分,以避免在两者混淆时出现任何可能的问题(正如我在 stackoverflow 上注意到的那样发生了很多)。
    • 哈哈。我刚刚收到关于我的另一个问题的回复,说明它在 Linux 上受支持,但在 Windows 上尚不支持,但将适用于 GDB 版本 10。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多