gdb kann das 32-Bit-Programm für Linux nicht debuggen

gdb kann das 32-Bit-Programm für Linux nicht debuggen

Wie kann ich das lösen? Wenn ich gdb zum Debuggen des 32-Bit-Programms verwende, wird diese Warnung angezeigt. Und das führt dazu, dass das Programm nicht ausgeführt werden kann.

Wenn ich gdb zum Debuggen des 32-Bit-Programms verwende, wird diese Warnung angezeigt. Dadurch kann das Programm nicht ausgeführt werden. Dies sind die Konfigurationsinformationen zu gdb

Dies sind die Konfigurationsinformationen zu gdb

Antwort1

Wenn Sie die 32-Bit-Anwendung auf 64-Bit-Ubuntu debuggen möchten. Probieren Sie es aus.

sudo apt-get install gdb-multiarch

Antwort2

Ich habe das gleiche Problem. Nach Tests mit verschiedenen Setups und Maschinen bin ich zu dem Schluss gekommen, dass die mit Ubuntu 18.04 ausgelieferte GDB-Version (8.1) fehlerhaft ist. Neuere Versionen von GDB scheinen einwandfrei zu funktionieren (das heißt: Sie sehen diese seltsamen Warnungen nicht + GDB bleibt beim Debuggen von 32-Bit-Programmen nicht hängen).

Ich habe es auf Ubuntu 19.04 versucht, das mit gdb 8.2 ausgeliefert wird, und es funktioniert sofort einwandfrei. Ich habe auch versucht, die neueste Version (zum Zeitpunkt des Schreibens: 8.3.1) zu kompilieren, und es funktioniert einwandfrei (sogar auf Ubuntu 18.04).

Mein Vorschlag ist, die neueste Version von gdb (zum Zeitpunkt des Schreibens: 8.3.1) zu verwenden und sie selbst zu kompilieren. Sie können die Quellpakete hier herunterladen:https://mirrors.kernel.org/sourceware/gdb/releases/.

Eine weitere (sehr) subideale Lösung, die zu funktionieren scheint: Sie können das gdb:i386Paket installieren, das gdb für 32-Bit-Anwendungen installiert.es wird gdb für 64bits deinstallieren, was Sie vielleicht nicht tun möchten.

Ich habe keine Ahnung, was das zugrunde liegende Problem ist und ob es eine schnelle Möglichkeit gibt, es zu beheben.

verwandte Informationen