Seite 1 von 3

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

Verfasst: 04.08.2018 11:10
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)

Re: PB-IDE-Tool: Display ASM Code

Verfasst: 04.08.2018 13:22
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.

Re: PB-IDE-Tool: Display ASM Code

Verfasst: 04.08.2018 15:49
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.

Re: PB-IDE-Tool: Display ASM Code

Verfasst: 10.08.2018 14:27
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?

Re: PB-IDE-Tool: Display ASM Code

Verfasst: 10.08.2018 14:58
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. <)

Re: PB-IDE-Tool: Display ASM Code

Verfasst: 10.08.2018 18:12
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

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

Verfasst: 22.09.2018 11:56
von Sicro
Kann bitte jemand das Tool noch unter MacOS testen?

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

Verfasst: 17.07.2019 18:13
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:

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

Verfasst: 17.07.2019 18:30
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)

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

Verfasst: 18.07.2019 18:09
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?