2017-09-28 2 views
0

nicht richtig installiert werden Ich habe alles versucht, was ich über die Installation von gdb finden kann, aber immer noch konnte es nicht funktionieren.gdb kann in Mac Sierra

Hier ist, wie ich installieren und auszuführen GDB:

  1. installieren gdb mit brew install gdb

  2. dann sagt mir das folgende

    (experiment3.5) zu tun -> Gebräu installieren gdb Aktualisierung Homebrew ... ==> Herunterladen https://homebrew.bintray.com/bottles/gdb- 8.0.1.sierra.bottle.tar Bereits heruntergeladen:/Users/Na tsume/Bibliothek/Caches/Homebrew/gdb- 8.0.1.sierra.bottle.tar.gz ==> Gießen gdb-8.0.1.sierra.bottle.tar.gz ==> Vorbehalte gdb erfordert spezielle Privilegien Zugriff auf Mach-Ports. Sie müssen die Binärdatei codieren. Eine Anleitung finden Sie unter:
    https://sourceware.org/gdb/wiki/BuildingOnDarwin

    auf 10,12 (Sierra) oder später mit SIP, müssen Sie dies auszuführen:

    echo "set startup-with-shell off" >> ~/.gdbinit

  3. habe ich diese beiden Schritte beenden. Ich tat die Codesign-Aufgabe durch genaue Befolgung der Anweisung here

  4. alles läuft reibungslos. aber wenn ich den folgenden Code lief, habe ich immer noch die gleiche Fehlermeldung

Ich lief gdb python test.py und empfangene Nachricht folgende

(experiment3.5) ->gdb python signal_test.py 
GNU gdb (GDB) 8.0.1 
Copyright (C) 2017 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-darwin16.7.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"... 
Reading symbols from python... 
warning: `/Users/travis/miniconda3/conda-bld/python_1494603145199/work/Python-3.5.3/Programs/python.o': can't open to read symbols: No such file or directory. 
(no debugging symbols found)...done. 
Python Exception <type 'exceptions.ImportError'> No module named libpython: 
"/Users/Natsume/Documents/shendusuipian/pytorch/raw_pytorch/60min_intro/signal_test.py" is not a core dump: File format not recognized 
  1. dann habe ich libpython.py herunterladen aber ich weiß nicht, was ich damit machen soll.
  2. Ich habe keine solche Ordner /Users/travis/miniconda3/conda-bld/python_1494603145199/work/Python-3.5.3/Programs/python.o' wie oben
  3. in der Warnmeldung angegeben

aktualisieren ich versucht habe the steps here zu folgen, habe ich direkt die heruntergeladene gdb8.01.tar.gz durch brew install gdb, aber ich habe unten Fehlermeldung .

Focus on one: /Users/Natsume/Desktop/src/gdb/8.0.1 
->./configure --prefix=$HOME/opt/usr/local 
-bash: ./configure: No such file or directory 
Focus on one: /Users/Natsume/Desktop/src/gdb/8.0.1 
->ls 
COPYING   README   share 
ChangeLog  bin 
INSTALL_RECEIPT.json include 
Focus on one: /Users/Natsume/Desktop/src/gdb/8.0.1 
-> 

Update lief ich den Code aus dem obigen Link und installiert, konfiguriert gdb8.0 aber ich habe nicht einen Ordner als $HOME/opt/usr/local, aber nur /opt/usr/local. Daher, obwohl ./configure --prefix=$HOME/opt/usr/local durchlaufen, aber ich kann immer noch nicht laufen codesign -f -s "gdb-cert" <gnat_install_prefix>/bin/gdb, da es keine $HOME/opt/usr/local gibt.

Update

genau forllowing den obigen Link, ich gdb 8.0 installieren kann, aber ich kann gfortran,

(experiment3.5) ->gfortran 
-bash: gfortran: command not found 

noch kann ich laufen gdb python test.py mit Erfolg nicht laufen:

(experiment3.5) ->gdb --args python signal_test.py 
GNU gdb (GDB) 8.0 
Copyright (C) 2017 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-darwin16.7.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"... 
Reading symbols from python... 
warning: `/Users/travis/miniconda3/conda-bld/python_1494603145199/work/Python-3.5.3/Programs/python.o': can't open to read symbols: No such file or directory. 
(no debugging symbols found)...done. 
Python Exception <type 'exceptions.ImportError'> No module named libpython: 

Aktualisieren durch this link zu bauen ~/.gdbinit kann den Fehler loswerden No module named libpython ist gelöst; jedoch ist die Warnung oder das größere Problem noch vorhanden

warning: /Users/travis/miniconda3/conda-bld/python_1494603145199/work/Python-3.5.3/Programs/python.o': can't open to read symbols: No such file or directory. (no debugging symbols found)...done.

Antwort

1

Ich habe einige Zeit auf diesem einen verbracht. Sie müssen es aus Quellen kompilieren.

Werfen Sie einen Blick hier:

Running GDB in macOS sierra

Es funktionierte für mich;)

Nur eine Notiz, stellen Sie sicher, es zu codieren anmelden! Hinweise finden Sie hier: Codesigning the Debugger

Update:

für Python Sachen, hier einen Blick

http://unconj.ca/blog/setting-up-gdb-for-debugging-python-on-os-x.html

wie für GDB selbst

es sho ULD genug sein, um es

// simple.c 
#include <stdio.h> 

int main() { 
    printf("Hello\n"); 
    return 0; 
} 

folgende Art und Weise zu testen und dann

# assuming that gdb is signed 
cc -g -o simple simple.c 
gdb ./simple 

Update - Systemintegrität Schutz

Wenn es um einige Bereiche kommt (z/usr/bin) Sie haben keinen Zugriff darauf, da der Systemintegritätsschutz aktiviert ist. Sie müssen es deaktivieren:

# You need to boot to Recovery OS in a first place (before you call csrutil) 
> csrutil disable 

# you can also use another location as output 
> lipo /usr/bin/python -thin x86_64 -output ~/python64 

Werfen Sie einen Blick hier, wenn es um Details von System Integrity Protection kommt.

+0

Vielen Dank für diese schnelle Antwort, und ich werde es jetzt versuchen – Daniel

+0

Ich versuchte, aber Fehlermeldung erhalten './configure: keine solche Datei oder dir ', wo habe ich falsch gemacht? Ich habe die Details in meiner Frage oben – Daniel

+0

aktualisiert kann es funktionieren, ich verwende Ihren genauen Code jetzt – Daniel