PB-IDE-Tool: Display ASM/C Code (Win,Lin,Mac)
PB-IDE-Tool: Display ASM/C Code (Win,Lin,Mac)
Dieses PB-IDE-Tool zeigt den ASM-Code vom PB-Compiler an (PB-Code wird nicht ausgeführt).
Der PB-Code kann dabei gespeichert oder nicht gespeichert sein.
PureBasic-CodeArchiv-Rebirth/PB-IDE-Tools/DisplayASMCode.pb
Echt übel, wie unterschiedlich die Ausgabe der ASM-Datei ist.
Ich habe deswegen mal ein Thread im englischem Forum aufgemacht: Better output of the ASM file (it is too complicated)
Der PB-Code kann dabei gespeichert oder nicht gespeichert sein.
PureBasic-CodeArchiv-Rebirth/PB-IDE-Tools/DisplayASMCode.pb
Echt übel, wie unterschiedlich die Ausgabe der ASM-Datei ist.
Ich habe deswegen mal ein Thread im englischem Forum aufgemacht: Better output of the ASM file (it is too complicated)
Zuletzt geändert von Sicro am 24.12.2022 15:07, insgesamt 6-mal geändert.
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: PB-IDE-Tool: Display ASM Code
Scheint unter Windows 7 x64 zu laufen.
Allerdings funktioniert es nicht mit Projekten, es wird immer nur die Einzeldatei kompiliert.
Ein Window-Resize wäre gut, wobei ich es ehr beforzugen würde, wenn die asm-Datei einfach mit dem Standard-Editor geöffnet wird.
Allerdings funktioniert es nicht mit Projekten, es wird immer nur die Einzeldatei kompiliert.
Ein Window-Resize wäre gut, wobei ich es ehr beforzugen würde, wenn die asm-Datei einfach mit dem Standard-Editor geöffnet wird.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: PB-IDE-Tool: Display ASM Code
Bei Projekten ist %TEMPFILE nicht gesetzt, sondern nur %COMPILEFILE. Und %FILE ist immer mainfile des targets (und auch der Inhalt von %COMPILEFILE), egal welche Include gerade im Editor aktiv ist.
Re: PB-IDE-Tool: Display ASM Code
Den Haupt-Code des Projekts hat man eigentlich immer offen - und inkludierte Code-Dateien werden berücksichtigt.STARGÅTE hat geschrieben:Allerdings funktioniert es nicht mit Projekten, es wird immer nur die Einzeldatei kompiliert.
Projekt-Dateien kann ich nicht direkt unterstützen, weil es keine Tool-Konstanten gibt, die den Pfad zur Projekt-Datei liefert, ohne den Code in der IDE kompilieren zu müssen.
Ich habe den Code wie folgt erweitert:STARGÅTE hat geschrieben:Ein Window-Resize wäre gut, wobei ich es ehr beforzugen würde, wenn die asm-Datei einfach mit dem Standard-Editor geöffnet wird.
- Fenstergröße anpassbar
- Ausgabe in die Zwischenablage kopieren
- Ausgabe mit dem Standard-Editor öffnen
Ja, und diese Konstanten sind nur gesetzt, wenn der Code in der IDE kompiliert wird.#NULL hat geschrieben:Bei Projekten ist %TEMPFILE nicht gesetzt, sondern nur %COMPILEFILE. Und %FILE ist immer mainfile des targets (und auch der Inhalt von %COMPILEFILE), egal welche Include gerade im Editor aktiv ist.
Kann bitte noch ein Mac-Nutzer testen?
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: PB-IDE-Tool: Display ASM Code
Mein Tool sieht so aus:
Das ist ein kleines Bash-Skript, gespeichert und ausführbar gemacht unter ~/bin/purebasic_asm.sh
Kommandozeile: /home/nicolas/bin/purebasic_asm.sh
Argumente: /home/nicolas/programme/purebasic/compilers/pbcompiler %TEMPFILE
Werkzeugeinstellungen: Keine einzige aktiviert
Dann noch einen Namen geben und fertig. Nutzt man das Tool, öffnet sich automatisch gedit mit dem ASM-Output. Geht wahrscheinlich auch ähnlich einfach mit einer Batch-Datei unter Windows und Notepad++ oder ähnlichem.
Code: Alles auswählen
#!/bin/bash
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: $0 <pbcompiler> <pb-file>"
exit 1
fi
cd ~/tmp
rm purebasic.asm
$1 -c "$2"
gedit purebasic.asm
Kommandozeile: /home/nicolas/bin/purebasic_asm.sh
Argumente: /home/nicolas/programme/purebasic/compilers/pbcompiler %TEMPFILE
Werkzeugeinstellungen: Keine einzige aktiviert
Dann noch einen Namen geben und fertig. Nutzt man das Tool, öffnet sich automatisch gedit mit dem ASM-Output. Geht wahrscheinlich auch ähnlich einfach mit einer Batch-Datei unter Windows und Notepad++ oder ähnlichem.
Re: PB-IDE-Tool: Display ASM Code
@NicTheQuick:
Ja, es gibt viele Möglichkeiten. Ein Bash-Script hat den Nachteil, dass es vermutlich nur unter Linux funktioniert - oder bei MacOS auch?
Für Windows muss der Code dann nochmal in der für Windows entsprechenden Script-Sprache geschrieben werden.
Zudem wird die ASM-Datei bei mir nicht im Temp-Verzeichnis (/tmp/) erstellt, sondern in unterschiedlichen Verzeichnissen (siehe mein Code oben).
Liegt es vielleicht daran, dass ich Purebasic in der Umgebungsvariable "PATH" habe?
Ja, es gibt viele Möglichkeiten. Ein Bash-Script hat den Nachteil, dass es vermutlich nur unter Linux funktioniert - oder bei MacOS auch?
Für Windows muss der Code dann nochmal in der für Windows entsprechenden Script-Sprache geschrieben werden.
Zudem wird die ASM-Datei bei mir nicht im Temp-Verzeichnis (/tmp/) erstellt, sondern in unterschiedlichen Verzeichnissen (siehe mein Code oben).
Liegt es vielleicht daran, dass ich Purebasic in der Umgebungsvariable "PATH" habe?
Code: Alles auswählen
export PUREBASIC_HOME=~/purebasic
export PATH=$PUREBASIC_HOME/compilers:$PATH
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)
Kann bitte jemand das Tool noch unter MacOS testen?
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)
Hallo Sicro,
ich habe es gerade unter OSX 13.6 (High Siera) getestet und es scheint zu funktionieren.
unter OSX sieht sehen müssen dann die Arguments so aussehen:
und das Kommando:
ich habe es gerade unter OSX 13.6 (High Siera) getestet und es scheint zu funktionieren.
unter OSX sieht sehen müssen dann die Arguments so aussehen:
Code: Alles auswählen
/deinPfad/showAssabler.app --args "%HOME" "%FILE" "%TEMPFILE"
und das Kommando:
Code: Alles auswählen
open
OSX 10.13 | PB 5.46
Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)
Noch ein kleiner Schönheitsfehler. Du solltest für das resize des Fensters ein BindEvent() verwenden.
Code: Alles auswählen
Procedure redrawWindow()
ResizeGadget(#Editor_Output, #PB_Ignore, #PB_Ignore, WindowWidth(#Window_Main), WindowHeight(#Window_Main) - 40)
ResizeGadget(#Button_OpenStandardEditor, 5, GadgetHeight(#Editor_Output) + 5, WindowWidth(#Window_Main) / 2 - 8, #PB_Ignore)
ResizeGadget(#Button_CopyToClipboard, GadgetWidth(#Button_OpenStandardEditor) + 10, GadgetHeight(#Editor_Output) + 5,
WindowWidth(#Window_Main) / 2 - 8, #PB_Ignore)
EndProcedure
;....
BindEvent(#PB_Event_SizeWindow, @redrawWindow(), #Window_Main)
OSX 10.13 | PB 5.46
Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)
Hallo Wolfram,
vielen Dank fürs Testen!
Was passiert, wenn in Commandline nur der Dateipfad zum Tool und die Parameter in Arguments angegeben werden? Wird das Tool dann nicht aufgerufen?
vielen Dank fürs Testen!
Ähm… Wenn "open" wirklich erforderlich ist, um ein Tool zu starten, dann frage ich mich, warum das PB nicht selber korrekt handhabt.Wolfram hat geschrieben:unter OSX sieht sehen müssen dann die Arguments so aussehen:und das Kommando:Code: Alles auswählen
/deinPfad/showAssabler.app --args "%HOME" "%FILE" "%TEMPFILE"
Code: Alles auswählen
open
Was passiert, wenn in Commandline nur der Dateipfad zum Tool und die Parameter in Arguments angegeben werden? Wird das Tool dann nicht aufgerufen?
Code: Alles auswählen
Commandline: /deinPfad/showAssabler.app
Arguments: "%HOME" "%FILE" "%TEMPFILE"
Nur damit der Code sauberer aussieht oder gibt es noch andere Gründe dafür?Wolfram hat geschrieben:Noch ein kleiner Schönheitsfehler. Du solltest für das resize des Fensters ein BindEvent() verwenden.
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version