Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » prüfen, ob objektdatei mit oder ohne debuginformationen sind

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.12.2017, 15:38 Uhr
prinz



Hi,
ich möchte mittels make je nach Zieleingabe entweder eine Bibliothek aus meinen C-Funktionen ohne Debug-Informationen erstellen oder eine Testverison mit Debug-Informationen.
Um nicht ganzen C-Code der Bibliothek von Grund auf neu zu compilieren, würde ich gerne prüfen, welche Objektdateien mit Debug-Informationen schon compiliert sind, um nur die ohne Debug-Informationen neu zu compilieren.
Wisst ihr, wie man dies prüfen kann?
Oder habt ihr ein Rezept, wie man z.B. abhängig von "#define DEBUG" macro eine Kompilierung mittels make mit oder ohne Debug-Informationen kompilieren kann?

Ich verwende: Linux 4.4.0; GNU make 4.1; gcc 5.4.0 als Compilier; geany als IDE

Dieser Post wurde am 16.12.2017 um 15:41 Uhr von prinz editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.12.2017, 00:18 Uhr
Hans
Library Walker
(Operator)


Hi,

die Debugversionen der Objektdateien eines Programm oder einer Bibliothek sind meistens länger als die Release-Versionen, da die Debuginformationen zusätzlichen Platz benötigen. Dann würde ich mal gucken, ob der GDB, also der GUN-Debugger nicht auch noch 'ne Möglichkeit anbietet, mit der man überprüfen kann, ob etwas mit oder ohne Debuginfos compiliert wurde.

Bei IDEs kann man in der Regel irgendwo einstellen, ob eine Debug- oder eine Releaseversion erstellt werden soll. Manche Compiler erstellen auch gleich beide.
Ansonsten würde ich die Dateien dennoch einfach noch mal neu compilieren, einmal mit und einmal ohne Debuginfos. Sofern die Quellcodes nicht mehrere tausend Zeilen umfassen, sollte das kein Problem darstellen, auch zeitlich nicht.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.12.2017, 11:54 Uhr
ao

(Operator)


Hilft dir das hier weiter?

https://stackoverflow.com/questions/1999654/how-can-i-tell-if-a-library-was-compiled-with-g
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.12.2017, 16:05 Uhr
prinz



Hi Hans und ao,

danke für die Antworten.

Die Größe der Objektdateien kann mit Debug-Informationen mehr als doppelt so groß sein wie ohne. Bei meinen jetzigen Programmen stellt die Kompillierzeit noch keine Rolle, deshalb kann ich alles vom neuen kompillieren.
Ich wollte es trotzdem wissen, wie das bei großen Projekten gehandhabt wird.

Der stackoverflow link hat mir Anregungen gegeben, wo ich suchen kann.
Werde mir mal die programme objdump, nm und vor allem readelf näher anschauen.
Vielleicht gibt es auch nützliche optionen beim GNU-Debugger.

prinz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.12.2017, 16:41 Uhr
ao

(Operator)



Zitat von prinz:
Ich wollte es trotzdem wissen, wie das bei großen Projekten gehandhabt wird.

Hm, also, einen Full-Rebuild müsste man ja nur genau zweimal machen, einmal mit Debug-Info, wenn man anfängt zu debuggen und einmal ohne, wenn man fertig ist. Dazwischen kompiliert man mit "make" immer nur die letzten Änderungen.
Wenn so ein Full-Rebuild unzumutbar lange dauern würde, dann würde ich nächtliche Builds von Debug und Release machen und hätte jeden Morgen beide Varianten frisch.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: