【问题标题】:What code executes to halt a program at a breakpoint within a debugger?执行什么代码来在调试器的断点处停止程序?
【发布时间】:2016-07-12 13:39:14
【问题描述】:

试图了解断点背后的内容。

执行什么样的代码来停止执行?

大多数 IDE 都提供了一个很好的前端,没有太多解释。

我目前正在使用 GDB 和 Eclipse-CDT,但这是大多数带有 IDE 的调试环境的标准配置。

【问题讨论】:

    标签: debugging gdb breakpoints


    【解决方案1】:

    它特定于平台,特定于处理器。

    它的范围从调试器将相关指令替换为导致调试器可以捕获的故障或事件的指令,到查找地址获取并为调试器生成事件的硬件/芯片支持捕获,停止执行。

    gdb 的前端不知道也不关心它是如何工作的。当您将后端移植到系统时,它不仅取决于处理器,还取决于您的连接方式。通过 jtag,通过 rom 监视器等,每个特定的 jtag 解决方案可能需要不同的后端。软件(gdb 等)创建了一个通用的我想在这个地址函数调用处设置一个断点,并且该目标的后端可以尝试尽可能地实现它,或者返回失败,无论出于何种原因我都无法做到。

    因此,您必须深入研究特定的处理器以及可能的系统以及与该系统的连接,以获取更多详细信息。这对于一个单一的答案来说太宽泛了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-12
      • 2021-04-20
      • 2021-07-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      相关资源
      最近更新 更多