This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:C++代码中的DSS getAddress

Guru**** 1952840 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/627002/ccs-dss-getaddress-in-c-code

工具/软件:Code Composer Studio

您好,

我的代码基于C++,使用TI模拟器,我尝试在类函数内的ASM标签上设置断点,并且:

读取       本地变量地址

读取       私有类变量地址

 

我可以设置断点,但在尝试读取变量地址时,就好像它们不在范围内一样。

我的代码看起来像这样(编译时没有优化):

 

MyClass.h:

 

类MyClass

{

私人:

int m_var;

公共:

MyClass():m_VAR(0){}

作废钙化(void)

{

内部本地= 0;

本地++;

asm (".global dump\ndump:");//断点标签

本地++;

}

} 

 

我的DSS脚本如下所示:

 

var script = ScriptingEnvironment.instance();

DS = script.getServer("DebugServer.1");

var DS;

ds.setConfig(...);//simulator

var debugSession0 = DS.openSession(".*_0");

debugSession0.target.connect();

debugSession0.memory.debugProgram(...);

var pcsave = debugSession0.symbol.getAddress("debugSession0.)"

debugSession0.breakpoint.add(pcsave);

debugSession0.target.run();





= debugSession0.gpsetfulfulfc.express



打印(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收到“无法获取符号的地址”错误。

 

请帮我解决此问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    不能使用getAddress DSS API执行此操作。 但您可以使用Gel来评估表达式:

    var my_address = debugSession0.expression.evaluate("&m_var")



    var my_address = debugSession0.expression.evaluate("&rect.m_var")

    取决于范围

    谢谢
    KI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Ki-Soo

    我也尝试了.expression.evaluate,但它仍然像不在范围内一样工作。 您能否验证在这种情况下它是否应在范围内?

    谢谢!

    丹尼尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,它会起作用。 调用expression.evaluate时,停止在何处?
x 出现错误。请重试或与管理员联系。