[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haiku-bugs
Subject:    [haiku-bugs] Re: [Haiku] #12548: Debugger: missing stack frames
From:       "bonefish" <trac () haiku-os ! org>
Date:       2015-12-29 0:39:16
Message-ID: 059.1e7229524246d641c834ddd709c0f80f () haiku-os ! org
[Download RAW message or body]

#12548: Debugger: missing stack frames
-------------------------------------+----------------------------
   Reporter:  jessicah               |      Owner:  anevilyak
       Type:  bug                    |     Status:  new
   Priority:  normal                 |  Milestone:  Unscheduled
  Component:  Applications/Debugger  |    Version:  R1/Development
 Resolution:                         |   Keywords:
 Blocked By:                         |   Blocking:
Has a Patch:  0                      |   Platform:  All
-------------------------------------+----------------------------

Comment (by bonefish):

 Assuming you don't have debug info for `memcpy()` this should be the
 issue: In the absence of debug info Debugger resorts to the fallback
 method to unwind the current function call -- it uses the return address
 and previous frame address stored in the current stack frame. Since
 `memcpy()` is probably frameless, the stack frame Debugger sees actually
 stems from the calling function and the values stored in it refer to
 `_DecodeNextAudioFrame()`. Thus your second function appears missing.

 If you could step out of `memcpy()`, the function would be back. IIRC
 advancing to a `ret` instruction within `memcpy()` would already help,
 since Debugger would notice that we're in the function epilogue and only
 the return address remains on the stack.

 In theory it would be possible to deal more intelligently with frameless
 functions. Debugger could analyze the function to find a code path that
 leads out of the function and thus determine the return address and the
 calling function's stack and frame pointer.

 So, this is really more like a missing feature than a bug. Unless debug
 info for `memcpy()` is available that is.

--
Ticket URL: <https://dev.haiku-os.org/ticket/12548#comment:1>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic