我正在使用此脚本来编译程序并在嵌入式板上调试它:
#!/bin/bash
# Recompile:
make clean
make
# Erase memmory and upload the program:
{ echo 'connect';
echo '';
echo '';
echo '';
echo '';
echo 'erase';
echo 'loadbin program.bin , 0x0';
echo 'r';
echo 'q'; } | JLinkExe
# Kill any JLinkExeGDBServer:
killall JLinkGDBServer
# Set up the GDB server and connect with GDB:
JLinkGDBServer -device LPC4088 & sleep 2s && \
{ echo 'dashboard -layout source';
echo 'dashboard source -style context 14';
echo 'file program.elf';
echo 'target remote :2331';
echo 'monitor reset';
cat; } | arm-none-eabi-gdb
运行该脚本后,所有命令都可以很好地执行,但是GDB中有某种二进制符号(屏幕截图),并且看起来GDB中的自动完成功能根本无法正常工作。此外,某些GDB命令已完全中断。如果我仅使用arm-none-eabi-gdb
而不提供它,则通过管道|
来提供命令,GDB再次可以正常工作。
但是我需要传递那些命令...
我正在使用GDB Dashboard中的~/.gdbinit
,但是即使我删除了,问题仍然存在。
答案 0 :(得分:2)
以这种方式调用gdb时,它并不直接连接到您的终端。您可能应该改为使用命令文件来启动gdb-如果将这些命令放入名为“ myscript”的文件中,然后使用--command = myscript
调用gdb应该以正确的方式完成您想要的设置。