authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2019-04-11 15:41:42+02:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2019-04-11 15:41:42+02:00
log51eb4ebec1435dc0050bd1d40c48416019972e65
tree906033f6a954fd2d54c217d30bed60ee712fe9bb
parent38492b2ea4b7aac9685ede264701ac0b7bb291c0

Distinguish between absolute/relative addresses


1 files changed, 3 insertions(+), 2 deletions(-)

std/debug.zig+3-2
......@@ -1243,6 +1243,7 @@ const FormValue = union(enum) {
12431243 ExprLoc: []u8,
12441244 Flag: bool,
12451245 SecOffset: u64,
1246 Ref: u64,
12461247 RefAddr: u64,
12471248 String: []u8,
12481249 StrPtr: u64,
......@@ -1465,7 +1466,7 @@ fn parseFormValueTargetAddrSize(in_stream: var) !u64 {
14651466
14661467fn parseFormValueRef(allocator: *mem.Allocator, in_stream: var, size: i32) !FormValue {
14671468 return FormValue{
1468 .RefAddr = switch (size) {
1469 .Ref = switch (size) {
14691470 1 => try in_stream.readIntLittle(u8),
14701471 2 => try in_stream.readIntLittle(u16),
14711472 4 => try in_stream.readIntLittle(u32),
......@@ -1510,7 +1511,7 @@ fn parseFormValue(allocator: *mem.Allocator, in_stream: var, form_id: u64, is_64
15101511 DW.FORM_ref_udata => parseFormValueRef(allocator, in_stream, -1),
15111512
15121513 DW.FORM_ref_addr => FormValue{ .RefAddr = try parseFormValueDwarfOffsetSize(in_stream, is_64) },
1513 DW.FORM_ref_sig8 => FormValue{ .RefAddr = try in_stream.readIntLittle(u64) },
1514 DW.FORM_ref_sig8 => FormValue{ .Ref = try in_stream.readIntLittle(u64) },
15141515
15151516 DW.FORM_string => FormValue{ .String = try readStringRaw(allocator, in_stream) },
15161517 DW.FORM_strp => FormValue{ .StrPtr = try parseFormValueDwarfOffsetSize(in_stream, is_64) },