[Lldb-commits] Buildbot numbers for the week of 12/10/2017 - 12/16/2017
Hello everyone, Below are some buildbot numbers for the week of 12/10/2017 - 12/16/2017. Please see the same data in attached csv files: The longest time each builder was red during the week; "Status change ratio" by active builder (percent of builds that changed the builder status from greed to red or from red to green); Count of commits by project; Number of completed builds, failed builds and average build time for successful builds per active builder; Average waiting time for a revision to get build result per active builder (response time). Thanks Galina The longest time each builder was red during the week: buildername| was_red ---+- llvm-clang-x86_64-expensive-checks-win| 71:23:24 clang-ppc64le-linux-multistage| 58:28:42 ubuntu-gcc7.1-werror | 51:53:30 sanitizer-x86_64-linux-fuzzer | 39:48:21 clang-x64-ninja-win7 | 34:31:36 clang-ppc64be-linux-multistage| 26:10:41 libcxx-libcxxabi-x86_64-linux-debian | 21:04:30 clang-x86_64-linux-selfhost-modules | 09:52:57 clang-x86_64-linux-selfhost-modules-2 | 09:04:12 clang-cmake-thumbv7-a15-full-sh | 08:05:51 clang-s390x-linux-multistage | 07:23:57 clang-ppc64le-linux-lnt | 06:45:03 sanitizer-ppc64le-linux | 06:23:23 clang-cmake-armv7-a15-full| 06:21:20 clang-cmake-armv7-a15-selfhost-neon | 06:07:52 lldb-windows7-android | 05:52:17 clang-lld-x86_64-2stage | 05:48:48 clang-cmake-armv7-a15-selfhost| 05:41:38 libcxx-libcxxabi-libunwind-arm-linux-noexceptions | 05:02:49 clang-with-lto-ubuntu | 05:02:23 clang-cmake-aarch64-full | 04:58:40 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast| 04:29:56 clang-x86_64-debian-fast | 04:29:10 clang-with-thin-lto-ubuntu| 04:24:14 clang-cmake-aarch64-lld | 04:20:35 libcxx-libcxxabi-libunwind-arm-linux | 04:18:01 sanitizer-x86_64-linux-bootstrap-msan | 04:10:31 lldb-x86_64-darwin-13.4 | 03:59:57 clang-s390x-linux-lnt | 03:41:27 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast | 03:21:04 sanitizer-windows | 03:19:02 lldb-x86-windows-msvc2015 | 03:16:45 lld-x86_64-win7 | 03:16:19 lld-x86_64-darwin13 | 03:11:44 sanitizer-x86_64-linux| 03:11:15 clang-cuda-build | 02:54:23 clang-hexagon-elf | 02:46:24 clang-cmake-x86_64-sde-avx512-linux | 02:34:13 polly-amd64-linux | 02:30:47 llvm-hexagon-elf | 02:21:28 sanitizer-x86_64-linux-bootstrap | 02:16:05 clang-ppc64le-linux | 02:09:57 sanitizer-x86_64-linux-android| 02:09:24 sanitizer-x86_64-linux-fast | 02:06:48 lldb-amd64-ninja-netbsd8 | 02:03:55 sanitizer-x86_64-linux-bootstrap-ubsan| 01:52:28 reverse-iteration | 01:48:52 sanitizer-ppc64be-linux | 01:46:55 lld-x86_64-freebsd| 01:37:59 lldb-x86_64-ubuntu-14.04-buildserver | 01:37:43 clang-atom-d525-fedora-rel| 01:37:40 clang-cmake-x86_64-avx2-linux | 01:34:07 clang-s390x-linux | 01:32:46 clang-cmake-aarch64-quick | 01:29:04 lldb-x86_64-ubuntu-14.04-cmake| 01:25:17 polly-arm-linux | 01:21:49 clang-cmake-thumbv7-a15 | 01:21:01 clang-cmake-armv7-a15 | 01:18:18 clang-cmake-x86_64-avx2-linux-perf| 01:14:32 clang-x86_64-linux-abi-test | 01:13:58 clang-bpf-build | 01:13:08 clang-cmake-aarch64-global-isel | 01:10:36 clang-ppc64be-linux | 01:09:47 clang-ppc64be-linux-lnt | 01:03:14 perf-x86_64-penryn-O3-polly-parallel-fast | 00:56:06 perf-x86_64-penryn-O3-polly-unprofitable | 00:56:00 sanitizer-x86_64-linux-autoconf | 00:39:21 lldb-x86_64-ubuntu-14.04-android | 00:36:04 lldb-amd64-ninja-freebsd11
[Lldb-commits] Buildbot numbers for the week of 12/17/2017 - 12/23/2017
Hello everyone, Below are some buildbot numbers for the last week of 12/17/2017 - 12/23/2017. Please see the same data in attached csv files: The longest time each builder was red during the week; "Status change ratio" by active builder (percent of builds that changed the builder status from greed to red or from red to green); Count of commits by project; Number of completed builds, failed builds and average build time for successful builds per active builder; Average waiting time for a revision to get build result per active builder (response time). Thanks Galina The longest time each builder was red during the week: buildername| was_red --+- llvm-mips-linux | 86:05:19 openmp-ompt-gcc-x86_64-linux-debian | 66:55:04 perf-x86_64-penryn-O3-polly-unprofitable | 65:33:59 llvm-clang-x86_64-expensive-checks-win | 62:57:35 libcxx-libcxxabi-libunwind-x86_64-linux-debian | 32:45:39 reverse-iteration| 31:04:41 sanitizer-ppc64le-linux | 30:24:22 clang-lld-x86_64-2stage | 28:09:44 ubuntu-gcc7.1-werror | 28:06:31 clang-with-lto-ubuntu| 26:34:49 sanitizer-ppc64be-linux | 26:29:44 clang-cmake-aarch64-full | 26:10:16 clang-ppc64le-linux-multistage | 26:00:40 clang-ppc64le-linux-lnt | 25:53:05 clang-with-thin-lto-ubuntu | 25:44:08 clang-ppc64be-linux-multistage | 25:20:38 clang-x86_64-linux-selfhost-modules | 24:50:24 clang-x86_64-linux-selfhost-modules-2| 24:25:47 clang-s390x-linux-multistage | 20:29:52 clang-s390x-linux-lnt| 06:49:34 clang-s390x-linux| 06:48:12 lldb-windows7-android| 06:42:05 clang-bpf-build | 06:25:36 clang-atom-d525-fedora-rel | 04:56:08 clang-cmake-x86_64-avx2-linux| 04:31:15 lldb-amd64-ninja-netbsd8 | 04:15:51 clang-cmake-x86_64-sde-avx512-linux | 04:09:32 clang-ppc64be-linux-lnt | 03:52:55 sanitizer-x86_64-linux-bootstrap-ubsan | 03:51:49 clang-hexagon-elf| 03:47:45 perf-x86_64-penryn-O3-polly-parallel-fast| 03:42:42 clang-x86_64-linux-abi-test | 03:42:23 clang-cuda-build | 03:34:17 clang-x86_64-debian-fast | 03:32:14 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast | 03:30:01 sanitizer-x86_64-linux-bootstrap-msan| 03:26:41 clang-cmake-aarch64-lld | 03:24:50 clang-cmake-armv7-a15-full | 03:23:07 sanitizer-x86_64-linux-fast | 03:16:42 sanitizer-x86_64-linux-bootstrap | 03:15:05 clang-cmake-aarch64-global-isel | 03:04:14 clang-ppc64le-linux | 03:00:02 clang-ppc64be-linux | 02:57:59 llvm-hexagon-elf | 02:47:56 lldb-x86_64-ubuntu-14.04-android | 02:44:54 clang-cmake-thumbv7-a15 | 02:38:17 clang-cmake-armv7-a15| 02:22:38 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast | 02:18:03 clang-cmake-x86_64-avx2-linux-perf | 02:14:43 polly-amd64-linux| 01:49:19 lldb-x86_64-darwin-13.4 | 01:45:44 clang-native-arm-lnt | 01:33:05 sanitizer-x86_64-linux | 01:22:29 sanitizer-x86_64-linux-android | 01:12:38 sanitizer-x86_64-linux-fuzzer| 01:11:16 lld-x86_64-freebsd | 00:59:30 lld-x86_64-win7 | 00:53:01 lldb-x86-windows-msvc2015| 00:47:32 lld-x86_64-darwin13 | 00:44:37 lldb-x86_64-ubuntu-14.04-cmake | 00:27:01 polly-arm-linux | 00:19:47 sanitizer-windows| 00:18:45 lldb-amd64-ninja-freebsd11 | 00:15:35 clang-tools-sphinx-docs | 00:10:08 (64 rows) "Status change ratio" by active builder (percent of builds that changed the builder status from greed to red or from red to green): buildername | builds | changes | status_change_ratio -++-+
[Lldb-commits] [PATCH] D41428: [lldb] This commit adds support to cache a PDB's global scope and fixes a bug in getting the source file name for a compiland
asmith updated this revision to Diff 128312. asmith added a comment. These changes will fix this crash in the current mainline: lldb-test.exe symbols (path-to-your-lldb-exe) Repository: rL LLVM https://reviews.llvm.org/D41428 Files: source/Plugins/SymbolFile/PDB/PDBASTParser.cpp source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp source/Plugins/SymbolFile/PDB/SymbolFilePDB.h Index: source/Plugins/SymbolFile/PDB/SymbolFilePDB.h === --- source/Plugins/SymbolFile/PDB/SymbolFilePDB.h +++ source/Plugins/SymbolFile/PDB/SymbolFilePDB.h @@ -16,6 +16,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/DebugInfo/PDB/IPDBSession.h" #include "llvm/DebugInfo/PDB/PDB.h" +#include "llvm/DebugInfo/PDB/PDBSymbolExe.h" class SymbolFilePDB : public lldb_private::SymbolFile { public: @@ -167,13 +168,14 @@ const llvm::pdb::IPDBSession &GetPDBSession() const; private: - lldb::CompUnitSP ParseCompileUnitForSymIndex(uint32_t id); + lldb::CompUnitSP + ParseCompileUnitForUID(uint32_t id, uint32_t index = UINT32_MAX); bool ParseCompileUnitLineTable(const lldb_private::SymbolContext &sc, uint32_t match_line); void BuildSupportFileIdToSupportFileIndexMap( - const llvm::pdb::PDBSymbolCompiland &cu, + const llvm::pdb::PDBSymbolCompiland &pdb_compiland, llvm::DenseMap &index_map) const; void FindTypesByRegex(const lldb_private::RegularExpression ®ex, @@ -183,11 +185,21 @@ void FindTypesByName(const std::string &name, uint32_t max_matches, lldb_private::TypeMap &types); + void GetCompileUnitIndex(const llvm::pdb::PDBSymbolCompiland *pdb_compiland, + uint32_t &index); + + std::string GetSourceFileNameForPDBCompiland( + const llvm::pdb::PDBSymbolCompiland *pdb_compiland); + + std::unique_ptr + GetPDBCompilandByUID(uint32_t uid); + llvm::DenseMap m_comp_units; llvm::DenseMap m_types; std::vector m_builtin_types; std::unique_ptr m_session_up; + std::unique_ptr m_global_scope_up; uint32_t m_cached_compile_unit_count; std::unique_ptr m_tu_decl_ctx_up; }; Index: source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp === --- source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp +++ source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp @@ -18,6 +18,7 @@ #include "lldb/Symbol/LineTable.h" #include "lldb/Symbol/ObjectFile.h" #include "lldb/Symbol/SymbolContext.h" +#include "lldb/Symbol/SymbolVendor.h" #include "lldb/Symbol/TypeMap.h" #include "lldb/Utility/RegularExpression.h" @@ -43,6 +44,7 @@ #include +using namespace lldb; using namespace lldb_private; using namespace llvm::pdb; @@ -92,7 +94,8 @@ } SymbolFilePDB::SymbolFilePDB(lldb_private::ObjectFile *object_file) -: SymbolFile(object_file), m_cached_compile_unit_count(0) {} +: SymbolFile(object_file), m_session_up(), m_global_scope_up(), + m_cached_compile_unit_count(0), m_tu_decl_ctx_up() {} SymbolFilePDB::~SymbolFilePDB() {} @@ -152,41 +155,95 @@ void SymbolFilePDB::InitializeObject() { lldb::addr_t obj_load_address = m_obj_file->GetFileOffset(); + lldbassert(obj_load_address && + obj_load_address != LLDB_INVALID_ADDRESS); m_session_up->setLoadAddress(obj_load_address); + if (!m_global_scope_up) +m_global_scope_up = m_session_up->getGlobalScope(); + lldbassert(m_global_scope_up.get()); TypeSystem *type_system = GetTypeSystemForLanguage(lldb::eLanguageTypeC_plus_plus); ClangASTContext *clang_type_system = llvm::dyn_cast_or_null(type_system); + lldbassert(clang_type_system); m_tu_decl_ctx_up = llvm::make_unique( type_system, clang_type_system->GetTranslationUnitDecl()); } uint32_t SymbolFilePDB::GetNumCompileUnits() { if (m_cached_compile_unit_count == 0) { -auto global = m_session_up->getGlobalScope(); -auto compilands = global->findAllChildren(); +auto compilands = m_global_scope_up->findAllChildren(); +if (!compilands) + return 0; + +// The linker could link *.dll (compiland language = LINK), or import +// *.dll. For example, a compiland with name `Import:KERNEL32.dll` +// could be found as a child of the global scope (PDB executable). +// Usually, such compilands contain `thunk` symbols in which we are not +// interested for now. However we still count them in the compiland list +// so making access to them by index could be more easier. +// The other reason is that if we perform any compiland related activity, +// like finding symbols through llvm::pdb::IPDBSession methods, +// such compilands will be all searched automatically no matter whether +// we count them in or not. m_cached_compile_unit_count = compilands->getChildCount(); // The linker can inject an additional "dummy" compilation unit into the // PDB. Ignore this spe
[Lldb-commits] [PATCH] D41428: [lldb] This commit adds support to cache a PDB's global scope and fixes a bug in getting the source file name for a compiland
zturner added a comment. Can you add a test with `REQUIRES: windows` that builds a simple program using clang-cl, generates a PDB, and then uses `lldb-test` to check part of the output against that executable? It can be a one line check, basically just proving that it doesn't crash, and we can add more specific tests for certain types of symbols and types later. Repository: rL LLVM https://reviews.llvm.org/D41428 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits