【arm gdb】
[set env on PC]
export MY_PRJ_PATH=/home/user/Project/tunnel/ppTunnel/ppTunnel_dev
[arm device]
1.ulimit -c unlimited
2.run execute file
3.download core file to PC
4.將core檔從embedded system下載回開發主機,使用corss platfrom的gdb
arm-linux-gnueabihf-gdb <exefile> <core>
5.在gdb下使用
(gdb) info sharedlibrary
6.一般應該是看到share library在哪,這時一樣在gdb下使用
(gdb) set sysroot <your system root path>
(gdb) set solib-search-path <your share library path>
7.接著再使用bt就能看到debug資訊了
(gdb) bt
[PC]
1.$ROOTFOLDER/bin/arm-linux-gnueabihf-gdb $MY_PRJ_PATH/bin/exeFile $MY_PRJ_PATH/bin/core
2.set solib-search-path $MY_PRJ_PATH/lib/
3.bt
$ROOTFOLDER是交叉編譯環境的根目錄
$MY_PRJ_PATH是交叉編譯的專案的根目錄,下面bin裡放的是執行檔和在arm device裡產生的core檔,lib裡放的是執行檔會用到的lib,這邊可以任意指定solib-search-path到會用到的lib的路徑
如果core 檔沒有產生在當前目錄下
sudo bash -c "echo core-%e-%p-%t > /proc/sys/kernel/core_pattern"
說明:
- %% – 符号%
- %p – 进程号
- %u – 进程用户id
- %g – 进程用户组id
- %s – 生成core文件时收到的信号
- %t – 生成core文件的时间戳(seconds since 0:00h, 1 Jan 1970)
- %h – 主机名
- %e – 程序文件名
这样更改只是临时的,要想永久生效可以通过更改配置文件:
vim /etc/sysctl.conf
添加一行:kernel.core_pattern=core-%e-%p-%t
sysctl -p让配置立刻生效
REF
沒有留言:
張貼留言