mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2025-01-22 21:50:57 +00:00
Properly handle new tombstone values that now appear as a result of the llvm change described at https://reviews.llvm.org/D81784.
Change-Id: I79dc5a72b651aa057104cd42b4773391df68125b Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2317730 Reviewed-by: Mark Mentovai <mark@chromium.org> Reviewed-by: Nelson Billing <nbilling@google.com>
This commit is contained in:
parent
114336881a
commit
7d65240249
|
@ -1195,7 +1195,10 @@ void DwarfCUToModule::AssignLinesToFunctions() {
|
|||
// next_transition may end up being zero, in which case we've completed
|
||||
// our pass. Handle that here, instead of trying to deal with it in
|
||||
// each place we compute next_transition.
|
||||
if (!next_transition)
|
||||
|
||||
// Some dwarf producers handle linker-removed functions by using -1 as a
|
||||
// tombstone in the line table. So the end marker can be -1.
|
||||
if (!next_transition || next_transition == Module::kMaxAddress)
|
||||
break;
|
||||
|
||||
// Advance iterators as needed. If lines overlap or functions overlap,
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#define COMMON_LINUX_MODULE_H__
|
||||
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
#include <map>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
@ -62,6 +63,7 @@ class Module {
|
|||
public:
|
||||
// The type of addresses and sizes in a symbol table.
|
||||
typedef uint64_t Address;
|
||||
static constexpr uint64_t kMaxAddress = std::numeric_limits<Address>::max();
|
||||
struct File;
|
||||
struct Function;
|
||||
struct Line;
|
||||
|
|
Loading…
Reference in a new issue