Wie bringe ich den Bash-Debugger dazu, mit ddd zu arbeiten?


9

ddd script.bsh öffnet das Skript nicht. Es zeigt unser Glas und wenn ich ddd schließen möchte, heißt es "Bash ist beschäftigt" ...

Ich habe eine alte Nachricht gefunden, aber es hat nicht geholfen. https://lists.gnu.org/archive/html/ddd/2008-10/msg00006.html

Ich konnte ddd-3.3.12-test6.tar.gz nicht finden, daher verwende ich die ddd-Version aus dem Ubuntu-Repository. Auch bashdb ist bereits installiert. Verwendet apt-get install ddd bashdb.

Kann jemand ddd für Bash on Precise verwenden?

Antworten:


7

Ich war in der Lage zu bekommen dddund bashdbschön auf Ubuntu 12.04 heute zu spielen:

  1. Entfernen Sie das mitgelieferte Repo ddd:

    sudo apt-get remove ddd
  2. Fetch dddv3.3.9 und installieren von der Quelle, zum Beispiel:

    sudo apt-get build-dep ddd
    sudo apt-get install libmotif-dev
    wget http://ftp.gnu.org/gnu/ddd/ddd-3.3.9.tar.gz
    tar xvf ddd-3.3.9.tar.gz
    cd ddd-3.3.9
    ./configure
    make
    sudo make install

    Hinweis: Ich musste einen einzelnen Patch für den Quellcode erstellen, damit der Build funktioniert ddd/strclass.C. Wir brauchten einen #include <stdio.h>; oben zu definieren EOF.

  3. Stellen Sie sicher, dass bashdbinstalliert ist:

    sudo apt-get install bashdb
  4. Starten Sie mit:

    ddd --debugger /usr/bin/bashdb -- {script name} {parameters}

Könnte nicht ohne ddd + Bash leben.

Optional: GPG-Überprüfung:

Suchen Sie nach einem Zeichen unter https://www.gnu.org/software/ddd/ , um zu https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=ddd weiterzuleiten

  1. Herunterladen ddd-keyring.gpg.

  2. Importieren Sie es in Ihre Schlüsselkette:

    gpg --import ddd-keyring.gpg
  3. Überprüfen Sie die Unterschrift:

    wget http://ftp.gnu.org/gnu/ddd/ddd-3.3.9.tar.gz.sig
    gpg --verify

1
Arbeitet auf Ubuntu 16.04
Erasmus Cedernaes

4

Um dddmit dem Bash-Debugger an Bash-Skripten arbeiten zu können, muss auch eine Installation durchgeführt bashdbwerden.

Wenn es nicht installiert ist, erhalten Sie:

Geben Sie hier die Bildbeschreibung ein

Danach dddscheint normal zu funktionieren:

Geben Sie hier die Bildbeschreibung ein


bashdb ist bereits installiert und funktioniert. Hast du ddd präzise zum Laufen gebracht?
James Mitch

@ JamesMitch, ja, ich bin auf Precise 12.04 (allerdings 64-Bit).
ish

1
Haben Sie tatsächlich getestet, um ein Bash-Skript zu durchlaufen? Ich habe die 64-Bit-DVD Precise 12.04 gestartet, ddd und bashdb installiert und konnte immer noch kein Bash-Skript öffnen, ohne die Sanduhr zu sehen.
James Mitch

1
Weitere Details hier: askubuntu.com/a/178692/73165
Stabledog

1
Befolgen Sie einfach Ihre Anweisungen am 12.04 / 64. Funktioniert fast. Nachdem bashdb das Skript geladen hat, klicke ich auf "step" und warte unendlich lange, bis bash fertig ist. Vorschläge?
Wes Miller

1

Dies ist eine in DDD 3.3.12 eingeführte Regression , siehe Fehler # 41649 .

Die letzte verwendbare Version ist 3.3.11.


1
Ihr Fehlerbericht ist von April 2014. Die Frage des OP ist von Juni 2012.
WinEunuuchs2Unix

Ich habe alle vier Versionen von 3.3.9 bis 3.3.12 überprüft. Es gibt definely eine Regression in 3.3.12 eingeführt (sie haben viele Änderungen in Bezug auf remake, bashdbund pydb). Und 3.3.12 wurde 2009 veröffentlicht, daher besteht eine gute Chance, dass das OP genau diese Version ausführt.
Bass

OK, aber dies ist das Jahr 2018. Eine Antwort wurde 2012 geschrieben und akzeptiert. Außerdem erhielt die Antwort 4 positive Stimmen. Das OP hat sich seit über fünf Jahren nicht mehr angemeldet und wird Ihre Antwort wahrscheinlich nicht kommentieren.
WinEunuuchs2Unix

@ WinEunuuchs2Unix Okay, vielleicht ist meine die Antwort auf eine etwas andere Frage, aber diese Seite erscheint in den Top 10 von Google für diejenigen, die die Antwort auf die Frage suchen, warum bashdbIntegration nicht funktioniert. Ich erwarte also keine Kommentare oder Gegenstimmen, sondern sammle nur das Wissen.
Bass
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.