!obtrace and x64

This is regarding !obtrace.

http://msdn.microsoft.com/en-us/library/ff564594(v=vs.85).aspx

Documentation says “The object reference traces on x64-based target
computers might be incomplete because it is not always possible to acquire
stack traces at IRQL levels higher than PASSIVE_LEVEL.” (see bottom of the
above webpage).

It should hold true for x86 based target systems too (they too have code
running above PASSIVE_LEVEL and doing ref/derefs)

Am I missing something obvious here?

-Deepak

The documentation is correct about this not applying to x86. On non-x86 architectures, we need to read data from the in-memory image backing each function pointer on the stack in order to determine how to unwind (i.e. to pull the unwind codes out of .pdata in the case of amd64).

Not that ebp-based stack frame walking as is done on x86 here is never 100% reliable as code is not strictly required to establish an ebp-based frame at every call frame.

I believe that the docs should also really apply to IA64 too, for what that?s worth.

  • S (Msft)

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Deepak Gupta
Sent: Sunday, March 13, 2011 6:20 AM
To: Kernel Debugging Interest List
Subject: [windbg] !obtrace and x64

This is regarding !obtrace.

http://msdn.microsoft.com/en-us/library/ff564594(v=vs.85).aspxhttp:

Documentation says “The object reference traces on x64-based target computers might be incomplete because it is not always possible to acquire stack traces at IRQL levels higher than PASSIVE_LEVEL.” (see bottom of the above webpage).

It should hold true for x86 based target systems too (they too have code running above PASSIVE_LEVEL and doing ref/derefs)

Am I missing something obvious here?

-Deepak
— WINDBG is sponsored by OSR For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</http:>

Thanks for the clarification.

Seek one more clarification.

I intended to trace a file object (file type) on which I was getting a crash
reference_by_pointer (bugcheck 0x18) and so enabled tracing using gflags and
ran some tests.

When crash happens, I run !obtrace on this object and observe first sequence
is ‘-1’ as first entry.
Is this correct, ideally it should start with +1.
Or Again I am missing something here in understanding the output or
something else?

-Deepak

On Sun, Mar 13, 2011 at 10:10 PM, Skywing wrote:

> The documentation is correct about this not applying to x86. On non-x86
> architectures, we need to read data from the in-memory image backing each
> function pointer on the stack in order to determine how to unwind (i.e. to
> pull the unwind codes out of .pdata in the case of amd64).
>
>
>
> Not that ebp-based stack frame walking as is done on x86 here is never 100%
> reliable as code is not strictly required to establish an ebp-based frame at
> every call frame.
>
>
>
> I believe that the docs should also really apply to IA64 too, for what
> that?s worth.
>
>
>
> - S (Msft)
>
>
>
> From: xxxxx@lists.osr.com [mailto:
> xxxxx@lists.osr.com] *On Behalf Of *Deepak Gupta
> Sent: Sunday, March 13, 2011 6:20 AM
> To: Kernel Debugging Interest List
> Subject: [windbg] !obtrace and x64
>
>
>
> This is regarding !obtrace.
>
> http://msdn.microsoft.com/en-us/library/ff564594(v=vs.85).aspx
>
> Documentation says “The object reference traces on x64-based target
> computers might be incomplete because it is not always possible to acquire
> stack traces at IRQL levels higher than PASSIVE_LEVEL.” (see bottom of the
> above webpage).
>
> It should hold true for x86 based target systems too (they too have code
> running above PASSIVE_LEVEL and doing ref/derefs)
>
> Am I missing something obvious here?
>
> -Deepak
> — WINDBG is sponsored by OSR For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
> —
> WINDBG is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>