Seite 1 von 1

Spielereien mit dem Debugger

Verfasst: 26.04.2010 12:57
von ts-soft
Die Debuggerlib enthält ein paar Funktionen, die manchmal recht nützlich sein könnten.

Der hier vorgestellte Import, sowie die Macros haben keinen Einfluss auf die Exe!
Wenn der Debugger aus ist, wird auch nichts hinzugefügt.

Code: Alles auswählen

 CompilerIf #PB_Compiler_Debugger
  Import ""
    PB_DEBUGGER_SendError(Message.p-ascii)
    PB_DEBUGGER_SendWarning(Message.p-ascii)
    PB_DEBUGGER_CheckLabel(*Label)
  EndImport
CompilerEndIf

Macro DebugError(error)
  CompilerIf #PB_Compiler_Debugger
    PB_DEBUGGER_SendError(error)
  CompilerEndIf
EndMacro

Macro DebugWarning(error)
  CompilerIf #PB_Compiler_Debugger
    PB_DEBUGGER_SendWarning(error)
  CompilerEndIf
EndMacro

Macro DebugCheckLabel(error)
  CompilerIf #PB_Compiler_Debugger
    PB_DEBUGGER_CheckLabel(error)
  CompilerEndIf
EndMacro

; Beispiel
Define temp

CompilerIf Defined(temp, #PB_Variable) = 0
  ; kein Fehler, da temp bekannt
  DebugError("Hallo mein Freund, die Variable 'temp' exitiert nicht!")
CompilerEndIf

Procedure test()
  ; in der Procedure ist temp nicht bekannt, also Fehler!
  CompilerIf Defined(temp, #PB_Variable) = 0
    DebugError("Hallo mein Freund, die Variable 'temp' exitiert nicht!")
  CompilerEndIf
EndProcedure

test()
Gruß

Thomas

// edit
Beispiel erweitert!

// edit 2
angepaßt für Linux

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 14:15
von CSHW89
hey cool :allright: , die kannte ich noch gar nicht.
aber mal ne frage dazu. ist es eigentlich i-wie möglich die fehler, die in einer userlib entstehen, auch so darzustellen. also in der userlib ist ein fehler, dann wird die 'DebugError' funktion aufgerufen, und wenn der benutzer der userlib den debugger an hat, soll der fehler ausgegeben werden, und wenn nicht dann nicht.
lg kevin

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 14:22
von STARGÅTE
Tachchen,

nett (kenn ich schon) aber wo du es hier noch mal schreibst, eine Frage:

Kann man die eigentliche Fehlermarkierung auch eine "Aufrufsebene" höher darstellen?

Beispiel:

Code: Alles auswählen

#MaxElementNumber = $FFFF

Procedure NewElement(Element)
  If Element >= 0 And Element <= $FFFF
    ; [...]
  Else
    DebugError("Elementnummer ist außerhalb des Bereiches: 0 - "+Str(#MaxElementNumber))
  EndIf
EndProcedure

NewElement(-6)
Nun ist ja die Fehlermarkierung beim DebugError ein bisschen sinnfrei.
Es wäre hier besser die Markierung beim Aufruf der übergeordneten Funktion darzustellen:
Also bei NewElement(-6)

Geht das ?

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 14:24
von ts-soft
CSHW89 hat geschrieben:hey cool :allright: , die kannte ich noch gar nicht.
aber mal ne frage dazu. ist es eigentlich i-wie möglich die fehler, die in einer userlib entstehen, auch so darzustellen. also in der userlib ist ein fehler, dann wird die 'DebugError' funktion aufgerufen, und wenn der benutzer der userlib den debugger an hat, soll der fehler ausgegeben werden, und wenn nicht dann nicht.
lg kevin

Code: Alles auswählen

RunProgram(#PB_Compiler_Home + "tailbite\Helper Libraries\TB_Debugger.pb")
:wink:

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 14:38
von ts-soft
@STARGÅTE

Geht bestimmt, habe aber in der Richtung nur die Funktion: PB_DEBUGGER_SetLine() gefunden,
die keinen Parameter erwartet, ich weiß also nicht wie das funktioniert :(

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 15:27
von RSBasic
@ts-soft
Cool, geile Idee und Umsetzung :allright:
Sowas hab ich noch nie ausprobiert, gut zu wissen, danke :allright:

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 18:53
von Little John
Interessant.
Funktioniert aber hier leider nicht mit PB 4.41 unter Ubuntu 9.10.
Fehlermeldung hat geschrieben:PureBasic - Linker error
--------------------------------
gcc: Debugger.lib: No such file or directory
Gruß, Little John

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 18:59
von ts-soft
Little John hat geschrieben:Interessant.
Funktioniert aber hier leider nicht mit PB 4.41 unter Ubuntu 9.10.
fixed

Re: Spielereien mit dem Debugger

Verfasst: 26.04.2010 19:31
von Little John
Danke!