diff options
| author | Greg Clayton <gclayton@apple.com> | 2012-03-30 23:50:54 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2012-03-30 23:50:54 +0000 |
| commit | baf95daa99372d8ceb01c2c4bc9071f2166c3efa (patch) | |
| tree | b3d970a79b3ac62eabeafbe27bf5861f3bc4563e /lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp | |
| parent | 2053398f63ca9236aad28987a0ae574facd40f56 (diff) | |
| download | bcm5719-llvm-baf95daa99372d8ceb01c2c4bc9071f2166c3efa.tar.gz bcm5719-llvm-baf95daa99372d8ceb01c2c4bc9071f2166c3efa.zip | |
Added the ability to log when things get completed in DWARF. This can be enabled using:
(lldb) log enable --verbose lldb completion
This will print out backtraces for all type completion calls which will help us verify that we don't ever complete a type when we don't need to.
llvm-svn: 153787
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp')
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp index 76acd896729..bb11f6461d9 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp @@ -102,14 +102,15 @@ LogChannelDWARF::Disable (const char **categories, Stream *feedback_strm) { const char *arg = categories[i]; - if (::strcasecmp (arg, "all") == 0 ) flag_bits &= ~DWARF_LOG_ALL; - else if (::strcasecmp (arg, "info") == 0 ) flag_bits &= ~DWARF_LOG_DEBUG_INFO; - else if (::strcasecmp (arg, "line") == 0 ) flag_bits &= ~DWARF_LOG_DEBUG_LINE; - else if (::strcasecmp (arg, "pubnames") == 0 ) flag_bits &= ~DWARF_LOG_DEBUG_PUBNAMES; - else if (::strcasecmp (arg, "pubtypes") == 0 ) flag_bits &= ~DWARF_LOG_DEBUG_PUBTYPES; - else if (::strcasecmp (arg, "aranges") == 0 ) flag_bits &= ~DWARF_LOG_DEBUG_ARANGES; - else if (::strcasecmp (arg, "lookups") == 0 ) flag_bits &= ~DWARF_LOG_LOOKUPS; - else if (::strcasecmp (arg, "default") == 0 ) flag_bits &= ~DWARF_LOG_DEFAULT; + if (::strcasecmp (arg, "all") == 0) flag_bits &= ~DWARF_LOG_ALL; + else if (::strcasecmp (arg, "info") == 0) flag_bits &= ~DWARF_LOG_DEBUG_INFO; + else if (::strcasecmp (arg, "line") == 0) flag_bits &= ~DWARF_LOG_DEBUG_LINE; + else if (::strcasecmp (arg, "pubnames") == 0) flag_bits &= ~DWARF_LOG_DEBUG_PUBNAMES; + else if (::strcasecmp (arg, "pubtypes") == 0) flag_bits &= ~DWARF_LOG_DEBUG_PUBTYPES; + else if (::strcasecmp (arg, "aranges") == 0) flag_bits &= ~DWARF_LOG_DEBUG_ARANGES; + else if (::strcasecmp (arg, "lookups") == 0) flag_bits &= ~DWARF_LOG_LOOKUPS; + else if (::strcasecmp (arg, "default") == 0) flag_bits &= ~DWARF_LOG_DEFAULT; + else if (::strncasecmp(arg, "comp", 4) == 0) flag_bits &= ~DWARF_LOG_TYPE_COMPLETION; else { feedback_strm->Printf("error: unrecognized log category '%s'\n", arg); @@ -144,14 +145,15 @@ LogChannelDWARF::Enable { const char *arg = categories[i]; - if (::strcasecmp (arg, "all") == 0 ) flag_bits |= DWARF_LOG_ALL; - else if (::strcasecmp (arg, "info") == 0 ) flag_bits |= DWARF_LOG_DEBUG_INFO; - else if (::strcasecmp (arg, "line") == 0 ) flag_bits |= DWARF_LOG_DEBUG_LINE; - else if (::strcasecmp (arg, "pubnames") == 0 ) flag_bits |= DWARF_LOG_DEBUG_PUBNAMES; - else if (::strcasecmp (arg, "pubtypes") == 0 ) flag_bits |= DWARF_LOG_DEBUG_PUBTYPES; - else if (::strcasecmp (arg, "aranges") == 0 ) flag_bits |= DWARF_LOG_DEBUG_ARANGES; - else if (::strcasecmp (arg, "lookups") == 0 ) flag_bits |= DWARF_LOG_LOOKUPS; - else if (::strcasecmp (arg, "default") == 0 ) flag_bits |= DWARF_LOG_DEFAULT; + if (::strcasecmp (arg, "all") == 0) flag_bits |= DWARF_LOG_ALL; + else if (::strcasecmp (arg, "info") == 0) flag_bits |= DWARF_LOG_DEBUG_INFO; + else if (::strcasecmp (arg, "line") == 0) flag_bits |= DWARF_LOG_DEBUG_LINE; + else if (::strcasecmp (arg, "pubnames") == 0) flag_bits |= DWARF_LOG_DEBUG_PUBNAMES; + else if (::strcasecmp (arg, "pubtypes") == 0) flag_bits |= DWARF_LOG_DEBUG_PUBTYPES; + else if (::strcasecmp (arg, "aranges") == 0) flag_bits |= DWARF_LOG_DEBUG_ARANGES; + else if (::strcasecmp (arg, "lookups") == 0) flag_bits |= DWARF_LOG_LOOKUPS; + else if (::strcasecmp (arg, "default") == 0) flag_bits |= DWARF_LOG_DEFAULT; + else if (::strncasecmp(arg, "comp", 4) == 0) flag_bits |= DWARF_LOG_TYPE_COMPLETION; else { feedback_strm->Printf("error: unrecognized log category '%s'\n", arg); @@ -178,7 +180,8 @@ LogChannelDWARF::ListCategories (Stream *strm) " line - log the parsing if .debug_line\n" " pubnames - log the parsing if .debug_pubnames\n" " pubtypes - log the parsing if .debug_pubtypes\n" - " lookups - log any lookups that happen by name, regex, or address\n\n", + " lookups - log any lookups that happen by name, regex, or address\n\n" + " completion - log struct/unions/class type completions\n\n", SymbolFileDWARF::GetPluginNameStatic()); } |

