Skip to content
  • Greg Clayton's avatar
    Added more API to lldb::SBBlock to allow getting the block · 95897c6a
    Greg Clayton authored
    parent, sibling and first child block, and access to the
    inline function information.
    
    Added an accessor the StackFrame:
    
    	Block * lldb_private::StackFrame::GetFrameBlock();
    	
    LLDB represents inline functions as lexical blocks that have
    inlined function information in them. The function above allows
    us to easily get the top most lexical block that defines a stack
    frame. When there are no inline functions in function, the block
    returned ends up being the top most block for the function. When
    the PC is in an inlined funciton for a frame, this will return the
    first parent block that has inlined function information. The
    other accessor: StackFrame::GetBlock() will return the deepest block
    that matches the frame's PC value. Since most debuggers want to display
    all variables in the current frame, the Block returned by
    StackFrame::GetFrameBlock can be used to retrieve all variables for
    the current frame.
    
    Fixed the lldb_private::Block::DumpStopContext(...) to properly
    display inline frames a block should display all of its inlined
    functions. Prior to this fix, one of the call sites was being skipped.
    This is a separate code path from the current default where inlined
    functions get their own frames.
    
    Fixed an issue where a block would always grab variables for any
    child inline function blocks.
    
    llvm-svn: 113195
    95897c6a
Loading