New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 601461 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Missing registers in crashpad minidumps?

Project Member Reported by gab@chromium.org, Apr 7 2016

Issue description

Example: http://crash/094fce8400000000.

Open that minidump in WinDBG and see that stack parameter |priority| in base::PlatformThread::SetCurrentThreadPriority call is unavailable (we can see from the caller that it's base::ThreadPriority::DISPLAY but that's not the point).
 

Comment 1 by gab@chromium.org, Apr 7 2016

Cc: brucedaw...@chromium.org
Weirdly enough even if I repro locally (by changing the DCHECK line to DCHECK_NE(desired_priority, THREAD_PRIORITY_ABOVE_NORMAL); which will hit).

|priority| is a bogus value "0n946859504 (No matching enumerant)" -- I do have the latest version of WinDBG but it seems to be at lost with the optimization at play here..?

Comment 2 by gab@chromium.org, Apr 7 2016

FWIW, my build is Release + dcheck_always_on + component.

Comment 3 by gab@chromium.org, Apr 7 2016

From the disassembly looks like the calling convention for |SetCurrentThreadPriority| is to put |priority| in ecx.

Maybe it later gets borked by the DCHECK/dump-without-crashing code as the value of |priority| is never used after the switch and the compiler could decide to re-use its register from that point on...?

Comment 4 by gab@chromium.org, Apr 7 2016

Status: WontFix (was: Assigned)
I'll go ahead and assume we can't do anything about this specific instance as it's a compiler optimization taking precedence on debugability...
Yes, I think your analysis is correct. I don't see anywhere where ecx gets stored to the stack, so there's nothing to capture by the time it gets to grabbing a dump. Adding a base::debug::Alias(&priority) should force a stack spill, which should make it available.

Sign in to add a comment