[gelöst] Debugger Überprüfung im Teil vom Code ausstellen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

[gelöst] Debugger Überprüfung im Teil vom Code ausstellen

Beitrag von Michl »

Hallo allerseits,

ich habe da mal eine Frage zum Debugger. Kann ich diesen in einem Teil von meinem Code ausstellen?

Es gibt ja die Compilerschalter {$WARN ... OFF}. Gibt es auch soetwas für den Debugger?

Speziell geht es mir darum, dass ich mein Programm mit den Überprüfungen "Bereich" (-Cr) und "Methodenaufrufe prüfen" (-CR) kompilieren will. In einem Teil vom Code nutze ich spezielle Operatoren, wie +, -, Shr, Shl etc., die dann einen RangeCheckError auslösen. In genau diesem Teil möchte ich diese Debuggerüberprüfung aussetzen.

z.B.:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c: Byte;
begin
  a := 128;
  b := 128;
  c := a + b;  //hier möchte ich gern "0" statt dem RangeCheckError haben
end; 
Zuletzt geändert von Michl am Mi 9. Sep 2015, 12:01, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Debugger Überprüfung im Teil vom Code ausstellen

Beitrag von Socke »

Code: Alles auswählen

{$PUSH} // Compiler-Einstellungen speichern
{$RANGECHECKS OFF}
procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c: Byte;
begin
  a := 128;
  b := 128;
  c := a + b;
end;
{$POP} // gespeicherte Einstellungen wiederherstellen 
Das ganze funktioniert sogar einwandfrei, wenn du später die Rangechecks in den Projektoptionen ganz ganz ausschaltest.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Debugger Überprüfung im Teil vom Code ausstellen

Beitrag von Michl »

Danke, funktioniert TipTop!!!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten