使用管道时奇怪的二进制符号
Weird binary signs when using pipe
我正在使用这个脚本来编译我的程序并在我的嵌入式板上调试它:
#!/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
,但即使我删除它,问题仍然存在。
当您以这种方式调用 gdb 时,它不会直接连接到您的终端。您可能应该改为使用命令文件来启动 gdb - 如果您将这些命令放入一个名为 "myscript" 的文件中,然后使用 --command=myscript
调用 gdb
这应该以正确的方式完成您想要的设置。
我正在使用这个脚本来编译我的程序并在我的嵌入式板上调试它:
#!/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
,但即使我删除它,问题仍然存在。
当您以这种方式调用 gdb 时,它不会直接连接到您的终端。您可能应该改为使用命令文件来启动 gdb - 如果您将这些命令放入一个名为 "myscript" 的文件中,然后使用 --command=myscript
调用 gdb这应该以正确的方式完成您想要的设置。