參考資訊:
https://forums.windriver.com/t/vxworks-software-development-kit-sdk/43
https://d13321s3lxgewa.cloudfront.net/downloads/wrsdk-vxworks7-docs/2309/README_qemu.html
app.c
#include <stdio.h>
int main(int argc, char **argv)
{
printf("GDB Test\n");
return 0;
}
編譯
$ source ~/wrsdk-vxworks7-qemu/sdkenv.sh
$ wr-cc --version
clang version 16.0.0.1
$ wr-cc app.c -o app -ggdb
啟動QEMU
$ cd
$ sudo python3 -m pyftpdlib -p 21 -u target -P vxTarget -i 127.0.0.1 -d $HOME -w
$ cd ~/wrsdk-vxworks7-qemu
$ qemu-system-x86_64 -m 512M -kernel vxsdk/bsps/itl_generic_3_0_0_3/vxWorks \
-net nic -net user,hostfwd=tcp::1534-:1534,hostfwd=tcp::2345-:2345 \
-display none -serial stdio -monitor none \
-append "bootline:fs(0,0)host:vxWorks h=10.0.2.2 e=10.0.2.15 u=target pw=vxTarget o=gei0"
GDB Debug
$ gdb
(gdb) target extended-remote tcp:127.0.0.1:2345
Remote debugging using tcp:127.0.0.1:2345
(gdb) file app
Reading symbols from app...
(gdb) b main
Breakpoint 1 at 0x201416: file app.c, line 5.
(gdb) set remote exec-file /host.host/app
(gdb) r
Starting program: /home/steward/Downloads/app
Reading /lib/ld64.so.1 from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Reading /host.host/app from remote target...
Reading /lib/libc.so.1 from remote target...
Breakpoint 1, main (argc=1, argv=0x266000) at app.c:5
5 printf("GDB Test\n");
(gdb) list
1 #include <stdio.h>
2
3 int main(int argc, char **argv)
4 {
5 printf("GDB Test\n");
6 return 0;
7 }