Wie kann man sich den Objekt-code angucken ?

Für Fragen rund um die Ide und zum Debugger
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Wie kann man sich den Objekt-code angucken ?

Beitrag von mschnell »

In Delphi haben wir View -> Debug Windows -> view CPU.

Geht so etwas in Lazarus nicht ?

Gruß,
-Michael

Benutzeravatar
theo
Beiträge: 10921
Registriert: Mo 11. Sep 2006, 19:01

Re: Wie kann man sich den Objekt-code angucken ?

Beitrag von theo »

mschnell hat geschrieben:In Delphi haben wir View -> Debug Windows -> view CPU.
Geht so etwas in Lazarus nicht ?
Nein. könntest du aber einbauen. GDB gibt die Informationen her, soviel ich weiss.
Das wäre mal ein sinnvolles Projekli.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Meinst du mit Object Code den ASM Code der erzeugt wurde ?
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wurde neulich schon im Dev. IRC diskutiert, ich find das aber recht sinnfrei. Hab das CPU Window bzw Assembler Code noch nie genutzt und solang der fpc richtig funktioniert brauch das auch keiner. Ich programmier in ner Hochsprache damit ich mich eben nicht in Assembler herumschlagen muss.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Der ASM code als Text ist (falls er zwischenzeitlich tatsächlich erzeugt wurde) nach dem Linken gelöscht worden. Also kann die IDE nur den disassembelten Objektcode anzeigen. Sinnvoller Weise zeigt Delphi dabei auch die Pascal-Quelltext-Zeile an, die in diesen Code compiliert wurde.

Um darin debuggen zu können braucht man natürlich auch die aktuellen Inhalte aller Register. Zeigt Delphi auch an.

Klar kann GDB das alles zur Verfügung stellen. Es ist also durchaus möglich die Lazarus IDE entsprechend zu erweitern. Aber sicherlich ein Haufen Arbeit :).

-Michael

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Für mich reichen immer die Ausgabe von writeln an bestimmten Text Stellen...
MFG
Michael Springwald

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Schaut 'mal bei

http://sourceforge.net/project/screensh ... ssid=36778" onclick="window.open(this.href);return false;

MSGUI ist ein BPL/Open Source Projekt, das ähnlich wie Lazarus eine Delphi-ähnliche GUI für Free Pascal zur Verfügung stellt. Im Gegensatz zu Lazarus gibt es anscheinend auch ein Disassembler Fenster. Vielleicht kann man den Code von diesem Projekt verwenden ?!?!?!

-Michael

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich habe es noch nicht geschafft damit ein Projekt zu Komplieren...
MFG
Michael Springwald

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Das heißt nicht, dass man sich nicht von da etwas abgucken kann...

-Michael

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Das stimmt.... aber das währe glaube ich nicht Fair, ist zwar OpenSoruce( glaube ich) Aber Trozdem..... sowas möchtest du bei deinem Programm doch auch nicht oder ?
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

LoL, ich glaube nicht das dieses Projekt nichts vom Lazarus abgeschaut hat. Wenn man soetwas nich möchte macht man kein Open Source draus.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Christian hat geschrieben:Wurde neulich schon im Dev. IRC diskutiert, ich find das aber recht sinnfrei. Hab das CPU Window bzw Assembler Code noch nie genutzt und solang der fpc richtig funktioniert brauch das auch keiner. Ich programmier in ner Hochsprache damit ich mich eben nicht in Assembler herumschlagen muss.
Ich finde das kann man sehr gut brauchen, wenn man zum Beispiel etwas optimieren will, oder wenn was nicht funktioniert und man genau wissen will, warum. Gerade, wenn Compiler-Fehler bei einen noch nicht 100% getesteten Produkt wie Lazarus noch nicht völlig auszuschließen sind, kann das wichtig sein. Und ich will auch irgendwann 'mal FP für eine neue CPU anpassen. Da kann es schon sehr hilfreich sein (Aber cross- ("remote"-) debugging ist natürlich wieder eine andere Story...).

Ich habe übrigens gefunden dass man einfach mit -al als zusätzliche Compiler-Option eine Assembler-Datei schreiben kann. Damit kann man zwar nicht den Maschinencode debuggen, aber immerhin vernünftig angucken.

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

pluto hat geschrieben:.... aber das währe glaube ich nicht Fair.
[font=Comic Sans MS]Unsinn ![/font]

Das ist doch gerade der Sinn von "Open Source". Lies Dir die GPL 'mal durch. Es geht im Endeffekt darum, das der der Open Source Code für sich gewinnbringend verwendet, die Neuerungen und Verbesserungen "der Community zurückzugeben" soll. Die Community soll den so erworbenen Code dann sinnvoll einsetzen. Egal in welchem Projekt.

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich finde das kann man sehr gut brauchen, wenn man zum Beispiel etwas optimieren will
Gut, aber wann muss man schon mal etwas so tief optimieren das man dazu anfängt den Object Code auseinander zu nehmen auf nem Microcontroller ist das Alltag aber aufm PC macht das kein Mensch mehr. Viele Leute rennen rum und erzählen Java und .Net haben schon keinen Geschwindigkeits Unterschied mehr zu nativen Sprachen und da willst du so weit optimieren ?
Gerade, wenn Compiler-Fehler bei einen noch nicht 100% getesteten Produkt wie Lazarus noch nicht völlig auszuschließen sind, kann das wichtig sein.


Halt ich für ein gerückt, ich hatte noch nie ein problem damit das der fpc fehlerhaften Code erzeugt hat und auch im fpc Bugtracker liest man soetwas äusserst selten.
Und ich will auch irgendwann 'mal FP für eine neue CPU anpassen. Da kann es schon sehr hilfreich sein
Wollen bestimmt 95% aller Lazarus Nutzer.
Ich habe übrigens gefunden dass man einfach mit -al als zusätzliche Compiler-Option eine Assembler-Datei schreiben kann. Damit kann man zwar nicht den Maschinencode debuggen, aber immerhin vernünftig angucken.
Richtig, reicht für alle von dir beschriebenen Fälle meines erachtens nach aus. Versteh mich nicht falsch wenn das jemand implementieren möchte kann ers gern tun aber ich halte das für überflüssig.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Christian hat geschrieben: Wollen bestimmt 95% aller Lazarus Nutzer.
:shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:

Wohl kaum. Wer will schon mit Lazarus Software für andere Geräte als PCs (Windows/Linux/Max) entwickeln ? Höchstens für PDAs und die sind fast alle mit ARM CPUs ausgestattet, die ja von Lazarus auch "out of the Box" unterstützt werden.

Ich hab' da etwas anderes vor (Wer mitmachen will, soll sich melden :wink: )

-Michael
Zuletzt geändert von mschnell am Mi 19. Dez 2007, 14:15, insgesamt 1-mal geändert.

Antworten