调试时无法按名称找到静态变量
Static variable cannot be found by name when debugging
我的一个编译单元中有一个静态变量,它是在没有优化的情况下编译的:
static __no_init enum_type status;
我试图在调试器中观察这个变量,但我找不到它。逐步执行更新 status
的函数,我可以看到要写入特定内存地址 0xFB9F8 的预期值。
不过,那个内存地址好像没有名字。这是链接器映射显示的内容:
NEAR_N
Relative segment, address: 000FB9F8 - 000FB9F8 (0x1 bytes), align: 0
Segment part 3. Intra module refs: function1
function2
确实,function1
、function2
等是访问该变量的函数。
如何使该变量在调试器中可见?
我在问题写到一半的时候找到了解决方案,所以我决定 post 自己回答。
无论如何,链接器选项中有一个设置可以满足我的需要并且毫不奇怪地称为 "Module-local symbols":
将其设置为 "Include all" 使调试器可以使用静态变量。
我的一个编译单元中有一个静态变量,它是在没有优化的情况下编译的:
static __no_init enum_type status;
我试图在调试器中观察这个变量,但我找不到它。逐步执行更新 status
的函数,我可以看到要写入特定内存地址 0xFB9F8 的预期值。
不过,那个内存地址好像没有名字。这是链接器映射显示的内容:
NEAR_N
Relative segment, address: 000FB9F8 - 000FB9F8 (0x1 bytes), align: 0
Segment part 3. Intra module refs: function1
function2
确实,function1
、function2
等是访问该变量的函数。
如何使该变量在调试器中可见?
我在问题写到一半的时候找到了解决方案,所以我决定 post 自己回答。
无论如何,链接器选项中有一个设置可以满足我的需要并且毫不奇怪地称为 "Module-local symbols":
将其设置为 "Include all" 使调试器可以使用静态变量。