PB-IDE-Tool: Display ASM/C Code (Win,Lin,Mac)

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

PB-IDE-Tool: Display ASM/C Code (Win,Lin,Mac)

Beitrag von Sicro »

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)
Zuletzt geändert von Sicro am 24.12.2022 15:07, insgesamt 6-mal geändert.
Bild
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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: PB-IDE-Tool: Display ASM Code

Beitrag von STARGÅTE »

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.
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
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: PB-IDE-Tool: Display ASM Code

Beitrag von #NULL »

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.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PB-IDE-Tool: Display ASM Code

Beitrag von Sicro »

STARGÅTE hat geschrieben:Allerdings funktioniert es nicht mit Projekten, es wird immer nur die Einzeldatei kompiliert.
Den Haupt-Code des Projekts hat man eigentlich immer offen - und inkludierte Code-Dateien werden berücksichtigt.

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.
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.
Ich habe den Code wie folgt erweitert:
  • Fenstergröße anpassbar
  • Ausgabe in die Zwischenablage kopieren
  • Ausgabe mit dem Standard-Editor öffnen
#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.
Ja, und diese Konstanten sind nur gesetzt, wenn der Code in der IDE kompiliert wird.


Kann bitte noch ein Mac-Nutzer testen?
Bild
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
Benutzeravatar
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

Beitrag von NicTheQuick »

Mein Tool sieht so aus:

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
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. <)
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PB-IDE-Tool: Display ASM Code

Beitrag von Sicro »

@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?

Code: Alles auswählen

export PUREBASIC_HOME=~/purebasic
export PATH=$PUREBASIC_HOME/compilers:$PATH
Bild
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
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)

Beitrag von Sicro »

Kann bitte jemand das Tool noch unter MacOS testen?
Bild
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
Wolfram
Beiträge: 28
Registriert: 23.08.2013 14:38
Computerausstattung: OSX 10.13 | PB 5.46

Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)

Beitrag von Wolfram »

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:

Code: Alles auswählen

/deinPfad/showAssabler.app --args "%HOME" "%FILE" "%TEMPFILE"

und das Kommando:
OSX 10.13 | PB 5.46
Wolfram
Beiträge: 28
Registriert: 23.08.2013 14:38
Computerausstattung: OSX 10.13 | PB 5.46

Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)

Beitrag von Wolfram »

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
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PB-IDE-Tool: Display ASM Code (Win,Lin,Mac)

Beitrag von Sicro »

Hallo Wolfram,

vielen Dank fürs Testen! :)
Wolfram hat geschrieben: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:
Ähm… :? Wenn "open" wirklich erforderlich ist, um ein Tool zu starten, dann frage ich mich, warum das PB nicht selber korrekt handhabt.
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"
Wolfram hat geschrieben:Noch ein kleiner Schönheitsfehler. Du solltest für das resize des Fensters ein BindEvent() verwenden.
Nur damit der Code sauberer aussieht oder gibt es noch andere Gründe dafür?
Bild
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
Antworten