【问题标题】:Custom debug command in Visual Studio using a Makefile project使用 Makefile 项目在 Visual Studio 中自定义调试命令
【发布时间】:2011-01-08 00:52:04
【问题描述】:

我在 Visual Studio 2010 中有一个基于 Makefile 的项目(实际上使用了 NAnt,但这不是重点)。

构建过程的输出是一个 .elf 文件,我有一个单独的非 VStudio 调试器,可以在该 .elf 文件上运行以对其进行调试。

构建工作正常,但是当我单击“调试”按钮(绿色小三角形)时,VStudio 失败并显示“无法启动程序 'XXX.elf'。指定的文件是无法识别或不受支持的二进制格式”

我猜 VStudio 只是试图“运行”.elf,就好像它是一个 .exe 一样,但失败了。

真正希望 VStudio 在按下调试按钮时运行“my_debugger.exe XXX.elf”。

我已尝试添加与 .elf=>my_debugger.exe 的文件关联 我也适当地更新了 PATHEXT,并在这些更改下运行 VStudio。 还是没有运气。

VStudio 中没有可以指定自定义调试命令的地方吗?我以为有,但找不到。

我可以让构建过程输出一个 .bat 文件或我猜的东西,但这似乎很愚蠢。

【问题讨论】:

    标签: debugging visual-studio-2010 makefile


    【解决方案1】:

    正如 Jim 提到的,您可以在项目设置(命令字段)中指定要启动哪个应用程序。如果在那里放置调试器,则可以将可执行文件作为参数传递给正在启动的调试器(命令参数字段)。这样你就可以启动调试器,如果调试器需要任何命令行参数,它又会启动你的可执行文件。

    Windows 上的 MinGW 示例:

    1. 命令:gdb.exe;命令参数:Path\ToMyApp\whatever.exe

      将启动gdb.exe,gdb.exe将打开whatever.exe,解析调试信息并等待调试指令。

    2. 命令:msys.exe;命令参数:gdb.exe Path\ToMyApp\whatever.exe

      会启动msys.exe,msys.exe会执行“gdb.exe Path\ToMyApp\whatever.exe”

    【讨论】:

    • 是的,但这让 Visual Studio 处于认为它正在调试 gdb.exe 或类似的状态。和以前一样,这是一种解决方法,但很尴尬。不过,感谢您提供更详细的解释。
    【解决方案2】:

    查看项目属性。您是否有一个 Debug 选项卡,它有一个 Start Action 部分,提供三个选项?这些选择将是:() 启动项目,(x) 启动外部程序:... () 使用 URL 启动浏览器。

    您还可以设置命令行参数和工作目录。

    参照。 How to: Change the Start Action for Application Debugging

    【讨论】:

    • 这允许您设置应该运行什么命令来启动您的应用程序,随后将对其进行调试。我想指定要运行的调试器。不过,按照你的方式做对我的目的来说已经足够了——它让我可以运行任意命令; VStudio 只是认为它想调试调试器):
    • 哦,我明白你的意思了。我没有答案。我发现这个问题不是你要问的,但它导致了一堆其他堆栈溢出问题和答案,并且在某处可能有一些线索:stackoverflow.com/questions/197171/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多