FpDebug: compile on win64

git-svn-id: trunk@44902 -
This commit is contained in:
martin 2014-05-03 15:00:16 +00:00
parent b70099f4fe
commit e53e32b3c8

View File

@ -984,6 +984,7 @@ end;
procedure TDbgWinThread.LoadRegisterValues; procedure TDbgWinThread.LoadRegisterValues;
begin begin
{$ifdef cpui386}
with GCurrentContext^ do with GCurrentContext^ do
begin begin
FRegisterValueList.DbgRegisterAutoCreate['eax'].SetValue(Eax, IntToStr(Eax),4,0); FRegisterValueList.DbgRegisterAutoCreate['eax'].SetValue(Eax, IntToStr(Eax),4,0);
@ -1006,6 +1007,10 @@ begin
FRegisterValueList.DbgRegisterAutoCreate['gs'].SetValue(SegGs, IntToStr(SegGs),4,0); FRegisterValueList.DbgRegisterAutoCreate['gs'].SetValue(SegGs, IntToStr(SegGs),4,0);
end; end;
FRegisterValueListValid:=true; FRegisterValueListValid:=true;
{$else}
FRegisterValueListValid := False;
{$warning register not ready for 64 bit}
{$endif}
end; end;
procedure TDbgWinThread.SetSingleStep; procedure TDbgWinThread.SetSingleStep;
@ -1038,6 +1043,7 @@ var
begin begin
result := -1; result := -1;
{$ifdef cpui386}
if SetBreakpoint(GCurrentContext^.Dr0, 0) then if SetBreakpoint(GCurrentContext^.Dr0, 0) then
result := 0 result := 0
else if SetBreakpoint(GCurrentContext^.Dr1, 1) then else if SetBreakpoint(GCurrentContext^.Dr1, 1) then
@ -1048,6 +1054,10 @@ begin
result := 3 result := 3
else else
Process.Log('No hardware breakpoint available.'); Process.Log('No hardware breakpoint available.');
{$else}
FRegisterValueListValid := False;
{$warning watchpoint not ready for 64 bit}
{$endif}
end; end;
function TDbgWinThread.RemoveWatchpoint(AnId: integer): boolean; function TDbgWinThread.RemoveWatchpoint(AnId: integer): boolean;
@ -1070,12 +1080,17 @@ function TDbgWinThread.RemoveWatchpoint(AnId: integer): boolean;
end; end;
begin begin
{$ifdef cpui386}
case AnId of case AnId of
0: result := RemoveBreakpoint(GCurrentContext^.Dr0, 0); 0: result := RemoveBreakpoint(GCurrentContext^.Dr0, 0);
1: result := RemoveBreakpoint(GCurrentContext^.Dr1, 1); 1: result := RemoveBreakpoint(GCurrentContext^.Dr1, 1);
2: result := RemoveBreakpoint(GCurrentContext^.Dr2, 2); 2: result := RemoveBreakpoint(GCurrentContext^.Dr2, 2);
3: result := RemoveBreakpoint(GCurrentContext^.Dr3, 3); 3: result := RemoveBreakpoint(GCurrentContext^.Dr3, 3);
end end
{$else}
FRegisterValueListValid := False;
{$warning watchpoint not ready for 64 bit}
{$endif}
end; end;
procedure TDbgWinThread.BeforeContinue; procedure TDbgWinThread.BeforeContinue;