commit 746f65f8b3ce11d67d8fd392aea8bc05a24adae6 (tree)
parent 93cf9560b13619159efb3ca12eeeb13d6031ad85
Author: Michael Dusan <michael.dusan@gmail.com>
Date: Mon, 12 Apr 2021 06:10:02 -0400
dwarf: fix LineNumberProgram check
- tolerate out-of-order DW_AT_ranges
closes #8421
Diffstat:
2 files changed, 1 insertion(+), 16 deletions(-)
diff --git a/lib/std/dwarf.zig b/lib/std/dwarf.zig
@@ -208,7 +208,7 @@ const LineNumberProgram = struct {
}
pub fn checkLineMatch(self: *LineNumberProgram) !?debug.LineInfo {
- if (self.target_address >= self.prev_address and self.target_address < self.address) {
+ if (self.prev_address > 0 and self.target_address >= self.prev_address and self.target_address < self.address) {
const file_entry = if (self.prev_file == 0) {
return error.MissingDebugInfo;
} else if (self.prev_file - 1 >= self.file_entries.items.len) {
diff --git a/test/stack_traces.zig b/test/stack_traces.zig
@@ -20,11 +20,6 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
,
},
.ReleaseSafe = .{
- .exclude = struct {
- pub fn exclude() bool {
- return if (std.builtin.object_format == .elf) true else false;
- }
- },
.exclude_os = .{
.windows, // segfault
},
@@ -74,11 +69,6 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
,
},
.ReleaseSafe = .{
- .exclude = struct {
- pub fn exclude() bool {
- return if (std.builtin.object_format == .elf) true else false;
- }
- },
.exclude_os = .{
.windows, // segfault
},
@@ -145,11 +135,6 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
,
},
.ReleaseSafe = .{
- .exclude = struct {
- pub fn exclude() bool {
- return if (std.builtin.object_format == .elf) true else false;
- }
- },
.exclude_os = .{
.windows, // segfault
},