Eclipse GDB发布 - “没有可用于gdb的源[38] .proc [42000] .threadGroup [...]”“

时间:2014-03-11 05:49:05

标签: eclipse gdb

这一直困扰着我。也许其他人遇到过它并找到了解决方案。

:定位

  • 嵌入式MCU

设置

  • Eclipse CDT(8.3.0)
  • 自定义C / C ++编译器(公司内部,LLVM 3.1 /等,GNU ELF)
  • Eclipse GDB硬件调试启动(8.3.0)

问题

当我为这个目标启动调试启动时,gdb中的后端会出现一些问题,你可以在 gdb trace console 中看到。它看起来像这样(...是截断的lineb):

(名称改为保护无辜者)

..360,743 2-environment-cd /home/jmreina/myworkspace/myproj
360,743 2^done
360,743 (gdb) 
360,744 3-gdb-set breakpoint pending on
360,744 3^done
...
360,747 9source .gdbinit
...
360,748 ~"Reading symbols from /home/jmreina/myworkspace/myproj/Debug/myproj.elf..."
...
381,233 (gdb) 
381,233 58^done,groups=[{id="i1",type="process",pid="42000"}]
...
381,516 65-data-disassemble --thread 1 -s 536883209 -e 536883241 -- 1
381,559 66-data-read-memory 2415919152 x 1 1 4
381,568 65^done,asm_insns=[src_and_asm_line={line="68",file="/home/jmreina/myworkspace/myproj/myfcns/\
foo.c",line_asm_insn=[{address="0x2000300e",func-name="foo_initialize",offset="16",inst="call   0x20\
00409b <memset$fastcc>"},{address="0x20003013",func-name="foo_initialize",offset="21",inst="mov    $\
0x10,%eax"},{address="0x20003018",func-name="foo_initialize",offset="26",inst="xor    %edx,%edx"},{a\
ddress="0x2000301a",func-name="foo_initialize",offset="28",inst="mov    $0x60000210,%ecx"}]},src_and\
_asm_line={line="69",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[{address="0x\
2000301f",func-name="foo_initialize",offset="33",inst="call   0x2000409b <memset$fastcc>"}]},src_and\
_asm_line={line="70",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_a\
sm_line={line="71",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm\
_line={line="72",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_l\
ine={line="73",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_lin\
e={line="74",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line=\
{line="75",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line={l\
ine="76",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line={lin\
e="77",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line={line=\
"78",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line={line="7\
9",file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line={line="80"\
,file="/home/jmreina/myworkspace/myproj/myfcns/foo.c",line_asm_insn=[]},src_and_asm_line={line="81",f\
...
(FOUR-HUNDRED+ more lines of the same CRAPfrom myfcns/foo.c!)
...

然后Eclipse在空白编辑器中显示:

enter image description here

No source available for "(gdb[38].proc[42000].threadGroup[i1],gdb[38].proc[42000].OSthread[1]).thread[1].frame[0]" 

认为它显示了这一点,因为上面的砖块( 432行!)花了很长时间才加载到后端,并且我认为发布后面的Eclipse-GDB插件会出现某种超时。

我非常确定foo.c在FLASH 中的main()之后直接位于。因此,GDB在这里调用初始化来获取Eclipse中的反汇编视图。

*请注意,如果反汇编视图已关闭(未最小化,已关闭),则不会发生这种情况。

问题

  1. Whhhhhy!
  2. 我怎么调试这个?对于foo.c,可能.debug_info已损坏/缺失?
  3. 这让我厌恶,每天20次/天。我该如何修复,甚至理解它??!?

2 个答案:

答案 0 :(得分:1)

根据您的主题,&#34;没有可用的来源...&#34;。一个原因可能是目标上的 gdbserver 与主机上的 gdb 之间的版本不兼容。如果有可用的目标特定gdb,则应检查工具链。

答案 1 :(得分:1)

我知道,这是一个旧线程,但也许可以帮助其他人。 昨天,我也遇到了此错误,它是在使用DAVE和J-Link调试XMC4500板时发生的。使用J-link上传程序效果也很好。

我重新安装了Eclipse IDE->没有变化 更新的J-Link->不变 编译效果很好 在另一块板上调试其他项目效果很好

我的解决方案是运行J-link flashtool(例如JFlash.exe或JFlashLite.exe,您可以在Segger J-Link的安装目录中找到它),擦除整个芯片。之后错误消失了。

致谢

Geri