aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-09-29 23:41:34 +0000
committerGreg Clayton <gclayton@apple.com>2011-09-29 23:41:34 +0000
commited11c1ebc344458c2bc83aa5b0bf6b3d0e2ef987 (patch)
treef6a6202a23930d4ae18f10f7b7feea424ae04f3e /include
parent811ded5b244c20a9f39a04aba1a11ce02aa45f5e (diff)
downloadlldb-ed11c1ebc344458c2bc83aa5b0bf6b3d0e2ef987.tar.gz
Fixed an issue where a lexical block or inlined function might have bad debug
information generated for it. Say we have a concrete function "foo" which has inlined function "a" which calls another inlined function "b": foo 1 { 2 { a () 3 { b () 4 { } } } } Sometimes we see the compiler generate an address range in the DWARF for "foo" (block 1 above) as say [0x1000-0x1100). Then the range for "a" is something like [0x1050-0x1060) (note that it is correctly scoped within the "foo" address range). And then we get "b" which is a child of "a", yet the debug info says it has a range of [0x1060-0x1080) (not contained within "a"). We now detect this issue when making our blocks and add an extra range to "a". Also added a new "lldb" logging category named "symbol" where we can find out about symbol file errors and warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140822 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/lldb/Symbol/Block.h2
-rw-r--r--include/lldb/lldb-private-log.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/include/lldb/Symbol/Block.h b/include/lldb/Symbol/Block.h
index 8fabf9540..669861832 100644
--- a/include/lldb/Symbol/Block.h
+++ b/include/lldb/Symbol/Block.h
@@ -97,7 +97,7 @@ public:
/// describes the end address of a range for this block.
//------------------------------------------------------------------
void
- AddRange(lldb::addr_t start_offset, lldb::addr_t end_offset);
+ AddRange (const VMRange& range);
//------------------------------------------------------------------
/// @copydoc SymbolContextScope::CalculateSymbolContext(SymbolContext*)
diff --git a/include/lldb/lldb-private-log.h b/include/lldb/lldb-private-log.h
index 7017fc564..41bbf7a16 100644
--- a/include/lldb/lldb-private-log.h
+++ b/include/lldb/lldb-private-log.h
@@ -39,6 +39,7 @@
#define LIBLLDB_LOG_SCRIPT (1u << 17)
#define LIBLLDB_LOG_COMMANDS (1U << 18)
#define LIBLLDB_LOG_TYPES (1u << 19)
+#define LIBLLDB_LOG_SYMBOLS (1u << 20)
#define LIBLLDB_LOG_ALL (UINT32_MAX)
#define LIBLLDB_LOG_DEFAULT (LIBLLDB_LOG_PROCESS |\
LIBLLDB_LOG_THREAD |\
@@ -47,6 +48,7 @@
LIBLLDB_LOG_WATCHPOINTS |\
LIBLLDB_LOG_STEP |\
LIBLLDB_LOG_STATE |\
+ LIBLLDB_LOG_SYMBOLS |\
LIBLLDB_LOG_COMMANDS)
namespace lldb_private {