我的目录中的文件列表(/ home / ayush / Desktop / xapian-patch / xapian / xapian-letor / bin)是
xapian-prepare-trainingfile.1 xapian-prepare-trainingfile.cc xapian-prepare-trainingfile xapian-prepare-trainingfile.o
我可以运行命令./xapian-prepare-trainingfile --db=/home/ayush/Documents/data/db /home/ayush/Documents/data/query.txt /home/ayush/Documents/data/qrel.txt /home/ayush/Documents/data/sample3.txt
但是当我尝试通过GDB运行相同的命令时
gdb --args xapian-prepare-trainingfile --db=/home/ayush/Documents/data/db /home/ayush/Documents/data/query.txt /home/ayush/Documents/data/qrel.txt /home/ayush/Documents/data/sample3.txt
我收到错误
"/home/ayush/Desktop/xapian-patch/xapian/xapian-letor/bin/xapian-prepare-trainingfile": not in executable format: File format not recognized
我想知道如何运行c ++命令,我可以通过GDB运行而没有任何问题
答案 0 :(得分:0)
"/home/ayush/Desktop/xapian-patch/xapian/xapian-letor/bin/xapian-prepare-trainingfile": not in executable format: File format not recognized
上述错误的最可能原因是./xapian-prepare-trainingfile
是shell脚本,而不是可执行文件。
您可以通过运行file xapian-prepare-trainingfile
确认这一点。
如果是shell脚本,则需要运行:
bash -x ./xapian-prepare-trainingfile ...
并找出它最终调用的实际可执行文件,并调试 。
另一种方法:制作xapian-prepare-trainingfile
的副本,编辑它,然后在脚本gdb --args
之前插入exec
的实际二进制文件。