LazDebuggerFPDServer: Implemented disassembler-linesbefore

git-svn-id: trunk@49365 -
This commit is contained in:
joost 2015-06-18 19:05:49 +00:00
parent 3d1c73023d
commit 3eeb33c6af
2 changed files with 11 additions and 10 deletions

View File

@ -223,11 +223,12 @@ type
private
FDisassembler: TDBGDisassembler;
FStartAddr: TDBGPtr;
FLinesCount: integer;
FLinesAfter: integer;
FLinesBefore: integer;
protected
procedure ComposeJSon(AJsonObject: TJSONObject); override;
public
constructor create(ADisassembler: TDBGDisassembler; AStartAddr: TDBGPtr; ALinesCount: integer);
constructor create(ADisassembler: TDBGDisassembler; AStartAddr: TDBGPtr; ALinesBefore, ALinesAfter: integer);
procedure DoOnCommandSuccesfull(ACommandResponse: TJSonObject); override;
end;
@ -383,9 +384,7 @@ var GCommandUID: integer = 0;
function TFPDBGDisassembler.PrepareEntries(AnAddr: TDbgPtr; ALinesBefore, ALinesAfter: Integer): boolean;
begin
Assert(ALinesBefore<>0,'TFPDBGDisassembler.PrepareEntries LinesBefore not supported');
TFPDServerDebugger(Debugger).QueueCommand(TFPDSendDisassembleCommand.create(self, AnAddr, ALinesAfter+1));
TFPDServerDebugger(Debugger).QueueCommand(TFPDSendDisassembleCommand.create(self, AnAddr, ALinesBefore, ALinesAfter));
result := false;
end;

View File

@ -260,16 +260,18 @@ begin
AJsonObject.Add('command','disassemble');
if FStartAddr>0 then
AJsonObject.Add('address', Dec2Numb(FStartAddr, 8, 16));
if FLinesCount>0 then
AJsonObject.Add('lines', FLinesCount);
if FLinesAfter>0 then
AJsonObject.Add('linesafter', FLinesAfter);
if FLinesBefore>0 then
AJsonObject.Add('linesbefore', FLinesBefore);
end;
constructor TFPDSendDisassembleCommand.create(ADisassembler: TDBGDisassembler;
AStartAddr: TDBGPtr; ALinesCount: integer);
constructor TFPDSendDisassembleCommand.create(ADisassembler: TDBGDisassembler; AStartAddr: TDBGPtr; ALinesBefore, ALinesAfter: integer);
begin
inherited create(true);
FDisassembler := ADisassembler;
FLinesCount:=ALinesCount;
FLinesBefore:=ALinesBefore;
FLinesAfter:=ALinesAfter;
FStartAddr:=AStartAddr;
end;