readme.txt

This commit is contained in:
pierre 2000-02-04 14:34:46 +00:00
parent 9572b14dea
commit 705b7cb752
5 changed files with 109 additions and 19 deletions

View File

@ -340,7 +340,7 @@ uses
Dos,Mouse,Video,
App,Commands,Strings,
Systems,
FPVars,FPUtils,FPConst,
FPVars,FPUtils,FPConst,FPSwitch,
FPIntf,FPCompile,FPIde,FPHelp,
Validate,WEditor,WUtils;
@ -1860,6 +1860,15 @@ procedure TWatch.Get_new_value;
p:=StrNew(Debugger^.GetOutput);
{ do not open a messagebox for such errors }
Debugger^.got_error:=false;
{ We should try here to find the expr in parent
procedure if there are
I will implement this as I added a
parent_ebp pseudo local var to local procedure
in stabs debug info PM }
{ But there are some pitfalls like
locals redefined in other sublocals that call the function }
q:=nil;
if assigned(p) and (p[0]='$') then
q:=StrPos(p,'=');
@ -2831,7 +2840,7 @@ end;
Debugger^.Command('backtrace');
{ generate list }
{ all is in tframeentry }
for i:=Debugger^.frame_count-1 downto 0 do
for i:=0 to Debugger^.frame_count-1 do
begin
with Debugger^.frames[i]^ do
begin
@ -2859,7 +2868,7 @@ end;
{ select frame for watches }
If not assigned(Debugger) then
exit;
{$ifdef NODEBUG}
{$ifndef NODEBUG}
Debugger^.Command('f '+IntToStr(Focused));
{ for local vars }
Debugger^.ReadWatches;
@ -2948,9 +2957,11 @@ procedure InitDebugger;
var s : string;
i,p : longint;
{$endif DEBUG}
var
cm : longint;
begin
{$ifdef DEBUG}
PushStatus('Starting debugger');
Assign(gdb_file,GDBOutFileName);
{$I-}
Rewrite(gdb_file);
@ -2973,7 +2984,24 @@ begin
Use_gdb_file:=true;
{$I+}
{$endif}
if (not ExistsFile(ExeFile)) or (CompilationPhase<>cpDone) then
if TargetSwitches^.GetCurrSelParam<>source_os.shortname then
begin
cm:=ConfirmBox(#3'Sorry, can not debug'#13#3'programs compiled for'
+TargetSwitches^.GetCurrSelParam+'.'#13#3
+'Change target to'
+source_os.shortname+'?',nil,true);
if cm=cmCancel then
Exit;
if cm=cmYes then
begin
{ force recompilation }
PrevMainFile:='';
TargetSwitches^.SetCurrSelParam(source_os.shortname);
end;
end;
if (not ExistsFile(ExeFile)) or (CompilationPhase<>cpDone) or
(PrevMainFile<>MainFile) then
DoCompile(cRun);
if CompilationPhase<>cpDone then
Exit;
@ -2982,12 +3010,9 @@ begin
ErrorBox('Oooops, nothing to debug.',nil);
Exit;
end;
if target_os.shortname<>source_os.shortname then
begin
ErrorBox(#3'Sorry, I can only debug'#13#3'programs compiled for '#13#3
+source_os.shortname,nil);
Exit;
end;
{$ifdef DEBUG}
PushStatus('Starting debugger');
{$endif DEBUG}
{ init debugcontroller }
if assigned(Debugger) then
dispose(Debugger,Done);
@ -3119,7 +3144,10 @@ end.
{
$Log$
Revision 1.47 2000-02-04 00:10:58 pierre
Revision 1.48 2000-02-04 14:34:46 pierre
readme.txt
Revision 1.47 2000/02/04 00:10:58 pierre
* Breakpoint line in Source Window better handled
Revision 1.46 2000/02/01 10:59:58 pierre

View File

@ -89,10 +89,12 @@ type
procedure AddLongintItem(const name,param:string);
procedure AddStringItem(const name,param:string;mult:boolean);
function GetCurrSel:integer;
function GetCurrSelParam : String;
function GetBooleanItem(index:integer):boolean;
function GetLongintItem(index:integer):longint;
function GetStringItem(index:integer):string;
procedure SetCurrSel(index:integer);
function SetCurrSelParam(const s : String) : boolean;
procedure SetBooleanItem(index:integer;b:boolean);
procedure SetLongintItem(index:integer;l:longint);
procedure SetStringItem(index:integer;const s:string);
@ -440,12 +442,41 @@ begin
end;
function TSwitches.GetCurrSelParam : String;
begin
if IsSel then
GetCurrSelParam:=PSwitchItem(Items^.At(SelNr[SwitchesMode]))^.Param
else
GetCurrSelParam:='';
end;
procedure TSwitches.SetCurrSel(index:integer);
begin
if IsSel then
SelNr[SwitchesMode]:=index;
end;
function TSwitches.SetCurrSelParam(const s : String) : boolean;
function checkitem(P:PSwitchItem):boolean;{$ifndef FPC}far;{$endif}
begin
{ empty items are not equivalent to others !! }
CheckItem:=((S='') and (P^.Param='')) or
((Length(S)>0) and (P^.Param=s));
end;
var
FoundP : PSwitchItem;
begin
FoundP:=Items^.FirstThat(@CheckItem);
if Assigned(FoundP) then
begin
SetCurrSelParam:=true;
SelNr[SwitchesMode]:=Items^.IndexOf(FoundP);
end
else
SetCurrSelParam:=false;
end;
procedure TSwitches.WriteItemsCfg;
var
@ -905,7 +936,10 @@ end;
end.
{
$Log$
Revision 1.16 2000-02-04 00:05:20 pierre
Revision 1.17 2000-02-04 14:34:47 pierre
readme.txt
Revision 1.16 2000/02/04 00:05:20 pierre
* -Fi must also be used for GetSourceDirectories
Revision 1.15 2000/01/10 15:52:53 pierre

View File

@ -78,4 +78,4 @@
{$define Undo}
{$ifdef DEBUG}
{$define DebugUndo}
{$endif DEBUG}
{$endif DEBUG}

View File

@ -4,8 +4,21 @@ This file is just a log of important changes
starting 1999/10/29
1999/10/29 :
2000/01/28:
+ Partial Syntax released:
this allows to open highlighted files faster.
The highlighting is only computed up to the current editor position
and is continued in the Idle loop as a background process
(it not a real separate process).
2000/01/10:
+ working register window
1999/11/10:
+ Grouped action started for Undo.
Undo of Copy/Cut/Paste or Clear should work.
1999/10/29:
Undo/Redo stuff added to normal compilation
this is still buggy !!!
Any use of Copy/Cut/Paste or Clear will generate wrong Undo
We will t

View File

@ -1,5 +1,7 @@
program TestProgram;
{$mode objfpc}
{$R-}
program TestProgram;
uses
{$ifdef go32v2}
@ -114,6 +116,8 @@ end;
function Func1(x,z : word; var y : boolean; const r: TRecord): shortint;
var loc : string;
procedure test_local(c,f : longint);
var
int_loc : longint;
@ -121,9 +125,18 @@ function Func1(x,z : word; var y : boolean; const r: TRecord): shortint;
Writeln('dummy for browser');
end;
procedure indirect_call;
var
loc : longint;
begin
loc:=1;
test_local(5,7);
end;
begin
loc:='This is a string';
if Hello=0 then X:=0 else X:=1;
test_local(0,2);
indirect_call;
Func1:=X;
end;
@ -140,5 +153,7 @@ BEGIN
new(X);
X^.next:=X;
dispose(X);
Halt;
END.
{ for i:=1 to 99 do
Writeln('Line ',i); }
Halt(4);
END.