【问题标题】:Change the working directory when debug in emacs gdb?在 emacs gdb 中调试时更改工作目录?
【发布时间】:2017-03-30 15:42:57
【问题描述】:

当我打开 emacs 并输入时:

M+x gdb

运行 gdb(像这样):gdb im=mi /home/qinchen/major/caffe/caffe_gdb/build/tools/caffe

然后输入:

运行训练 --solver=examples/mnist/lenet_solver.prototxt

但它报告: 我

o.cpp 检查失败:fd!=-1。文件不 找到:examples/mnist/lenet_solver.prototxt

我猜如果错误是由 emacs 的当前工作目录不在 CAFFE_ROOT 中触发的。因为我在 CAFFE_ROOT 目录中的 linux 终端中使用

进行调试

gdb --args build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

我可以成功调试这个demo。那么谁能帮我在gdb中调试时将emacs工作目录设置为CAFFE_ROOT以消除上面报告的错误?

【问题讨论】:

    标签: emacs gdb caffe


    【解决方案1】:

    简单:

    M+x gdb
    gdb -i=mi -cd /home/qinchen/major/caffe/caffe_gdb --args build/tools/caffe train --solver=examples/mnist/lenet_solver.prototx
    

    【讨论】:

      【解决方案2】:

      我个人觉得复制和粘贴绝对路径到我的可执行文件非常烦人,所以我通常只是这样运行它:

      M+x 然后gdb 并使用默认命令运行:gdb -i=mi

      更好的是,如果您使用 Projectile,您可以使用 projectile-run-gdb(或 C-c p x g)以项目根目录作为 CWD 运行 gdb。这样你就可以通过:gdb -i=mi build/tools/caffe。这对我来说非常方便,因为我的 build 目录通常位于我的项目根目录中。

      如果你不使用弹丸,当在 gdb 界面,做pwd 告诉你你在哪里。我通常只需要cd 一次或两次才能进入我想要进入的工作目录。然后只需执行file build/tools/caffe 即可打开文件进行调试,然后您就可以开始了。

      将路径/参数粘贴或编辑到迷你缓冲区中可能会让我感到愤怒。这样我只需运行它,更改一两个目录,然后像在控制台中一样使用相对路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-18
        • 2012-05-01
        • 2023-03-13
        • 2011-06-23
        • 1970-01-01
        相关资源
        最近更新 更多