GDB的使用设置

问题分析及解决

Posted by VK on August 29, 2019

GDB的使用设置

gdb的设置与使用简介

##1 打开coredump文件的生成:

echo "/tmp/corefile-%e-%p" >/proc/sys/kernel/core_pattern
ulimit -c unlimited #(limit coredumpsize unlimit)  #临时设置

#or
#永久设置coredump size大小
# echo " * soft core 4194304" >> /etc/security/limits.conf
# echo " * hard core 4194304" >> /etc/security/limits.conf

注:若还没法生成,需要确认,是否进程或系统的代码中重新定义了signal(sig,handle),如SIGSEGV,导致无法触发

1.1 查看

[root@xxxx ~]$ ulimit -a
core file size          (blocks, -c) 4194304
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 61941
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 61941
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2 GDB调试设置库路径

2.1.1 设置solib-absolute-prefix

如果库在host上的布局与在target上的布局相同,则使用solib-absolute-prefix比较方便。

target上:

/opt/publish

host上:

/home/ronzheng/opt/publish

则可以设置solib-search-path为:

(gdb) set solib-absolute-prefix /home/ronzheng

solib-absolute-prefix有个更常用的别名sysroot,所以如下的命令是一样的:

(gdb) set sysroot /home/ronzheng

2.1.2 设置solib-search-path

设置solib-search-path可以指定多个路径,路径之间用:隔开。

(gdb) set solib-search-path <path1:path2:path3>