【问题标题】:How do I get the data from the "state line" from a TRACE32 application via cmm scripting?如何通过 cmm 脚本从 TRACE32 应用程序的“状态行”获取数据?
【发布时间】:2019-03-07 12:03:37
【问题描述】:

T32 应用程序底部的状态行输出错误消息,如致命错误、链接错误等。这包括几个字段,如光标、模式、...

参见http://www2.lauterbach.com/pdf/ide_user.pdf第23页的“州界线”

我需要在打开 t32 应用后获取状态,并在此基础上执行某些操作。所以请告诉我。

【问题讨论】:

    标签: trace32 lauterbach


    【解决方案1】:

    要从 PRACTICE 脚本(又名“cmm-script”)获取有关目标和/或调试器状态的详细信息,请使用 PRACTICE 函数。这些功能在http://www.lauterbach.com/pdf/ide_func.pdfhttp://www.lauterbach.com/pdf/general_func.pdf 中进行了描述。 (你要找的东西在 general_func.pdf 中)

    以下是从状态线返回值的函数:

    • 左边的地址通常是程序计数器。您可以使用函数PP() 和程序计数器旁边的符号sYmbol.NAME(PP()) 来获取它。
    • 如果您单击具有关联地址的项目,状态行将显示该地址而不是程序计数器。你会得到最后选择的地址TRACK.ADDRESS()和它的符号sYmbol.NAME(TRACK.ADDRESS())
    • 如果您有 SMP 多核方案,则下一个字段是核心编号。它显示当前选择的逻辑核心。可以通过CORE()函数获取号码。
    • 如果您具有活动的操作系统意识,则下一个字段会显示活动任务。您可以通过函数TASK() 获得它的名称。
    • “调试”字段有点棘手。我不认为有一个函数可以直接返回该字符串。但是,SYStem.Up() 在“系统关闭”的情况下返回 FALSE(这意味着调试器未连接到您的目标内核),如果您的目标内核正在运行,STATE.RUN() 返回 TRUE。
    • “调试”旁边的字段显示跟踪记录器的状态。您可以使用 Trace.STATE() 以数值形式获取状态。
    • 有一个名为“调试器活动”的小字段。如果调试器执行了一些未明确请求的运行/停止活动,则为红色。例如。临时停止更新内存转储或在目标硬件上执行某些算法以进行闪存编程或用户定义的内存访问。不幸的是,似乎没有获得这种状态的功能。
    • 最后一个字段之前的字段显示调试模式,设置为汇编程序、高级语言或具有汇编程序和 HLL 的混合模式。显示的字符串也可通过DEBUGMODE() 获得。
    • 最后一个字段显示系统模式。相关函数为SYStem.MODE()SYStem.Up()

    诸如“应用程序输出、错误消息、致命错误”之类的消息不会显示在“状态行”中,而是显示在“消息行”中:在 TRACE32 主窗口的底部,您有命令行(通常以 B:: 开头),在其下方是“消息行”(显示错误和其他消息),在软键下方(帮助您查找命令),最后是“状态行”。

    “消息行”中显示的几乎所有消息也显示在“区域”窗口中。 (命令AREA)。您可以使用函数AREA.LINE(A000,0) 获取AREA 窗口的最后一行,其中“A000”是默认AREA 的名称,0 表示AREA 的最后一行。

    【讨论】:

      【解决方案2】:

      要将调试字段值保存在 cmm 文件中的变量中,请使用以下命令:

      &temp=STATE.TARGET()
      

      此命令将保存调试字段上显示的当前状态。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多