MULTI 调试器在 Throw/Break 发生异常时停止

MULTI Debugger Stop on Throw/Break on Exception

我正在使用 GHS MULTI 调试器调试嵌入式应用程序的完整性项目。有谁知道如何像在 GDB 中那样为此调试器配置抛出停止?我想让它在抛出异常时中断。 (我知道大多数 SO 不开发 Integrity 项目或使用 MULTI 调试器,但我想我会把它扔出去看看是否有其他 Integrity 开发人员可能知道)。

对于此示例,我们假设您的 Integrity 项目名为 Test.gpj。

在编译代码之前,在文本编辑器中编辑 Test.int 文件并将 "StartIt" 值更改为 false。这将防止可执行文件在加载时立即启动。

然后在模拟器(或目标)中,当您加载可执行文件时,开始使用 Test_as0 文件对其进行调试。

在多命令行中,输入:

e __throw

在此函数的开头设置断点(设置断点为任意任务断点)。

对 __rethrow 函数也重复此操作。

现在,当您的可执行文件为 运行 时发生未处理的异常时,它将命中这些断点之一。然后您可以导航调用堆栈并查看此异常发生的位置。 (调试器 GUI 中有一个选项可以在堆栈帧中上下导航)。或者您可以输入:

Ctrl + +Ctrl + - 将在堆栈帧中上下导航以查找遇到异常的位置。