eclipse gdb - 如何进入包含代码行的MACRO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse gdb - 如何进入包含代码行的MACRO相关的知识,希望对你有一定的参考价值。

我正在使用Kinetis Design Studio, Version: 3.2.0

#define DECODE_QSTR qstr qst = 0; 
    do { 
        qst = (qst << 7) + (*ip & 0x7f); 
    } while ((*ip++ & 0x80) != 0)

当我踏入DECODE_QSTR;线时,它不会进入do-while循环。

MARK_EXC_IP_SELECTIVE();
DECODE_QSTR;
PUSH(mp_load_name(qst));
DISPATCH();

有没有办法启用步入包含多行代码的MACRO?

答案

不,没有办法做到这一点。这可能是DWARF的限制,也可能是编译器的限制,具体取决于您的视图。

理论上,编译器可以在行表中为宏的每个相关部分发出条目。但是,我不知道有任何编译器执行此操作(这是编译器限制部分)。并且,如果它完成了,它仍然会留下如何在步进时看到宏参数的问题(DWARF没有提供任何方法来执行此操作)。

解决方法是使用内联函数,但当然并非总是可行。

以上是关于eclipse gdb - 如何进入包含代码行的MACRO的主要内容,如果未能解决你的问题,请参考以下文章

gdb调试的常用参数说明

gdb调试的常用参数说明

如何在 Eclipse 中启动 gdb 调试之前运行 linux 脚本

如何在 Eclipse CDT 中使用 GDB 控制台?

如何将 GDB 调试器安装到 Eclipse CDT

如何包含 GDB 调试符号“破坏包”?