获取 Trace32 Lauterbach 中静态符号的地址
Getting the address of the static symbol in Trace32 Lauterbach
我知道要获取 lauterbach 的符号地址,需要使用 Address.Offset(),但此命令不适用于静态函数!找不到静态符号。那么获取静态符号地址偏移量的命令是什么?
我假设您的编译器优化了您的静态函数,例如直接在调用者中包含函数的主体。编译器可能会这样做,如果他们这样做,静态函数的入口符号将不再可用,因此不能在任何调试器中使用。
因此,在您的 makefile 中,确保编译代码时不进行优化(或较少优化),并确保编译是为了调试。或者在外部声明您的函数。或者使用一些特定于供应商的编译器编译指示或属性来保留静态函数。
还要确保您的静态函数被调用 - 否则它也可能被编译器转储。
我正在使用 GreenHills 编译器。通过在Data.Load.Elf上添加/GHS选项,问题得到解决
我知道要获取 lauterbach 的符号地址,需要使用 Address.Offset(),但此命令不适用于静态函数!找不到静态符号。那么获取静态符号地址偏移量的命令是什么?
我假设您的编译器优化了您的静态函数,例如直接在调用者中包含函数的主体。编译器可能会这样做,如果他们这样做,静态函数的入口符号将不再可用,因此不能在任何调试器中使用。
因此,在您的 makefile 中,确保编译代码时不进行优化(或较少优化),并确保编译是为了调试。或者在外部声明您的函数。或者使用一些特定于供应商的编译器编译指示或属性来保留静态函数。
还要确保您的静态函数被调用 - 否则它也可能被编译器转储。
我正在使用 GreenHills 编译器。通过在Data.Load.Elf上添加/GHS选项,问题得到解决