cuốn sách gpt4 ai đã làm

Hiển thị macro trong biểu tượng gỡ lỗi (được nhúng)

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-04 08:38:03 31 4
mua khóa gpt4 Nike

我正在使用嵌入式应用程序,在调试期间,调试器无法解析宏符号(我的理论:因为宏在预处理中丢失了)。我最终不得不先在源代码中找到宏,然后使用定义来监视变量。

我的问题是:有没有办法将宏定义合并到 elf 文件中?如果是,我需要什么步骤(例如,我需要在编译期间设置标志)?如果没有,为什么不呢?

欢迎提供任何信息。我的确切设置是 WindRiver 编译器和 lauterbach 调试器。但是,如果您有其他环境的信息,请分享,也许我可以为我的环境找到对应的环境。

câu trả lời hay nhất

不确定这如何转化为您的编译器和调试器,but it's possible with GCC and GDB .

如果您重建并告诉 GCC 生成针对 GDB 优化的调试符号,使用 -ggdb3,它可以保留宏信息:

$ make KCFLAGS=-ggdb3
...
(gdb) info macro task_is_stopped_or_traced
Defined at include/linux/sched.h:218
included at include/linux/nmi.h:7
included at kernel/sched.c:31
#define task_is_stopped_or_traced(task) ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)

(gdb) macro expand task_is_stopped_or_traced(init_task)
expands to: ((init_task->state & (4 | 8)) != 0)

(gdb) p task_is_stopped_or_traced(init_task)
$2 = 0

关于c - 在调试符号中显示宏(嵌入式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317828/

31 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress