在Eclipse CDT中使用Zylin调试arm-elf C代码

时间:2010-08-19 00:38:36

标签: eclipse debugging gdb arm eclipse-cdt

我在OS X 10.5.8上使用带有Zylin嵌入式调试(本机)和arm-elf-gdb 6.6的Eclipse CDT。 我有一个OCD调试器连接到带有ARM处理器的电路板。

Eclipse能够在第一个断点处停止并从内存中收集变量,但任何后续断点或单步都会失败。我可以在使用命令行gdb时设置断点,但在完全相同的位置设置断点会在Eclipse中出现这些错误:

Warning:
Cannot insert breakpoint 2.
Error accessing memory address 0x3f6: Unknown error: -1.

我的OCD连接死于"Error: unexpected error -308"

我在两种情况下都使用相同的OCD脚本。

我看到的唯一区别是(1)Eclipse使用Zylin和mi协议与gdb交谈,(2)我的gdb脚本以这种方式被不同地调用:

从gdb运行时,我使用以这两行结尾的脚本文件:

load        filename.out
symbol-file filename.out

在Eclipse中,我将此脚本文件的内容复制到“Debug Configurations | Commands”(我已经尝试了“'Initialize'命令”和“'Run'命令”框。我用最后两行代替load,并在“Debug Configurations | Main | C / C ++ Application”框中指定filename.out

我很欣赏有关如何让Zylin + Eclipse表现出来的任何建议。 感谢。

1 个答案:

答案 0 :(得分:0)

我在LPC2103上使用相同的解决方案。

转到Eclipse,Zylin Debug Configurations > Embedded Debug (Native)

主要标签: C / C ++应用程序= you_elf_file.elf

调试器标签: GDB调试器= arm-elf-gdb; GDB命令集= Standard;协议= mi2

<强>命令:

'初始化'命令:

target remote localhost:3333

monitor arm7_9 dcc_downloads enable
monitor arm7_9 fast_memory_access enable
monitor arm7_9 dbgrq enable

monitor reset halt
monitor wait_halt
monitor sleep 500
load

'运行'命令:

continue

我正在使用并行端口Wiggler和OpenOCD [Open On-Chip Debugger 0.4.0]和安装附带的cfgs:

openocd -f interface/parport.cfg -f target/lpc2103.cfg

它适用于我的大部分时间。