Wie kann man sich den Objekt-code angucken ?
-
- 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 ?
In Delphi haben wir View -> Debug Windows -> view CPU.
Geht so etwas in Lazarus nicht ?
Gruß,
-Michael
Geht so etwas in Lazarus nicht ?
Gruß,
-Michael
Re: Wie kann man sich den Objekt-code angucken ?
Nein. könntest du aber einbauen. GDB gibt die Informationen her, soviel ich weiss.mschnell hat geschrieben:In Delphi haben wir View -> Debug Windows -> view CPU.
Geht so etwas in Lazarus nicht ?
Das wäre mal ein sinnvolles Projekli.
-
- 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:
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/
-
- 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
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
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
-
- 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
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
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
-
- 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
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...).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 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
-
- 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
[font=Comic Sans MS]Unsinn ![/font]pluto hat geschrieben:.... aber das währe glaube ich nicht Fair.
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
-
- 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:
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 ?Ich finde das kann man sehr gut brauchen, wenn man zum Beispiel etwas optimieren will
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.
Wollen bestimmt 95% aller Lazarus Nutzer.Und ich will auch irgendwann 'mal FP für eine neue CPU anpassen. Da kann es schon sehr hilfreich sein
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.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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- 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
Christian hat geschrieben: Wollen bestimmt 95% aller Lazarus Nutzer.








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

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