dwarf: fix LineNumberProgram check

- tolerate out-of-order DW_AT_ranges

closes #8421
This commit is contained in:
Michael Dusan 2021-04-12 06:10:02 -04:00
parent 93cf9560b1
commit 746f65f8b3
No known key found for this signature in database
GPG Key ID: ED4C5BA849FA1B74
2 changed files with 1 additions and 16 deletions

View File

@ -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) {

View File

@ -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
},