mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-01-04 13:44:33 +01:00
Surfacing the process create time in google_breakpad::ProcessState
and updating minidump_stackwalk to show process uptime. I tested this with a minidump from Chrome and I got a result that is inline with what the Windows debugger is showing for that dump: minidump_stackwalk output: -------------------------- Process uptime: 601 seconds WinDBG output: -------------- Process Uptime: 0 days 0:10:01.000 I didn't update the machine readable output of minidump_stackwalk on purpose in order to avoid breaking someone that uses it. It can be added later to the machine output if needed. R=mark@chromium.org Review URL: https://breakpad.appspot.com/7754002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1406 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
57e5b074f6
commit
63919583ba
10 changed files with 123 additions and 15 deletions
|
|
@ -732,6 +732,7 @@ class MinidumpMiscInfo : public MinidumpStream {
|
|||
|
||||
private:
|
||||
friend class Minidump;
|
||||
friend class TestMinidumpMiscInfo;
|
||||
|
||||
static const uint32_t kStreamType = MD_MISC_INFO_STREAM;
|
||||
|
||||
|
|
@ -902,14 +903,14 @@ class Minidump {
|
|||
// to avoid exposing an ugly API (GetStream needs to accept a garbage
|
||||
// parameter).
|
||||
virtual MinidumpThreadList* GetThreadList();
|
||||
MinidumpModuleList* GetModuleList();
|
||||
virtual MinidumpModuleList* GetModuleList();
|
||||
virtual MinidumpMemoryList* GetMemoryList();
|
||||
MinidumpException* GetException();
|
||||
MinidumpAssertion* GetAssertion();
|
||||
virtual MinidumpException* GetException();
|
||||
virtual MinidumpAssertion* GetAssertion();
|
||||
virtual MinidumpSystemInfo* GetSystemInfo();
|
||||
MinidumpMiscInfo* GetMiscInfo();
|
||||
MinidumpBreakpadInfo* GetBreakpadInfo();
|
||||
MinidumpMemoryInfoList* GetMemoryInfoList();
|
||||
virtual MinidumpMiscInfo* GetMiscInfo();
|
||||
virtual MinidumpBreakpadInfo* GetBreakpadInfo();
|
||||
virtual MinidumpMemoryInfoList* GetMemoryInfoList();
|
||||
|
||||
// The next set of methods are provided for users who wish to access
|
||||
// data in minidump files directly, while leveraging the rest of
|
||||
|
|
|
|||
|
|
@ -89,6 +89,12 @@ class MinidumpProcessor {
|
|||
// the minidump.
|
||||
static bool GetOSInfo(Minidump* dump, SystemInfo* info);
|
||||
|
||||
// Populates the |process_create_time| parameter with the create time of the
|
||||
// crashed process. Returns false if this information is not available in
|
||||
// the minidump |dump|.
|
||||
static bool GetProcessCreateTime(Minidump* dump,
|
||||
uint32_t* process_create_time);
|
||||
|
||||
// Returns a textual representation of the reason that a crash occurred,
|
||||
// if the minidump in dump was produced as a result of a crash. Returns
|
||||
// an empty string if this information cannot be determined. If address
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ class ProcessState {
|
|||
|
||||
// Accessors. See the data declarations below.
|
||||
uint32_t time_date_stamp() const { return time_date_stamp_; }
|
||||
uint32_t process_create_time() const { return process_create_time_; }
|
||||
bool crashed() const { return crashed_; }
|
||||
string crash_reason() const { return crash_reason_; }
|
||||
uint64_t crash_address() const { return crash_address_; }
|
||||
|
|
@ -125,6 +126,9 @@ class ProcessState {
|
|||
// The time-date stamp of the minidump (time_t format)
|
||||
uint32_t time_date_stamp_;
|
||||
|
||||
// The time-date stamp when the process was created (time_t format)
|
||||
uint32_t process_create_time_;
|
||||
|
||||
// True if the process crashed, false if the dump was produced outside
|
||||
// of an exception handler.
|
||||
bool crashed_;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue