Aktuelle Zeit: 17.11.2019 02:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 04.07.2019 09:19 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
Ich verwende gerne Disabledebugger/Enabledebugger innerhalb von Macros, damit das Debuggen flüssiger geht:
Code:
Macro MyMacro
  DisableDebugger
  a=1
  b=2
  EnableDebugger
  c=3
EndMacro

CallDebugger

MyMacro
Debug b


Andererseits setze ich auch ganze Includefiles innerhalb von DisableDebugger/EnableDebugger, weil da nur Prozeduren enthalten sind, die so ausgelutscht sind, dass ich da nicht durchdebuggen will.

Wenn ich allerdings innerhalb dieser Prozeduren einen meiner Macros wie oben verwende, zerstört mir das EnableDebugger aus dem Macro mein System. Hat jemand eine Idee, ob ich irgendwie abfragen kann, ob DisableDebugger momentan aktiviert ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 04.07.2019 09:46 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
Ich habe das auch schonmal im englischen Forum gefragt, leider ohne Erfolg. Ich glaube das ist momentan einfach nicht möglich.

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 04.07.2019 09:54 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Irgendwo im Forum habe ich mal einen Asm-Code gesehen, mit dem man ermitteln kann, ob der Code mit oder ohne Debugger ausgeführt wird, weil der Asm-Code etwas anders ist, wenn man mit dem Debugger startet.
Vielleicht kann man auf diese Weise ermitteln, ob DisableDebugger oder EnableDebugger zuletzt benutzt wurde?

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 04.07.2019 10:09 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Ich habe eine Idee, wie man abfragen könnte, ob zuletzt DisableDebugger oder EnableDebugger benutzt wurde.
Da "Debug" innerhalb DisableDebugger nicht ausgeführt wird, könnte man eine globale Variable erstellen, die von einer Prozedur auf 1 gesetzt wird:
Code:
Global IsDebugger

Procedure IsDebugger()
  IsDebugger = 1
EndProcedure

DisableDebugger;Wenn du DisableDebugger entfernt, dann wird die Prozedur aufgerufen und die globale Variable auf 1 gesetzt.
Debug IsDebugger()
EnableDebugger

Debug IsDebugger

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 04.07.2019 10:18 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
:mrgreen: Genial.
Aber leider nützt das vermutlich nichts, man müsste es zur Compilezeit abfragen können.
Code:
If 0
  DisableDebugger
EndIf

Debug "d"
Ein runtime test wie etwa If 0 um den Debugger zu steuern funktioniert nicht. Der Debugger wird in jedem Fall danach disabled sein.

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 04.07.2019 20:59 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
@RSBasic: Gute Idee! Hier eine Macro-Version:
Code:
Macro GetDebuggerState(_state_)
  PokeI(@_state_, #False)
  Debug PokeI(@_state_, #True)
EndMacro

Define state

EnableDebugger
GetDebuggerState(state)
MessageRequester("EnableDebugger", Str(state))

DisableDebugger
GetDebuggerState(state)
MessageRequester("DisableDebugger", Str(state))

EnableDebugger
GetDebuggerState(state)
MessageRequester("EnableDebugger", Str(state))


Die "leeren" Debugs könnten bei vielen Statusprüfungen aber schnell stören…

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 05.07.2019 11:39 
Offline
Benutzeravatar

Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten
Hallo Team Fred,

ich hätte da eine Kleinigkeit für die Wunschliste, eine Compiler-Variable:
Code:
CompilerIf #PB_Compiler_IsDebuggerEnable


Vielen Dank - schon mal.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 05.07.2019 11:45 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
@juergenkulow
Deine CompilerIf-Abfrage bezieht sich ja auf EnableDebugger und DisableDebugger oder?
Am besten erstellst du einen Thread im englischen Forum oder du schreibst "+1" in diesem Thread.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 05.07.2019 12:02 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Eine globale Variable funktioniert natürlich nicht zur Compilezeit. Außerdem werden die ersten Probleme auftreten, sobald man Threads benutzt.

Wie wäre es mit etwas Macro-Magie?
Code:
Macro __MacroColon__
   :
EndMacro

Macro __JoinMacroParts__(P1, P2=, P3=, P4=, P5=, P6=, P7=, P8=)
   P1#P2#P3#P4#P5#P6#P7#P8
EndMacro

Macro __CreateMacro__(name,name2,macroBody)
   __JoinMacroParts__(Macro name, name2, __MacroColon__, macroBody, __MacroColon__, EndMacro)
EndMacro


Macro DebuggerEnabled
   0
EndMacro

Macro DebuggerOn
   EnableDebugger
   UndefineMacro __JoinMacroParts__(Debugger, Enabled)
   __CreateMacro__(Debugger, Enabled, 1)
EndMacro

Macro DebuggerOff
   UndefineMacro __JoinMacroParts__(Debugger, Enabled)
   __CreateMacro__(Debugger, Enabled, 0)
   DisableDebugger
EndMacro

DebuggerOn
Debug DebuggerEnabled
DebuggerOff
Debug DebuggerEnabled

Ich ändere hier jedes mal den Inhalt des Macros "DebuggerEnabled", je nachdem, ob man ihn aus- oder angeschaltet hat. Das Macro kann man dann wie eine Variable verwenden. Ob das alles auch mit CompilerIf zusammenarbeitet, hab ich noch nicht getestet.

_________________
Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 19.04 LTS x64, PureBasic 5.71 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Abfrage ob EnableDebugger/DisableDebugger aktiviert
BeitragVerfasst: 05.07.2019 12:08 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
@jürgenkulow
Das reicht aber meiner Meinung nach alles nicht aus. Es geht darum nach einem enable/disable Block den vorherigen Zustand wiederherzustellen. Dazu müsste man ihn auch zur Compilezeit zwischenspeichern können. Man könnte dazu über ein CompilerIf Konstanten definieren, aber da es kein undefine gibt, schon gar nicht für Konstanten, bräuchte man bei jeder Abrage eine neue Konstante. Das ganze wird also nicht sonderlich gut funktionieren.

Module helfen ein wenig, da sie den Debugger state bereits kapseln.
Code:
Debug "a"
DisableDebugger
Debug "(b)


DeclareModule m
EndDeclareModule

Module m
  Debug "m 1"        ; enabled in module per default
  DisableDebugger
  Debug "(m 2)"
  EnableDebugger
  Debug "m 3"
EndModule

Debug "(c)"          ; still disabled from very first disable

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye