工具/软件:Code Composer Studio
我在使用TI DSS调试脚本时遇到了问题。 我的代码基于C++,使用TI模拟器,我尝试在类函数内的ASM标签上设置断点,并且:
读取本地变量地址
读取私有类变量地址
我可以设置断点,但在尝试读取变量地址时,就好像它们不在范围内一样。
我的代码看起来像这样(编译时没有优化):
MyClass.h:
类MyClass
{
私人:
int m_var;
公开:
MyClass():m_VAR(0){}
作废钙化(void)
{
内部本地= 0;
本地++;
asm (".global dump\ndump:");//断点标签
本地++;
}
}
我的DSS脚本如下所示:
VAR脚本= ScriptingEnvironment.instance();
ds = script.getServer("DebugServer.1");
增值经销商DS;
ds.setConfig(...);//模拟器
var debugSession0 = DS.openSession(".*_0");
debugSession0.target.connect();
debugSession0.memory.loadProgram(...);
var pcsave = debugSession0.symbol.getAddress("dump");
debugSession0.breakpoint.add(pcsave);
debugSession0.target.run();
debugSession0.target.waitForHalt();
IF (debugSession0.expression.Evaluate ("pc")== pcsave)
{
打印(pcsave)
var my_address = debugSession0.symbol.getAddress("local");
打印(my_address);
var my_address = debugSession0.symbol.getAddress("this->m_var");//也尝试了(*this).m_var,并使用.expression.evaluate
打印(my_address);
debugSession0.target.run();
}
大概调试器应该在断点停在标签处时看到这两个变量,它们应该在范围内,但我从„DSS收到“无法获取符号的地址”错误。
有人能帮我解决这个问题吗?