Qt 5.x eingebettetes Debugging - disperses Binärformat bereitstellen?

8

Ich glaube (korrigiere mich, wenn ich falsch liege), dass beim Remote-Debuggen mit gdb und gdbserver die auf dem Ziel unter gdbserver laufende Binärdatei nicht die Debug-Informationen in der Binärdatei benötigt Host, der gdb ausführt, tut dies.

Unsere binäre Anwendung mit Debugsymbolen ist etwa 112 MB (!). Wenn ich strip starte, ist die Binärzahl nur 6,7 MB groß, was viel schneller zu unserem Ziel führen würde.

Ist es möglich, dass Qt Creator die Binärdatei entkoppelt, bevor sie bereitgestellt wird? Können wir noch debuggen?

    
Steve 17.02.2016, 21:52
quelle

2 Antworten

0

Um Symbole zu entfernen, kann Qt Creator einen abschließenden Build-Schritt nach qmake und make ausführen, der den 'strip' -Befehl für die Binärdatei in Ihrem App-Bundle aufruft. Zum Beispiel: -

%Vor%

Um zu debuggen, benötigen Sie ein separates .dsym Datei , die während des Builds generiert werden soll und die Symbole enthält. Wenn sich diese auf dem Host befindet, sollte der Debugger dies automatisch übernehmen; tut es mit lldb, obwohl mit gdb, müssen Sie möglicherweise manuell laden Sie die Symboldatei.

  

Wie kann ich diesen zusätzlichen Build-Schritt aktivieren?

Wählen Sie Projekte in der rechten Symbolleiste aus

Stellen Sie sicher, dass Sie sich auf der Registerkarte Erstellen und Ausführen befinden (GraphicsScene ist nur der Name des Projekts)

Unter Build Steps sehen Sie zwei Schritte, qMake und Make . Wählen Sie Build-Schritt hinzufügen für einen benutzerdefinierten Prozessschritt

aus

Füllen Sie die relevanten Felder aus, die Sie möglicherweise für die Pfade korrigieren müssen, anstatt nur diese zu kopieren:

Wenn der Build abgeschlossen ist, wird der Befehl strip ausgeführt. Wenn Sie Fehler haben, liegt wahrscheinlich ein Problem mit dem Pfad zum Befehl strip oder dem Pfad zur ausführbaren Datei Ihres App-Bundles vor.

Wenn Sie den vollständigen Pfad zum Entfernen benötigen, befindet er sich in / usr / bin / strip.

Was die Symboldatei betrifft, so glaube ich, dass Sie den Befehl addsymbolfile mit dem Argument für den Pfad zur dsym-Datei verwenden können. Allerdings ist gdb inzwischen veraltet und Sie sollten jetzt wirklich lldb verwenden, das die dsym-Datei automatisch findet, sobald sie von Spotlight indiziert wurde.

    
TheDarkKnight 22.02.2016, 17:27
quelle
0

Sie können die Debug-Symbole wie folgt entfernen:

Fügen Sie Ihrer make-Datei eine Zeile hinzu, damit werden alle Debug-Symbole entfernt:

cd $ (MY_BINARY_INSTALL_PATH); strip --strip-debug $ (MY_BINARY_INSTALL_PATH) / bin / meinbinary -o $ (MY_BINARY_INSTALL_PATH) / bin / mybinary

Wenn Sie alle Symbole daraus entfernen möchten, könnten Sie etwas wie:

verwenden

cd $ (MY_BINARY_INSTALL_PATH); strip --strip-all $ (MY_BINARY_INSTALL_PATH) / bin / meinbinary -o $ (MY_BINARY_INSTALL_PATH) / bin / mybinary

Durch das Entfernen aller Symbole wird die Größe der Binärdatei erheblich reduziert

    
Samer Tufail 29.02.2016 09:21
quelle

Tags und Links