让gdb自动读取./.gdbinit

时间:2019-06-01 12:41:33

标签: linux gdb

使用原始的gdb (Debian 8.2.1-2)在我的Linux / x86-64 / Debian Sid AMD2970WX桌面上调试RefPerSys(GPLv3 +,在gitlab上)提交ec4ab756d302056cace0b时,我得到了重现

rimski.x86_64 ~/refpersys 14:39 .0 % gdb --args ./refpersys --object-tinybenchmark1
GNU gdb (Debian 8.2.1-2) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./refpersys...done.
warning: File "/home/basile/refpersys/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
    add-auto-load-safe-path /home/basile/refpersys/.gdbinit
line to your configuration file "/home/basile/.gdbinit".
To completely disable this security protection add
    set auto-load safe-path /
line to your configuration file "/home/basile/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
    info "(gdb)Auto-loading safe path"

通过这样的gdb调用而不进行诊断来消化我的./.gdbinit的神奇之处是什么? .gdbinit包含:

# file refpersys/.gdbinit 
# GPLv3+ licensed 
add-auto-load-safe-path ./.gdbinit 
break abort 
break rps_fatal_stop_at 
set max-value-size 67108864

我可以(过去做过)从其源代码重建gdb。但是今天,我很me脚,更喜欢专注于我的错误。

FWIW

(gdb) show configuration 
This GDB was configured as follows:
   configure --host=x86_64-linux-gnu --target=x86_64-linux-gnu
             --with-auto-load-dir=$debugdir:$datadir/auto-load
             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
             --with-expat
             --with-gdb-datadir=/usr/share/gdb (relocatable)
             --with-jit-reader-dir=/usr/lib/gdb (relocatable)
             --without-libunwind-ia64
             --with-lzma
             --with-babeltrace
             --with-intel-pt
             --disable-libmcheck
             --without-mpfr
             --with-python=/usr (relocatable)
             --without-guile
             --with-separate-debug-dir=/usr/lib/debug (relocatable)
             --with-system-gdbinit=/etc/gdb/gdbinit

1 个答案:

答案 0 :(得分:1)

正如启动gdb时的警告所言:

To enable execution of this file add
    add-auto-load-safe-path /home/basile/refpersys/.gdbinit
line to your configuration file "/home/basile/.gdbinit".

您似乎误解了,并将该行添加到了仓库中的.gdbinit文件中,但是它需要进入您的主目录。

如果.gdbinit文件在您的主目录中尚不存在,则可以创建该文件,并且仅在上面添加所需的行即可。