[Lldb-commits] [PATCH] D11574: Add size field to library load event
Paul Maybee
paulmay at microsoft.com
Tue Jul 28 13:31:13 PDT 2015
paulmaybee created this revision.
paulmaybee added reviewers: abidh, ki.stfu, ChuckR.
paulmaybee added subscribers: lldb-commits, greggm.
(This revision supersedes the abandon: http://reviews.llvm.org/D9716)
Size field is used to let the debugger attribute an address to a specific library when symbols are not available.
For example:
OpenGLESApp4.app!Cube_draw() Line 74 C
OpenGLESApp4.app!-[GameViewController glkView:drawInRect:](GameViewController * self, SEL _cmd, GLKView * view, CGRect rect) Line 89 C++
GLKit!<redacted>
QuartzCore!<redacted>
QuartzCore!<redacted>
QuartzCore!<redacted>
QuartzCore!<redacted>
QuartzCore!<redacted>
UIKit!<redacted>
UIKit!<redacted>
UIKit!<redacted>
UIKit!<redacted>
FrontBoardServices!<redacted>
CoreFoundation!<redacted>
http://reviews.llvm.org/D11574
Files:
test/tools/lldb-mi/TestMiLibraryLoaded.py
tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp
Index: tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp
===================================================================
--- tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp
+++ tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp
@@ -720,7 +720,7 @@
vwrMiOutOfBandRecord.Add(miValueResult5);
}
// Build "loaded_addr" field
- const lldb::SBAddress sbAddress(vModule.GetObjectFileHeaderAddress());
+ lldb::SBAddress sbAddress(vModule.GetObjectFileHeaderAddress());
CMICmnLLDBDebugSessionInfo &rSessionInfo(CMICmnLLDBDebugSessionInfo::Instance());
const lldb::addr_t nLoadAddress(sbAddress.GetLoadAddress(rSessionInfo.GetTarget()));
const CMIUtilString strLoadedAddr(nLoadAddress != LLDB_INVALID_ADDRESS ?
@@ -728,6 +728,14 @@
const CMICmnMIValueConst miValueConst6(strLoadedAddr);
const CMICmnMIValueResult miValueResult6("loaded_addr", miValueConst6);
vwrMiOutOfBandRecord.Add(miValueResult6);
+ bOk = bOk && vwrMiOutOfBandRecord.Add(miValueResult6);
+
+ // Build "size" field
+ lldb::SBSection sbSection = sbAddress.GetSection();
+ const CMIUtilString strSize(CMIUtilString::Format("%PRIu64", sbSection.GetByteSize()));
+ const CMICmnMIValueConst miValueConst7(strSize);
+ const CMICmnMIValueResult miValueResult7("size", miValueConst7);
+ bOk = bOk && vwrMiOutOfBandRecord.Add(miValueResult7);
}
return bOk;
Index: test/tools/lldb-mi/TestMiLibraryLoaded.py
===================================================================
--- test/tools/lldb-mi/TestMiLibraryLoaded.py
+++ test/tools/lldb-mi/TestMiLibraryLoaded.py
@@ -28,7 +28,7 @@
symbols_path = os.path.join(path + ".dSYM", "Contents", "Resources", "DWARF", self.myexe)
self.expect([
"=library-loaded,id=\"%s\",target-name=\"%s\",host-name=\"%s\",symbols-loaded=\"1\",symbols-path=\"%s\",loaded_addr=\"-\"" % (path, path, path, symbols_path),
- "=library-loaded,id=\"%s\",target-name=\"%s\",host-name=\"%s\",symbols-loaded=\"0\",loaded_addr=\"-\"" % (path, path, path)
+ "=library-loaded,id=\"%s\",target-name=\"%s\",host-name=\"%s\",symbols-loaded=\"0\",loaded_addr=\"-\",size=\"[0-9]+\"" % (path, path, path)
], exactly = True)
if __name__ == '__main__':
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11574.30846.patch
Type: text/x-patch
Size: 2359 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150728/73740eaa/attachment.bin>
More information about the lldb-commits
mailing list