7.9.1.25.GEL 调试

发生运行时错误时,GEL 会输出详细的错误消息以及完整的调用栈。例如:

Test.gel:

foo_cmd2( ) { foo_cmd(); } cmd() { foo_cmd4(); }

Test2.gel:

foo_cmd5( ) { foo_cmd2(); } foo_cmd4( ) { foo_cmd7(); }

Test3.gel:

foo_cmd7( ) { foo_cmd5(); } foo_cmd() { GEL_TextOut( "address of cmd = %x\n", 0, 0, 0, 0, &cmd2 ); }

在 CCS Scripting Console 中评估 cmd(),用户将获得:

 js:> eval('cmd()') Error evaluating "cmd()": identifier not found: cmd2 at GEL_TextOut("address of cmd = %x\n", 0, 0, 0, 0, &(cmd2)) [test3.gel:8] at foo_cmd() [test.gel:3] at foo_cmd2() [test2.gel:3] at foo_cmd5() [test3.gel:3] at foo_cmd7() [test2.gel:8] at foo_cmd4() [test.gel:8] at cmd() (C:\ti\ccs\eclipse\configuration\org.eclipse.osgi\bundles\361\1\.cp\resources\debugserver\expression.js#10) js:>

7.9.1.25.1.GEL_Trace

此功能使用户能够跟踪 GEL 脚本的执行。您可以通过执行 GEL 内置函数 GEL_Trace( level) 来控制该功能

其中 level 是整数 0、1 或 2。
  • 0 – 无迹线(默认值)
  • 1 – GEL 函数的布线进入/退出
  • 2 – 跟踪函数中每个语句的执行情况(包括进入/退出)

默认情况下,布线将被发送到 CCS 控制台。您可以使用 GEL_EnableFileOutputGEL_DisableFileOutput 重定向输出。以下是一些布线示例。

在目标启动期间跟踪 GEL 执行:

:: 亮点: 控制台

Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:23 Enter function StartUp Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:25 GEL_LoadGel(“$(GEL_file_dir)/CortexM3_util.gel”) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:27 GEL_MapOff() Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:28 GEL_MapReset() Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:29 GEL_MapOn() Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:30 F28M35H52C1_Memory_Map() Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:73 Enter function F28M35H52C1_Memory_Map Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:100 GEL_MapAddStr(0x0, 0, 0x10000, “R”, 0) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:101 GEL_MapAddStr(0x200000, 0, 0x80000, “R”, 0) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:102 GEL_MapAddStr(0x600000, 0, 0x10000, “R”, 0) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:103 GEL_MapAddStr(0x680000, 0, 0x00800, “R”, 0) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:104 GEL_MapAddStr(0x680800, 0, 0x00004, “R”, 0) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:241 GEL_MapAddStr(0xE000E000, 0, 0x1000, “R|W”, 0) Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:243 GEL_TextOut(“Memory Map Initialization Completen”) Cortex_M3_0: GEL Output: Memory Map Initialization Complete Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:243 Leave function F28M35H52C1_Memory_Map Cortex_M3_0: GEL Trace: f28m35h52c1_m3.gel:30 Leave function StartUp C28xx_0: GEL Trace: f28m35h52c1_c28.gel:21 Enter function StartUp C28xx_0: GEL Trace: f28m35h52c1_c28.gel:0 Leave function StartUp

跟踪 GEL 回调:

:: 亮点: 控制台

TMS470R2x_0: GEL Trace: ccs_modsyms.gel:65 Enter function OnHalt TMS470R2x_0: GEL Trace: ccs_modsyms.gel:66 GEL_TextOut(“Halted!!!n”) TMS470R2x_0: GEL Output: Halted!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:66 Leave function OnHalt TMS470R2x_0: GEL Trace: ccs_modsyms.gel:65 Enter function OnHalt TMS470R2x_0: GEL Trace: ccs_modsyms.gel:66 GEL_TextOut(“Halted!!!n”) TMS470R2x_0: GEL Output: Halted!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:66 Leave function OnHalt TMS470R2x_0: GEL Trace: ccs_modsyms.gel:6 Enter function load_module_symbol TMS470R2x_0: GEL Trace: ccs_modsyms.gel:7 GEL_TextOut(“Loading C:/Users/Documents/ptzfi.kon”) TMS470R2x_0: GEL Output: Loading C:/Users/Documents/ptzfi.ko TMS470R2x_0: GEL Trace: ccs_modsyms.gel:12 GEL_TextOut(“Relocate section .bss to 0xbf015964n”) TMS470R2x_0: GEL Output: Relocate section .bss to 0xbf015964 TMS470R2x_0: GEL Trace: ccs_modsyms.gel:13 GEL_SymbolShowSection(“C:/Users/Documents/ptzfi.ko”, “.bss”, 0xbf015964, 0xbf015964) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:14 GEL_TextOut(“Relocate section .data to 0xbf015208n”) TMS470R2x_0: GEL Output: Relocate section .data to 0xbf015208 TMS470R2x_0: GEL Trace: ccs_modsyms.gel:15 GEL_SymbolShowSection(“C:/Users/Documents/ptzfi.ko”, “.data”, 0xbf015208, 0xbf015208) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:16 GEL_TextOut(“Relocate section .data..cacheline_aligned to 0xbf015800n”) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:83 Enter function OnFileLoaded TMS470R2x_0: GEL Trace: ccs_modsyms.gel:83 Enter function OnFileLoaded TMS470R2x_0: GEL Trace: ccs_modsyms.gel:83 Enter function OnFileLoaded TMS470R2x_0: GEL Trace: ccs_modsyms.gel:83 Enter function OnFileLoaded TMS470R2x_0: GEL Trace: ccs_modsyms.gel:83 Enter function OnFileLoaded TMS470R2x_0: GEL Output: Relocate section .data..cacheline_aligned to 0xbf015800 TMS470R2x_0: GEL Trace: ccs_modsyms.gel:17 GEL_SymbolShowSection(“C:/Users/Documents/ptzfi.ko”, “.data..cacheline_aligned”, 0xbf015800, 0xbf015800) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 GEL_TextOut(“OnFileLoaded!!!n”) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 GEL_TextOut(“OnFileLoaded!!!n”) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 GEL_TextOut(“OnFileLoaded!!!n”) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 GEL_TextOut(“OnFileLoaded!!!n”) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 GEL_TextOut(“OnFileLoaded!!!n”) TMS470R2x_0: GEL Trace: ccs_modsyms.gel:18 GEL_TextOut(“Relocate section .exit.text to 0xbf01268cn”) TMS470R2x_0: GEL Output: OnFileLoaded!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 Leave function OnFileLoaded TMS470R2x_0: GEL Output: OnFileLoaded!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 Leave function OnFileLoaded TMS470R2x_0: GEL Output: OnFileLoaded!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 Leave function OnFileLoaded TMS470R2x_0: GEL Output: OnFileLoaded!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 Leave function OnFileLoaded TMS470R2x_0: GEL Output: OnFileLoaded!!! TMS470R2x_0: GEL Trace: ccs_modsyms.gel:84 Leave function OnFileLoaded