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/TMS570LS0432:如何使用 DSS API 跳转到源代码行?

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/824001/ccs-tms570ls0432-how-to-jump-to-the-line-of-the-source-code-using-dss-api

器件型号:TMS570LS0432

工具/软件:Code Composer Studio

大家好、在调试期间、我需要使用 具有 DSS API 的 Java 脚本跳转到所需的源代码行(与 CSS 编辑器中的"移动到行"相同)(可以调用 GEL)。 我在 API 中找不到所需的指令。 当然、可以在目标代码中看到该行的地址、然后 使用 类似的方法将 PC 寄存器设置为该地址

debugSession.expression.evaluate ("PC = 0x0001DF64")

但这种方法不适合我的目标。  我不知道如何 在 Java 脚本中接收行的地址。

那么、是否可以仅知道源代码文件中的行号?

提前感谢!

 

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

    您好!

    [引用用户="eGor Jakimenko"]

    当然、可以在目标代码中看到该行的地址、然后 使用 类似的方法将 PC 寄存器设置为该地址

    debugSession.expression.evaluate ("PC = 0x0001DF64")

    [/报价]

    更好的选择是:

    debugSession.memory.writeRegister ("PC"、0x0001DF64)

    [引用用户="eGor Jakimenko"]

    但这种方法不适合我的目标。  我不知道如何 在 Java 脚本中接收行的地址。

    那么、是否可以仅知道源代码文件中的行号?

    [/报价]

    而不是直接。 我们还会想到其他几种环形路。

    第一种方法是在所需的源代码行上放置标签。 然后您可以查找该标签的地址

    var addr = debugSession.symbol.getAddress ("label");

    debugSession.memory.writeRegister ("pc"、addr);

    另一个选项是在该地址设置源代码行断点。 您可以通过读取断点属性来获取该断点的地址(请参阅 DSS API 文档中的"BreakpointProperties"类)。

    谢谢

    Ki

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

    Ki、感谢您的支持、

    [引用 user="Ki"]

    第一种方法是在所需的源代码行上放置标签。 然后您可以查找该标签的地址

    [/报价]

    不得修改源代码、因此无法添加标签。

    [引用 user="Ki"]

    另一个选项是在该地址设置源代码行断点。 您可以通过读取断点属性来获取该断点的地址(请参阅 DSS API 文档中的"BreakpointProperties"类)。

    [/报价]

    据我所知、断点属性是使用"breakpoint.createProperties"创建的、所有属性都在此处设置。 但是、我只能直接设置地址

    props = debugSession.breakpoint.createProperties ()

    props.setString("Hardware Configuration.Location"、0x1df64)

    但它 不接受文件和行、如

    props.setString("Hardware Configuration.Location"、"../v_src/Application/startup/SystemInit/SystemInit.c、第63行")

    断点、那么它将是您的不可选择

    debugSession.breakpoint.add("../v_src/Application/StartUp/SystemInit/SystemInit.c"、63)

    我不知道如何  获取创建的断点的属性。 有可能吗?

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

    UPD:

    我刚才找到 了设置源代码和行的方法:setSourceLocation。

    但我仍然不理解如何从断点读取属性。

    以下指令

    Addr = props.getString ("Hardware Configuration.Type.Type.Location.Address")

    导致错误-找不到属性地址

    那么、在本例中如何获取地址呢?

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

    [引用用户="eGor Jakimenko"]

    但我仍然不理解如何从断点读取属性。

    以下指令

    Addr = props.getString ("Hardware Configuration.Type.Type.Location.Address")

    [/报价]

    尝试 getNumeric 并删除属性字符串末尾的"Address")

    Addr = props.getNumeric ("Hardware Configuration.Type.Location");    

    谢谢

    Ki

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

    Ki、

    是的、它就是这样工作的。

    非常感谢 !