gdb 8.2 nicht erkannt ausführbare Datei auf macOS Mojave-10.14

Bekomme ich den gdb von brew install gdb.

Die Quelle für die Datei-Inhalte:

#include <cstdio>
int main(){
    int a = 10;
    for(int i = 0; i< 10; i++){
        a += i;
    }
    printf("%d\n",a);
    return 0;
}

Hier ist die ausführbare Datei mit dem Namen 'demo':
https://pan.baidu.com/s/1wg-ffGCYzPGDI77pRxhyaw

Ich kompilieren der Quellcode-Datei wie diese:

c++ -g -o demo demo.cpp

Und gdb

gdb ./demo

Aber, es kann nicht funktionieren. Es kann nicht erkannt, die ausführbare Datei.

GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin18.0.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
BFD: /Users/xxx/Codes/demo: unknown load command 0x32
BFD: /Users/xxx/Codes/demo: unknown load command 0x32
"/Users/xxx/Codes/demo": not in executable format: file format not recognized

Benutze ich file demo,dessen Ausgang demo: Mach-O 64-bit executable x86_64

Benutze ich file ./demoist,ist der output ./demo: Mach-O 64-bit executable x86_64

Typ c++ -v, Ausgabe :

Apple LLVM version 10.0.0 (clang-1000.10.44.2)
Target: x86_64-apple-darwin18.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

laufen ./demoist,ist der output 55
geben Sie show configuration im gdb,es zeigt:

 This GDB was configured as follows:
 configure --host=x86_64-apple-darwin18.0.0 --target=x86_64-apple-darwin18.0.0
         --with-auto-load-dir=:${prefix}/share/auto-load
         --with-auto-load-safe-path=:${prefix}/share/auto-load
         --with-expat
         --with-gdb-datadir=/usr/local/Cellar/gdb/8.2/share/gdb (relocatable)
         --with-jit-reader-dir=/usr/local/Cellar/gdb/8.2/lib/gdb (relocatable)
         --without-libunwind-ia64
         --without-lzma
         --without-babeltrace
         --without-intel-pt
         --disable-libmcheck
         --without-mpfr
         --with-python=/System/Library/Frameworks/Python.framework/Versions/2.7
         --without-guile
         --with-separate-debug-dir=/usr/local/Cellar/gdb/8.2/lib/debug (relocatable)

Kann mir wer helfen ? Ich danke Ihnen sehr !!!

  • Was gdb verwenden Sie? Wie hast du es bekommen? Haben Sie heruntergeladen haben, seinen source-code von sourceware.org/gdb/download und kompiliert es? Wenn ja, wie hast du es konfiguriert? Wenn Nein, zeigen Sie die Ausgabe des show configuration im gdb. Ebenfalls für Ihre c++ (ist es GCC, Geräusch, ....)? Die Ausgabe von c++ -v. Sind Sie in der Lage zu laufen ./demo im gleichen terminal ? Was ist die Ausgabe von file ./demo ?
  • Zeigen Sie vielleicht die Quelle demo.cpp (oder machen es zu einem kleinen minimale reproduzierbare Beispiel). Versuch erstmal mit einem Hallo-Welt-Beispiel wie
  • Dies klingt wie eine Menge, sourceware.org/bugzilla/show_bug.cgi?id=13157, außer das wurde behoben, 8.2. Beachten Sie auch, dass es einige macOS-Updates, die nur auf dem git master --, und Sie werden benötigt, beginnend zumindest mit High Sierra.
  • Auch denke ich nicht, dass jemand die Arbeit auf gdb hat versucht Mojave-noch. Die Einreichung einer gdb bug wäre toll. Noch besser wäre das anbringen eines "hello world"-Typ executable, wo es scheitert.
  • Versucht, sowohl die gdb 8.0 und 8.2, gleiche problem
  • Ich traf das gleiche problem auf meinem mac auch. Sie könnten versuchen lldb (was gut funktioniert), bis jemand das problem beheben können.
  • Ich habe versucht zu deinstallieren gdb mit homebrew und installieren Sie es von der folgenden Quellen BuildingOnDarwin Anleitung, aber gleiche problem
  • Gemeldet ich hab diesen Fehler #23746, sourceware.
  • Ich zog in der Nähe der anderen Frage, weil ich glaubte, es sei ein Duplikat. Aber wie Sie sehen können, hat die Gemeinde nicht geschlossen, die andere Frage als Duplikat. Daher, so Verschieden Sie auch sind Fragen, die in diesem moment in der Zeit.

InformationsquelleAutor food far | 2018-09-27
Schreibe einen Kommentar