mikrocontroller.net

Forum: Compiler & IDEs object-file viewer


Autor: Neubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

kennt jemand ein tool mit welchem man obj-files (*.o) lesbar ansehen 
kann; dh gibt es eine möglichkeit alle funktionen, bzw. prototypen zu 
diesen funktionen aufzulisten?!

thx
Neubi

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An den Inhalt kommtst du mit einem Disassembler o.Ä. heran. Ansonsten 
bieten sich u.a. folgende Programme an:
- objdump
- nm
- ldd

Autor: GNU objdump (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GNU objdump

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Objektcode kennt aber keine Funktionsprototypen.  Woher auch?
Der kennt nur noch Symbolnamen.  Wenn du das benutzte ABI kennst,
kannst du dir die Prototypen ggf. aus dem Disassembler-Listing
erraten.

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch schrieb:
> Der Objektcode kennt aber keine Funktionsprototypen.  Woher auch?

Jain. In C++ sind zumindest die Funktionsargumenttypen im Symbolnamen
der Funktion enthalten. Das ist zwar noch nicht der komplette Prototyp,
weil der Rückgabewert fehlt, aber schon mal besser als gar nichts.

nm kann diese gemangelten Symbolnamen übrigens im Klartext darstellen
(Option -C oder --demangle).

Autor: Thomas K. (tomk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

readelf geht übrigens auch, was Symbole etc. betrifft.

Schönen Tag noch,
Thomas

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sofern beim Compilieren Debug-Infos eingeschaltet waren, kann man mit 
objdump auch den Quellcode wieder auslesen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf Magnus schrieb:
> Sofern beim Compilieren Debug-Infos eingeschaltet waren, kann man mit
> objdump auch den Quellcode wieder auslesen.

Jein.  Der Quellcode selbst steht nicht in der Objektdatei.  objdump
ist lediglich in der Lage, diesen an Hand der Debuginformationen
wieder zum Objektcode hinzu zu sortieren, was (je nach Optimierung)
mehr oder weniger gut funktioniert.  In jedem Falle setzt es aber
voraus, dass die Quellcodedateien, deren Namen in der Debug-
Information referenziert sind, auch noch zugreifbar sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.