如何配置gdb来调试脚本而不是二进制文件[gdb:文件格式无法识别]

时间:2015-06-05 10:03:49

标签: debugging gdb torch

我正在尝试使用gdb来调试Torch library二进制文件。当我从命令行运行时: gdb --args th

我收到以下错误:

"/xxx/xxxx/torch/install/bin/th": not in executable format: File format not recognized

我检查了当前安装的gdb是否为64位我安装了gdb64并且当我运行时

gdb64 --args th

我仍然得到相同的错误,输出:

file /xxx/xxxx/torch/install/bin/th

是:

/xxx/xxxx/torch/install/bin/th: POSIX shell script, ASCII text executable, with very long lines 

我了解到问题是可执行文件不是二进制文件,而是脚本,因此gdb正在尝试调试脚本。

我的问题是如何克服这个问题,让gdb调试命令本身的执行。甚至将Torch安装替换为二进制执行而不是脚本。

2 个答案:

答案 0 :(得分:1)

在评论的帮助下,我能够通过火炬脚本运行gdb,通过:

gdb64 /bin/bash    # check your gdb configuration either it's i686 or x86_64 
run /path/to/th    # th is the torch running script to be debugged

答案 1 :(得分:-1)

尝试LLDB Debuggerlldb),而不是取代GNU调试器(gdb)。

默认情况下,在BSD / OS X上可用,在Linux上安装:sudo apt-get install lldb(或使用yum)。

如需使用,请查看gdb to lldb command map页。