mikrocontroller.net

Forum: Compiler & IDEs Strings in .data sichtbar machen per avr-nm


Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Angenommen ich verwende auf dem AVR printf("foo") statt 
printf_P(PSTR("foo")), dann wird der const char* ja im Flash ablegt, 
dann aber von der startup-Routine in die .data-Sektion kopiert (die im 
SRAM liegt). Wenn ich mir das mit avr-size ansehe, sehe ich da auch den 
entsprechenden Verbauch. Gibt es eine Möglichkeit, diesen (anonymen) 
.data-Symbolen Pseudo-Symbole zuweisen zu lassen, sodass ich die 
hinterher mit avr-nm sehe? Ich sehe nämlich so zwar per avr-size die 
Gesamtgröße, aber nicht die einzelnen Symbole und deren Verbauch. 
Interessant wäre z.B. ein konkatenierter String 
_autosymbol_UNIT_LINE_NNN (bei der UNIT die Übersetzungseinheit anzeigt 
und LINE die Zeilennummer, ggf NNN falls mehrere Symbole pro Zeile 
erzeugt wurden). Geht das?

Gruss --- Florian

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

Bewertung
0 lesenswert
nicht lesenswert
--debug-syms

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

irgendwie tut das nicht so wie ich mir das vorstelle - zwar zeigt avr-nm 
mehr Symbole an, wenn ich --debug-syms aktiviere, aber diese sind z.B. 
die Namen der Übersetzungseinheiten (alle mit "a 00000000"), sowie

.stab N 00000000
.stabstr N 00000000
.text t 00000000

Darüberhinaus noch .data und .bss (was tatsächlich nützlich ist), z.B.:

.bss b 00802332

Aber eine Aufschlüsselung, worauf sich die 0x332 = 818 Bytes der 
.data-Region aufteilen bekomme ich so auch nicht.

Gruß --- Florian

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

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich hatte das mit den durch PSTR generierten Symbolen verwechselt,
die bekommen einen Namen.  Die .data-Symbole haben keinerlei Debug-
Information, davon übernimmt der Assembler keinerlei symbolische
Information in die Objektdatei.  Es existieren lediglich zwischendurch
relocation records, aber die sind nach dem Linken natürlich weg.

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen gewissen Anhaltspunkt kann evtl. avr-strings liefern. Per Default 
durchsucht strings nur die data-Section, wenn ein Objekt-Dateiformat 
erkannt wird, deshalb werden dir andere Strings (z.B. in den Debuginfos 
oder im Flash) nicht mit angezeigt.

Das Non-Plus-Ultra ist das natürlich nicht, da man damit nur den Inhalt 
der Strings sieht, aber nicht, von woher im Code die stammen.

Andreas

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.