【问题标题】:How do I load .gdbinit on gdb startup?如何在 gdb 启动时加载 .gdbinit?
【发布时间】:2013-03-14 00:47:23
【问题描述】:

这是一个看似微不足道的问题,但我找不到一个简单的方法来完成这个。

我将我的.gdbinit 文件定义在与 gdb.exe 所在的目录相同的目录中——即在我的编译器的 bin 目录中。但是,当我运行 gdb 时,我得到了这个:

GNU gdb (GDB) 7.5.50.20120804-cvs
Copyright (C) 2012 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 "i686-w64-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
warning: File "g:\Mingw32-4.6.3\bin\.gdbinit" auto-loading has been declined by
your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".

我查阅了关于自动加载here 的手册,但它没有保存我添加的新安全路径!退出 gdb 并重新启动它,我添加的安全路径消失了。

我的.gdbinit 包含我总是希望在启动时加载的设置。加载.gdbinit 可能与环境无关,但在 Windows 下执行此操作的最简单方法是什么?有一个附加约束,.gdbinit 不能驻留在我的主目录中 - 它必须与 gdb.exe 可执行文件位于同一路径中。

【问题讨论】:

    标签: windows gdb


    【解决方案1】:

    我的 .gdbinit 文件与 gdb.exe 所在的目录定义在同一目录中

    放入您的$HOME当前 目录。

    【讨论】:

    • 我在当前目录下添加了.gdbinit,但还是不行。我在文件开头添加的 echo 命令也没有打印出来。
    • Windows 是否还有$HOME 目录? current directory 是什么(gdb 正在由 IDE 启动,但将其放在 IDE 的 .exe 目录中不起作用)?文件应该在 Windows 上的什么位置?
    • @MawgsaysreinstateMonica 在Windows下,把你的.gdbinit放到C:\Users\YourUsername下即可;这是主目录
    • 我不知道为什么这拒绝为我工作,使用 powershell(7) 如果我 cat $home\.gdbinit 我什至可以看到该文件,但为了方便起见,我使用了 powershell 配置文件函数 arm-none-eabi-gdb.exe -iex "set auto-load safe-path $pwd" -ix "$pwd/.gdbinit" -q .\target\thumbv6m-none-eabi\debug\&lt;project name&gt;
    【解决方案2】:

    我在 Windows 7 上使用 CodeSourcery arm-none-eabi-gdb.exe。按照上述说明在我的情况下不起作用。以下命令有效:

    arm-none-eabi-gdb.exe -x D:\CodeSourcery\bin\.gdbinit

    【讨论】:

      【解决方案3】:

      以上答案都不适合我。问题是在windows下没有设置HOME环境变量。所以让我们设置一个: 在命令行中写:

         set HOME=c:\users\user
      

      .gdbinit 应该在哪里,您可以通过设置内容来禁用安全保护:

      set auto-load safe-path /
      

      从现在开始,您的 gdb 将加载您的本地 .gdbinit

      c:\MinGW\bin\gdb.exe app.exe
      

      【讨论】:

      • 根据我对已接受答案的评论,Windows 下的主目录已被视为C:\Users\YourUsername。只需将您的 .gdbinit 放在这里就可以了
      【解决方案4】:

      我启动Xtensa工具链自带的xt-gdb,-iex -ix参数如下:

      xt-gdb -iex "设置自动加载安全路径 Path\to\gdbinit\dir" -ix Path\to\gdbinit\dir.gdbinit

      【讨论】:

        【解决方案5】:

        对于其他苦苦挣扎的 xtensa 工具链用户:xt-gdb 不是在寻找名为 .gdbinit 的文件,而是在寻找名为 .xt-gdbinit 的文件。否则,机制与标准 gdb 完全相同。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-25
          • 2015-03-12
          相关资源
          最近更新 更多