+ added an address size parameter to lnfodrwf.ReadAddress(); pass the expected

address size, as taken from the dwarf header structure

git-svn-id: trunk@39059 -
This commit is contained in:
nickysn 2018-05-20 15:43:19 +00:00
parent dc8b78abe6
commit a7f5a69000

View File

@ -471,7 +471,7 @@ end;
{ Reads an address from the current input stream } { Reads an address from the current input stream }
function ReadAddress() : PtrUInt; function ReadAddress(addr_size: smallint) : PtrUInt;
begin begin
ReadNext(ReadAddress, sizeof(ReadAddress)); ReadNext(ReadAddress, sizeof(ReadAddress));
end; end;
@ -758,7 +758,7 @@ begin
DEBUG_WRITELN('DW_LNE_END_SEQUENCE'); DEBUG_WRITELN('DW_LNE_END_SEQUENCE');
end; end;
DW_LNE_SET_ADDRESS : begin DW_LNE_SET_ADDRESS : begin
state.address := ReadAddress(); state.address := ReadAddress(extended_opcode_length-1);
DEBUG_WRITELN('DW_LNE_SET_ADDRESS (', hexstr(state.address, sizeof(state.address)*2), ')'); DEBUG_WRITELN('DW_LNE_SET_ADDRESS (', hexstr(state.address, sizeof(state.address)*2), ')');
end; end;
{$ifdef CPUI8086} {$ifdef CPUI8086}
@ -1004,8 +1004,8 @@ begin
DEBUG_WRITELN('debug_info_offset: ',header64.debug_info_offset); DEBUG_WRITELN('debug_info_offset: ',header64.debug_info_offset);
DEBUG_WRITELN('address_size: ', header64.address_size); DEBUG_WRITELN('address_size: ', header64.address_size);
DEBUG_WRITELN('segment_size: ', header64.segment_size); DEBUG_WRITELN('segment_size: ', header64.segment_size);
arange_start:=ReadAddress; arange_start:=ReadAddress(header64.address_size);
arange_size:=ReadAddress; arange_size:=ReadAddress(header64.address_size);
while not((arange_start=0) and (arange_size=0)) and (not found) do while not((arange_start=0) and (arange_size=0)) and (not found) do
begin begin
@ -1016,8 +1016,8 @@ begin
DEBUG_WRITELN('Matching aranges entry $',hexStr(arange_start,header64.address_size*2),', $',hexStr(arange_size,header64.address_size*2)); DEBUG_WRITELN('Matching aranges entry $',hexStr(arange_start,header64.address_size*2),', $',hexStr(arange_size,header64.address_size*2));
end; end;
arange_start:=ReadAddress; arange_start:=ReadAddress(header64.address_size);
arange_size:=ReadAddress; arange_size:=ReadAddress(header64.address_size);
end; end;
end; end;