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/BeagleBoard-X15:CCS 7.4 gdb_agent_console 报告"如果提供了板数据文件的相对路径、则配置文件&quot 中未定义支持 GDB 的 CPU

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/758687/ccs-beagleboard-x15-ccs-7-4-gdb_agent_console-reports-no-cpus-that-support-gdb-are-defined-in-configuration-file-if-a-relative-path-to-the-board-data-file-is-given

器件型号:BeagleBoard-X15
主题中讨论的其他器件:AM5728

工具/软件:Code Composer Studio

当尝试将 CCS 7.4中的 gdb_agent_console 与  Windows 10下的 TI 仿真器7.0.100.0结合使用时、如果 AM5728连接到 Blackhawk USB560-M、则最初尝试为板数据文件提供相对路径。 但是、使用相对路径会导致报告"没有在配置文件中定义支持 GDB 的 CPU "错误:

C:\users\MR_halfworm\E2E_Example_Projects\AM5728_GCC_class_variables>c:\ti\ccs740\ccsv7\ccs_base\common\uscif\gdb_agent_console.exe targetConfigs\testBoard_bh560usbm.dat
配置文件中未定义支持 GDB 的 CPU 

如果给定了指向同一目标数据文件的绝对路径、则 gdb_agent_console 会无错误地初始化:

C:\users\MR_halfword\E2E_Example_Projects\AM5728_GCC_class_variables>c:\ti\ccs740\ccsv7\ccs_base\common\uscif\gdb_agent_console.exe c:\users\MR_halfword\E2E_Example_projects\AM5728_GCC_class_variables\targetConfigs\testBoard_bh560usbm.dat
CPU 名称 端口
--- --
c66xx_dsp1 :55000
c66xx_dsp2 :55001
cortex_m4_ipu1_c0 :55002
cortex_m4_ipu1_c1 :55003
cortex_m4_ipu2_c0 :55004
cortex_m4_ipu2_c1 :55005
cortexa15_0 :55006
cortexa15_1 :55007

启动所有内核
CPU 名称 现状
---- ----
cortexa15_1 正在等待客户端
c66xx_dsp1 正在等待客户端
c66xx_dsp2 等待客户端
cortex_m4_ipu1_c0等待客户端
cortexa15_0 等待客户端
cortex_m4_ipu2_c1等待客户端
cortex_m4_ipu2_c0等待客户端
cortex_m4_ipu1_c1等待客户端 

当使用 SysInternals Process Monitor 跟踪 gdb_agent_console 执行的文件 I/O 时、在带有相对板数据文件的故障情况下、gdb_agent_console 尝试打开 C:\ti\ccs740\ccsv7\ccs_base\common\uscif\targetConfigs\testBoard_Bh560usbm、但未找到失败路径。

使用 Processor Explorer 查看正在工作的 gdb_agent_console 会显示当前目录设置为 c:\ti\ccs740\ccsv7\ccs_base\con\uscif\。 即、问题似乎在于、在某个时间点、gdb_agent_console 会将进程的工作目录从启动该进程的目录更改为其他目录、从而导致无法打开命令行上给出的相对板数据文件。

我认为这可能与 原始线程中提出的 DBGTRC-3927相同、缺陷的解决方法可能是始终为板数据文件指定绝对路径。

随附的 zip 文件包含所使用的电路板数据文件、以及带有相对电路板数据文件路径的针对故障原因的过程监视器捕捉。  e2e.ti.com/.../ccs740_5F00_gdb_5F00_agent_5F00_relative_5F00_path.zip

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

    [引用 user="Chester Gillon">使用处理器资源管理器查看工作的 gdb_agent_console 会显示当前目录设置为 c:\ti\ccs740\ccsv7\ccs_base\con\uscif\。 例如,问题似乎是,在某个时候,gdb_agent_console 会将进程的工作目录从启动该进程的工作目录更改为启动该进程的工作目录,从而导致无法打开命令行上给出的相对板数据文件。

    切斯特、似乎 gdb_agent_console 将 C:\ti\ccs740\ccsv7\ccs_base\con\uscif\视为相对路径的基目录、无论哪个目录
    从中调用了该命令。 我必须向专家确认这是预期行为还是错误。 由于节假日、可能会持续到下周晚些时候或  
    在一周的早些时候、我可以发布更新。 感谢您的耐心等待。

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

    [引用 user="AarticG"]Chester、gdb_agent_console 似乎 将 C:\ti\ccs740\ccsv7\ccs_base\common\uscif\作为相对路径的基目录、而不管哪个目录
    该命令是从调用的。我发现、在使用 TI 仿真器8.0.27.9的 Linux 下、CCS 8.2.0.00005中的 gdb_agent_console 存在相同的问题。

    gdb_agent_console 在本机 Eclipse 调试器下运行,并在 chdir()函数上设置断点,显示 中的 TI_sds:uEnvironment:SetWorkingDirectory()函数  /ccsv8/ccs_base/common/uscif/libgdb_agent_xds.so 将当前工作目录更改为 /ccsv8/ccs_base/common/uscif:

    [表达式是传递给 chdir()函数的字符串]

    即、这似乎是 libgdb_agent_xds.so 中用于更改当前工作目录的故意操作。

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

    切斯特、

    [引用 user="AarticG"]无论  从哪个目录调用命令,gdb_agent_console 似乎都将 C:\ti\ccs740\ccsv7\ccs_base\common\uscif\作为相对路径的基目录。

    我确认了这是 GDB 代理的工作方式、即在解析相对路径时采用 CCS 基路径。