У меня есть приложение, которое работает на Raspberry Pi, и я хотел бы отладить его с моего хост-компьютера.
Кросс-компиляция работает нормально, и я могу запустить сервер gdb для отладки.
gdbConfigurationScript. sh
пусто!
copyToRemote. sh
#!/bin/bash
USER=pi
HOST_IP=192.168.178.20
REMOTE_IP=multikopter
TARGET_PATH=/home/pi/Documents/Multikopter
PROGRAM=Multikopter
PORT=12345
PATH_TO_PROGRAM_HOST="/home/martin/GITProjekte/Build00_Multikopter"
PW=****
if [ -f "$PATH_TO_PROGRAM_HOST/$PROGRAM" ]
then
echo "Copy file '$PATH_TO_PROGRAM_HOST/$PROGRAM' to target"
sshpass -p $PW ssh -t $USER@$REMOTE_IP "echo PGREPGDBSERVER: $(pgrep gdbserver);sudo kill -2 $(pgrep gdbserver)"
sshpass -p $PW scp "$PATH_TO_PROGRAM_HOST/$PROGRAM" $USER@$REMOTE_IP:$TARGET_PATH
sshpass -p $PW ssh -t $USER@$REMOTE_IP "sudo gdbserver $HOST_IP:$PORT $TARGET_PATH/$PROGRAM"
else
echo "file '$PATH_TO_PROGRAM_HOST/$PROGRAM'not exist"
fi
connectToRemoteGDB. sh
file Multikopter
target remote multikopter:12345
b main
continue
Проблема в том, что я не могу снова остановить программу, и gdbserver все еще работает , Чтобы снова выполнить отладку, сначала нужно вручную убить gdbserver на raspberrypi.
Есть ли другой способ отладки удаленного доступа с помощью KDevelop или простой способ остановить программу?