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 + - 将在堆栈帧中上下导航以查找遇到异常的位置。
我正在使用 GHS MULTI 调试器调试嵌入式应用程序的完整性项目。有谁知道如何像在 GDB 中那样为此调试器配置抛出停止?我想让它在抛出异常时中断。 (我知道大多数 SO 不开发 Integrity 项目或使用 MULTI 调试器,但我想我会把它扔出去看看是否有其他 Integrity 开发人员可能知道)。
对于此示例,我们假设您的 Integrity 项目名为 Test.gpj。
在编译代码之前,在文本编辑器中编辑 Test.int 文件并将 "StartIt" 值更改为 false。这将防止可执行文件在加载时立即启动。
然后在模拟器(或目标)中,当您加载可执行文件时,开始使用 Test_as0 文件对其进行调试。
在多命令行中,输入:
e __throw
在此函数的开头设置断点(设置断点为任意任务断点)。
对 __rethrow 函数也重复此操作。
现在,当您的可执行文件为 运行 时发生未处理的异常时,它将命中这些断点之一。然后您可以导航调用堆栈并查看此异常发生的位置。 (调试器 GUI 中有一个选项可以在堆栈帧中上下导航)。或者您可以输入:
Ctrl + + 和 Ctrl + - 将在堆栈帧中上下导航以查找遇到异常的位置。