调试时无法按名称找到静态变量

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

确实,function1function2等是访问该变量的函数。

如何使该变量在调试器中可见?

我在问题写到一半的时候找到了解决方案,所以我决定 post 自己回答。

无论如何,链接器选项中有一个设置可以满足我的需要并且毫不奇怪地称为 "Module-local symbols":

将其设置为 "Include all" 使调试器可以使用静态变量。