gdb は Linux の 32 ビット プログラムをデバッグできません

gdb は Linux の 32 ビット プログラムをデバッグできません

これを解決するにはどうすればよいですか? gdb を使用して 32 ビット プログラムをデバッグすると、この警告が表示されました。これにより、プログラムを実行できなくなりました。

gdb を使用して 32 ビット プログラムをデバッグすると、この警告が表示されました。これにより、プログラムを実行できなくなりました。 これはgdbに関する設定情報です

これはgdbに関する設定情報です

答え1

64 ビット Ubuntu で 32 ビット アプリケーションをデバッグしたい場合は、試してみてください。

sudo apt-get install gdb-multiarch

答え2

私も同じ問題に遭遇しました。さまざまな設定とマシンでテストした結果、Ubuntu 18.04 に同梱されている gdb バージョン (8.1) にはバグがあるという結論に達しました。より新しいバージョンの gdb は問題なく動作するようです (つまり、これらの奇妙な警告は表示されず、32 ビット プログラムのデバッグ時に gdb がハングしません)。

gdb 8.2 が同梱されている Ubuntu 19.04 で試してみましたが、そのままでも問題なく動作します。また、最新バージョン (執筆時点では 8.3.1) をコンパイルしてみましたが、問題なく動作します (Ubuntu 18.04 でも)。

私の提案は、最新バージョンの gdb (執筆時点では 8.3.1) を入手して自分でコンパイルすることです。ソース バンドルはここから入手できます。https://mirrors.kernel.org/sourceware/gdb/releases/

もう一つの(非常に)理想的とは言えない解決策は、gdb:i38632ビットアプリケーション用のgdbをインストールするパッケージをインストールすることです。ただし、64ビットのgdbをアンインストールしますおそらく、そうしたくないでしょう。

根本的な問題が何なのか、またそれを素早く解決する方法があるのか​​どうかもわかりません。

関連情報