1. ホーム
  2. c++

実行プログラムをロードした後にGDBデバッグを行うと、"not in executable format "と表示される。

2022-02-22 06:45:55
<パス

gdbのデバッグでは、ファイルがスクリプトではなく実行ファイルであるかどうかを確認するためにfileを使用することに注意してください。

GDBデバッグでは、実行ファイルをロードした後、"not in executable format"のプロンプトが表示されます。

gdb const

次のようなプロンプトメッセージが表示されます。

GNU gdb Red Hat Linux (5.5)

Copyright 2008 Free Software Foundation, Inc.

GDB は GNU 一般公衆利用許諾契約書によって保護されているフリーソフトウェアです。

一定の条件のもとで、これを変更したり、複製を配布することを歓迎します。

show copying"と入力すると、条件が表示されます。

GDBの保証は一切ありません。詳細は "show warranty" と入力してください。

このGDBは "i386-redhat-linux" として設定されました...const: 実行可能な形式ではありません。

回避策

1. MakefileのCFLAGSオプションを-gで確認する # CFLAGS= -g -O2

2. file/tyoeコマンドで実行ファイルの種類を確認する。

[root@lt-liyuncheng 2]# file const

constを使用します。ELF 32-bit LSB 実行ファイル、Intel 80386、バージョン 1 (SYSV)、GNU/Linux 2.6.9 用、ダイナミックリンク済み

(共有ライブラリを使用), GNU/Linux 2.6.9 用, ストリップされない # 保証された実行ファイル

[root@lt-liyuncheng 2]# type . /const

. /const は . /const #実行ファイルのパスが正常であることを確認する。

3. プログラムが実行されている場合は、以下のコマンドでデバッグしてください。

$ps -ef|grep const

$gdb const PID