mirror of
https://github.com/yuzu-emu/breakpad
synced 2024-11-26 12:07:54 +00:00
Add the TID to the CallStack.
R=ivanpe@chromium.org Review URL: https://codereview.chromium.org/1849933002 .
This commit is contained in:
parent
c77c51fae6
commit
d9c532217e
4 changed files with 14 additions and 1 deletions
|
@ -45,6 +45,7 @@
|
|||
#ifndef GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
|
||||
#define GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
|
||||
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
namespace google_breakpad {
|
||||
|
@ -61,15 +62,24 @@ class CallStack {
|
|||
|
||||
// Resets the CallStack to its initial empty state
|
||||
void Clear();
|
||||
|
||||
|
||||
const vector<StackFrame*>* frames() const { return &frames_; }
|
||||
|
||||
// Set the TID associated with this call stack.
|
||||
void set_tid(uint32_t tid) { tid_ = tid; }
|
||||
|
||||
uint32_t tid() { return tid_; }
|
||||
|
||||
private:
|
||||
// Stackwalker is responsible for building the frames_ vector.
|
||||
friend class Stackwalker;
|
||||
|
||||
// Storage for pushed frames.
|
||||
vector<StackFrame*> frames_;
|
||||
|
||||
// The TID associated with this call stack. Default to 0 if it's not
|
||||
// available.
|
||||
uint32_t tid_;
|
||||
};
|
||||
|
||||
} // namespace google_breakpad
|
||||
|
|
|
@ -48,6 +48,7 @@ void CallStack::Clear() {
|
|||
++iterator) {
|
||||
delete *iterator;
|
||||
}
|
||||
tid_ = 0;
|
||||
}
|
||||
|
||||
} // namespace google_breakpad
|
||||
|
|
|
@ -267,6 +267,7 @@ ProcessResult MinidumpProcessor::Process(
|
|||
// one bad thread.
|
||||
BPLOG(ERROR) << "No stackwalker for " << thread_string;
|
||||
}
|
||||
stack->set_tid(thread_id);
|
||||
process_state->threads_.push_back(stack.release());
|
||||
process_state->thread_memory_regions_.push_back(thread_memory);
|
||||
}
|
||||
|
|
|
@ -414,6 +414,7 @@ TEST_F(MinidumpProcessorTest, TestBasicProcessing) {
|
|||
ASSERT_EQ(state.crash_reason(), "EXCEPTION_ACCESS_VIOLATION_WRITE");
|
||||
ASSERT_EQ(state.crash_address(), 0x45U);
|
||||
ASSERT_EQ(state.threads()->size(), size_t(1));
|
||||
EXPECT_EQ((*state.threads())[0]->tid(), 3060);
|
||||
ASSERT_EQ(state.requesting_thread(), 0);
|
||||
EXPECT_EQ(1171480435U, state.time_date_stamp());
|
||||
EXPECT_EQ(1171480435U, state.process_create_time());
|
||||
|
|
Loading…
Reference in a new issue