[Lldb-commits] [lldb] r253906 - Prevent ProcessGDBRemote from launching local debug server in case of remote debug server connection failure.
Author: ovyalov Date: Mon Nov 23 13:32:24 2015 New Revision: 253906 URL: http://llvm.org/viewvc/llvm-project?rev=253906=rev Log: Prevent ProcessGDBRemote from launching local debug server in case of remote debug server connection failure. http://reviews.llvm.org/D14895 Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=253906=253905=253906=diff == --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Mon Nov 23 13:32:24 2015 @@ -989,12 +989,7 @@ ProcessGDBRemote::DoLaunch (Module *exe_ ObjectFile * object_file = exe_module->GetObjectFile(); if (object_file) { -// Make sure we aren't already connected? -if (!m_gdb_comm.IsConnected()) -{ -error = LaunchAndConnectToDebugserver (launch_info); -} - +error = EstablishConnectionIfNeeded (launch_info); if (error.Success()) { lldb_utility::PseudoTerminal pty; @@ -1374,21 +1369,7 @@ ProcessGDBRemote::DoAttachToProcessWithI Clear(); if (attach_pid != LLDB_INVALID_PROCESS_ID) { -// Make sure we aren't already connected? -if (!m_gdb_comm.IsConnected()) -{ -error = LaunchAndConnectToDebugserver (attach_info); - -if (error.Fail()) -{ -const char *error_string = error.AsCString(); -if (error_string == NULL) -error_string = "unable to launch " DEBUGSERVER_BASENAME; - -SetExitStatus (-1, error_string); -} -} - +error = EstablishConnectionIfNeeded (attach_info); if (error.Success()) { m_gdb_comm.SetDetachOnError(attach_info.GetDetachOnError()); @@ -1398,6 +1379,8 @@ ProcessGDBRemote::DoAttachToProcessWithI SetID (attach_pid); m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncContinue, new EventDataBytes (packet, packet_len)); } +else +SetExitStatus (-1, error.AsCString()); } return error; @@ -1412,21 +1395,7 @@ ProcessGDBRemote::DoAttachToProcessWithN if (process_name && process_name[0]) { -// Make sure we aren't already connected? -if (!m_gdb_comm.IsConnected()) -{ -error = LaunchAndConnectToDebugserver (attach_info); - -if (error.Fail()) -{ -const char *error_string = error.AsCString(); -if (error_string == NULL) -error_string = "unable to launch " DEBUGSERVER_BASENAME; - -SetExitStatus (-1, error_string); -} -} - +error = EstablishConnectionIfNeeded (attach_info); if (error.Success()) { StreamString packet; @@ -1455,6 +1424,8 @@ ProcessGDBRemote::DoAttachToProcessWithN m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncContinue, new EventDataBytes (packet.GetData(), packet.GetSize())); } +else +SetExitStatus (-1, error.AsCString()); } return error; } @@ -3541,6 +3512,27 @@ ProcessGDBRemote::DoSignal (int signo) return error; } +Error +ProcessGDBRemote::EstablishConnectionIfNeeded (const ProcessInfo _info) +{ +// Make sure we aren't already connected? +if (m_gdb_comm.IsConnected()) +return Error(); + +PlatformSP platform_sp (GetTarget ().GetPlatform ()); +if (platform_sp && !platform_sp->IsHost ()) +return Error("Lost debug server connection"); + +auto error = LaunchAndConnectToDebugserver (process_info); +if (error.Fail()) +{ +const char *error_string = error.AsCString(); +if (error_string == nullptr) +error_string = "unable to launch " DEBUGSERVER_BASENAME; +} +return error; +} + Error ProcessGDBRemote::LaunchAndConnectToDebugserver (const ProcessInfo _info) { Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h?rev=253906=253905=253906=diff == --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Mon Nov 23 13:32:24 2015 @@ -354,6 +354,9 @@ protected: ThreadList _thread_list) override; Error +EstablishConnectionIfNeeded (const ProcessInfo
Re: [Lldb-commits] [PATCH] D14895: Prevent ProcessGDBRemote from launching local debug server in case of remote debug server connection failure
ovyalov closed this revision. ovyalov added a comment. Files: /lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp /lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Users: ovyalov (Author) http://reviews.llvm.org/rL253906 http://reviews.llvm.org/D14895 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] LLVM buildmaster will be restarted tonight
Hello everyone, LLVM buildmaster will be updated restarted after 7 PM Pacific time today. Thanks Galina ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D10247: Fix crash when cu_comp_dir parameter to DWARFDebugLine::ParseSupportFiles() is an empty string
ted abandoned this revision. ted added a comment. Handled by another patch http://reviews.llvm.org/D10247 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] Define new builder_netbsd
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 For the reference, there was availability outage during this weekend on reviews.llvm.org. I was suggested to send a patch to this mailing list as a fall-back. Please review and merge with the LLDB sources. On 22.11.2015 17:23, Kamil Rytarowski via lldb-commits wrote: > --- packages/Python/lldbsuite/test/lldbtest.py | 2 > ++ packages/Python/lldbsuite/test/plugins/builder_netbsd.py | 4 > 2 files changed, 6 insertions(+) create mode 100644 > packages/Python/lldbsuite/test/plugins/builder_netbsd.py > > diff --git a/packages/Python/lldbsuite/test/lldbtest.py > b/packages/Python/lldbsuite/test/lldbtest.py index 2301616..8e648eb > 100644 --- a/packages/Python/lldbsuite/test/lldbtest.py +++ > b/packages/Python/lldbsuite/test/lldbtest.py @@ -430,6 +430,8 @@ > def getsource_if_available(obj): def builder_module(): if > sys.platform.startswith("freebsd"): return > __import__("builder_freebsd") +if > sys.platform.startswith("netbsd"): +return > __import__("builder_netbsd") return __import__("builder_" + > sys.platform) > > def run_adb_command(cmd, device_id): diff --git > a/packages/Python/lldbsuite/test/plugins/builder_netbsd.py > b/packages/Python/lldbsuite/test/plugins/builder_netbsd.py new file > mode 100644 index 000..e56be42 --- /dev/null +++ > b/packages/Python/lldbsuite/test/plugins/builder_netbsd.py @@ -0,0 > +1,4 @@ +from builder_base import * + +def buildDsym(sender=None, > architecture=None, compiler=None, dictionary=None, clean=True): + > return False > -BEGIN PGP SIGNATURE- Version: GnuPG v2 iQIcBAEBCAAGBQJWUviQAAoJEEuzCOmwLnZsKGAP/1iKQbD+07c29aMT3ESV3cRn HNXUe0DI7T2v/Qdoi1wIOvRjsu+FCKKTRnM15IKYJa9qrn9Hxl+yP8HAQ/1XDpbH DpIP1knLEULoWYLH+KYoam6K4nD0fPuTvYYSguyCGj811nBeIxxPMBIKIT6nLsDO XjFn/yAsWXxCJtpzJ55gkqPdAKxhampxt39OvV/nQM6NcEzqNWAlNKvmvXpIV3OA bhYqcRkFXRffGoeAUrPVLvDFbfJDQ7pc6WZE/EgIlVr4QqPpUQNqcFPyYnZemcgV GGpmcfRAZwDY0FFO6aWyfAMqC1R1lQ18OGCxEDNdwS8tss+nDpl8+17vtwIe2oFQ E4DD888WpHizF9Rs/uJtNh1M2FWkQf/M4gMhjyUpWRpShr5Y29YfL92UrK/Mfi1o e9/zH3MRgvJdS7N0Mxi9nr1O0ir/zHUltwSCTpTa5ikdo72ePpUB3qnd2403Mc9R DvWGw3KOm7eB0ModRcJAn+gAp42hnzkaa3hTuPijUmZJa9K/auOsLLoa+Kvo/zKe g0SZpnmbszvhCUyBzahaoTk+hNS17bpFlZTNzWU6oFjH/hL3C9fFHQ0aD+Cf4VWv ll7QwH4o3eLpZrKIWuk163n73zoTregda8VT75s4tws90tA+sDAloeu3QBYbc2qY JWlIeePx5Q0PghwpwyOP =god9 -END PGP SIGNATURE- ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D14823: Disable forcing -marm (A32 instruction set) while running testsuite on arm targets.
omjavaid added a comment. I agree with you on having multiple configuration options to help identify failures in different configurations. What I mean is that we should keep clarity on architecture that is to use arm or aarch32 for 32bit and aarch64 for 64bit. With that we should run tests in default configurations which compiler is offering that means not to use any -m(arch) flag. This will help us Xfail based on architecture in default configuration. Additional config option that we ll add later can take up values to test some additional flags specifying ABI and ISA features like thumb, nothumb, interwork, vfp, neon, soft float, hard float etc. We can then xfail if something fails based on these additional feature. http://reviews.llvm.org/D14823 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D14860: [LLDB][MIPS] Getting 0 index for h/w watchpoint is not necessarily an error
jaydeep accepted this revision. jaydeep added a comment. This revision is now accepted and ready to land. Looks good to me. Repository: rL LLVM http://reviews.llvm.org/D14860 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D14895: Prevent ProcessGDBRemote from launching local debug server in case of remote debug server connection failure
labath accepted this revision. labath added a comment. This revision is now accepted and ready to land. Nice catch. Looks good. Comment at: source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:3516 @@ -3544,1 +3515,3 @@ Error +ProcessGDBRemote::CheckDebugserverConnection (const ProcessInfo _info) +{ I find this name somewhat misleading. `Check` would generally imply a read-only operation, but this actually establishes the connection in some circumstances. I'd go for `EstablishConnectionIfNeeded` or something like that. http://reviews.llvm.org/D14895 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D14904: Document NetBSD platform support on the webpage
labath added a subscriber: labath. Comment at: www/build.html:345 @@ -344,3 +352,1 @@ - LLDB has a Python scripting capability and supplies its own Python module named lldb. - If a script is run inside the command line lldb application, the Python module I don't think you meant to delete this. Repository: rL LLVM http://reviews.llvm.org/D14904 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D14633: [LLDB][MIPS] Clear bug 25194 - LLDB-Server Assertion raised when single stepping on MIPS
sagar added a comment. Hi, Could we use SetBytes for now for clearing the bug 25194? I have tried using SetBytes(), it does not cause any issue on MIPS for both endian. Once we have a new function to llvm::APInt to access actual data I will revert back to using SetUInt. Kindly let me know if you agree with this. Regards, Sagar Repository: rL LLVM http://reviews.llvm.org/D14633 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D14937: swig_bot remote path preliminary implementation
zturner created this revision. zturner added a reviewer: tfiala. zturner added a subscriber: lldb-commits. With this patch, the client will package up all the required inputs into a compressed zip file, establish a connection to the server, send the input to the server, and wait for the server to send a response (in this case the response is just echoed back to the client). This gets the network communication in place, and in a subsequent patch I will follow up with the code that actually runs swig on the server and sends back the output instead of echoing back the input. http://reviews.llvm.org/D14937 Files: scripts/swig_bot.py scripts/swig_bot_lib/client.py scripts/swig_bot_lib/local.py scripts/swig_bot_lib/server.py Index: scripts/swig_bot_lib/server.py === --- scripts/swig_bot_lib/server.py +++ scripts/swig_bot_lib/server.py @@ -1,6 +1,79 @@ #!/usr/bin/env python +""" +SWIG generation server. Listens for connections from swig generation clients +and runs swig in the requested fashion, sending back the results. +""" + # Future imports from __future__ import absolute_import from __future__ import print_function +# Python modules +import argparse +import logging +import os +import socket +import struct +import sys +import traceback + +# LLDB modules +import use_lldb_suite + +# package imports +from . import local + +default_port = 8537 + +def process_args(args): +# Setup the parser arguments that are accepted. +parser = argparse.ArgumentParser(description='SWIG generation server.') + +parser.add_argument( +"--port", +action="store", +default=default_port, +help=("The local port to bind to")) + +# Process args. +return parser.parse_args(args) + +def initialize_listening_socket(options): +logging.debug("Creating socket...") +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + +logging.info("Binding to ip address '', port {}".format(options.port)) +s.bind(('', options.port)) + +logging.debug("Putting socket in listen mode...") +s.listen() +return s + +def accept_once(sock, options): +logging.debug("Waiting for connection...") +client, addr = sock.accept() +logging.info("Received connection from {}".format(addr)) +data_size = struct.unpack("!I", client.recv(4))[0] +logging.debug("Expecting {} bytes of data from client".format(data_size)) +data = client.recv(data_size) +logging.info("Received {} bytes of data from client".format(len(data))) + +logging.info("Sending {} byte response".format(len(data))) +client.sendall(struct.pack("!I", len(data))) +client.sendall(data) + +def accept_loop(sock, options): +while True: +try: +accept_once(sock, options) +except Exception as e: +error = traceback.format_exc() +logging.error("An error occurred while processing the connection.") +logging.error(error) + +def run(args): +options = process_args(args) +sock = initialize_listening_socket(options) +accept_loop(sock, options) +return options Index: scripts/swig_bot_lib/local.py === --- scripts/swig_bot_lib/local.py +++ scripts/swig_bot_lib/local.py @@ -1,5 +1,10 @@ #!/usr/bin/env python +""" +Shared functionality used by `client` and `server` when generating or preparing +to generate SWIG on the local machine. +""" + # Future imports from __future__ import absolute_import from __future__ import print_function @@ -7,14 +12,57 @@ # Python modules import argparse import imp +import io import logging import os import subprocess import sys +import zipfile # LLDB modules import use_lldb_suite +def pack_input(options): +logging.info("Creating input file package...") +zip_data = io.BytesIO() +zip_file = None +try: +# It's possible that a custom-built interpreter will not have the +# standard zlib module. If so, we can only store, not compress. By +# try to compress since we usually have a standard Python distribution. +zip_file = zipfile.ZipFile(zip_data, mode='w', + compression=zipfile.ZIP_DEFLATED) +except RuntimeError: +zip_file = zipfile.ZipFile(zip_data, mode='w', + compression=zipfile.ZIP_STORED) + +filters = [("include/lldb", ".h"), + ("scripts", ".swig"), + ("scripts/Python", ".swig"), + ("scripts/interface", ".i")] +def filter_func(t): +subfolder = t[0] +ext = t[1] +full_path = os.path.normpath(os.path.join(options.src_root, subfolder)) +candidates = [os.path.normpath(os.path.join(full_path, f)) + for f in os.listdir(full_path)] +actual = filter( +lambda f :
Re: [Lldb-commits] [PATCH] D14937: swig_bot remote path preliminary implementation
zturner updated this revision to Diff 40991. zturner added a comment. `socket.recv` doesn't guarantee a full read. The data can be truncated if it could not be read all at once. This patch fixes this by introducing a helper function in `lldbsuite.support` to read an exact number of bytes, retrying as necessary until it's complete. Then both the client and server are updated to use this function instead of `socket.recv` http://reviews.llvm.org/D14937 Files: packages/Python/lldbsuite/support/sockutil.py scripts/swig_bot.py scripts/swig_bot_lib/client.py scripts/swig_bot_lib/local.py scripts/swig_bot_lib/server.py Index: scripts/swig_bot_lib/server.py === --- scripts/swig_bot_lib/server.py +++ scripts/swig_bot_lib/server.py @@ -1,6 +1,80 @@ #!/usr/bin/env python +""" +SWIG generation server. Listens for connections from swig generation clients +and runs swig in the requested fashion, sending back the results. +""" + # Future imports from __future__ import absolute_import from __future__ import print_function +# Python modules +import argparse +import logging +import os +import socket +import struct +import sys +import traceback + +# LLDB modules +import use_lldb_suite +from lldbsuite.support import sockutil + +# package imports +from . import local + +default_port = 8537 + +def process_args(args): +# Setup the parser arguments that are accepted. +parser = argparse.ArgumentParser(description='SWIG generation server.') + +parser.add_argument( +"--port", +action="store", +default=default_port, +help=("The local port to bind to")) + +# Process args. +return parser.parse_args(args) + +def initialize_listening_socket(options): +logging.debug("Creating socket...") +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + +logging.info("Binding to ip address '', port {}".format(options.port)) +s.bind(('', options.port)) + +logging.debug("Putting socket in listen mode...") +s.listen() +return s + +def accept_once(sock, options): +logging.debug("Waiting for connection...") +client, addr = sock.accept() +logging.info("Received connection from {}".format(addr)) +data_size = struct.unpack("!I", sockutil.recvall(client, 4))[0] +logging.debug("Expecting {} bytes of data from client".format(data_size)) +data = sockutil.recvall(client, data_size) +logging.info("Received {} bytes of data from client".format(len(data))) + +logging.info("Sending {} byte response".format(len(data))) +client.sendall(struct.pack("!I", len(data))) +client.sendall(data) + +def accept_loop(sock, options): +while True: +try: +accept_once(sock, options) +except Exception as e: +error = traceback.format_exc() +logging.error("An error occurred while processing the connection.") +logging.error(error) + +def run(args): +options = process_args(args) +sock = initialize_listening_socket(options) +accept_loop(sock, options) +return options Index: scripts/swig_bot_lib/local.py === --- scripts/swig_bot_lib/local.py +++ scripts/swig_bot_lib/local.py @@ -1,5 +1,10 @@ #!/usr/bin/env python +""" +Shared functionality used by `client` and `server` when generating or preparing +to generate SWIG on the local machine. +""" + # Future imports from __future__ import absolute_import from __future__ import print_function @@ -7,14 +12,57 @@ # Python modules import argparse import imp +import io import logging import os import subprocess import sys +import zipfile # LLDB modules import use_lldb_suite +def pack_input(options): +logging.info("Creating input file package...") +zip_data = io.BytesIO() +zip_file = None +try: +# It's possible that a custom-built interpreter will not have the +# standard zlib module. If so, we can only store, not compress. By +# try to compress since we usually have a standard Python distribution. +zip_file = zipfile.ZipFile(zip_data, mode='w', + compression=zipfile.ZIP_DEFLATED) +except RuntimeError: +zip_file = zipfile.ZipFile(zip_data, mode='w', + compression=zipfile.ZIP_STORED) + +filters = [("include/lldb", ".h"), + ("scripts", ".swig"), + ("scripts/Python", ".swig"), + ("scripts/interface", ".i")] +def filter_func(t): +subfolder = t[0] +ext = t[1] +full_path = os.path.normpath(os.path.join(options.src_root, subfolder)) +candidates = [os.path.normpath(os.path.join(full_path, f)) + for f in os.listdir(full_path)] +actual = filter( +lambda f : os.path.isfile(f) and os.path.splitext(f)[1] == ext, +candidates) +
[Lldb-commits] Some buildbot statistics for week of 11/15/2015 - 11/21/2015
Hello everyone, Below are some buildbot numbers for the last week of 11/15/2015 - 11/21/2015. Thanks Galina Number of commits by project: project | commits ---+--- llvm | 265 cfe | 110 lldb |58 compiler-rt |54 lld |26 libcxx|10 clang-tools-extra | 8 openmp| 3 polly | 1 libcxxabi | 1 ---+--- 536 Number of completed builds, failed builds and average build time for successful builds per active builder: buildername | completed | failed | time - clang-aarch64-lnt | 53 | 6 | 02:40:15.18 clang-atom-d525-fedora| 21 || 07:14:59.173913 clang-atom-d525-fedora-rel| 65 | 4 | 02:02:15.887097 clang-bpf-build |305 | 8 | 00:03:16.44 clang-cmake-aarch64-42vma |280 | 25 | 00:17:52.3125 clang-cmake-aarch64-quick |213 | 24 | 00:26:25.294737 clang-cmake-armv7-a15 |214 | 5 | 00:27:35.090047 clang-cmake-armv7-a15-full|148 | 5 | 00:50:27.543624 clang-cmake-armv7-a15-selfhost| 32 || 04:35:18.815789 clang-cmake-armv7-a15-selfhost-neon | 25 || 05:55:48.655172 clang-cmake-mips |166 | 49 | 00:34:56.016807 clang-cmake-thumbv7-a15 |194 | 5 | 00:33:18.020942 clang-cmake-thumbv7-a15-full-sh | 20 || 07:05:34.65625 clang-hexagon-elf |178 | 17 | 00:15:15.339506 clang-native-aarch64-full | 10 | 4 | 11:35:13.428572 clang-native-arm-lnt |102 || 01:19:37.824074 clang-native-arm-lnt-perf | 15 || 09:36:24.67 clang-ppc64-elf-linux |124 | 3 | 01:01:54.130081 clang-ppc64-elf-linux2| 86 | 7 | 01:35:15.481481 clang-sphinx-docs | 79 || 00:00:20.690476 clang-x64-ninja-win7 |206 | 80 | 00:25:13.716535 clang-x86-win2008-selfhost|150 | 14 | 00:41:25.621429 clang-x86_64-darwin13-cross-arm |240 | 2 | 00:19:46.411765 clang-x86_64-darwin13-cross-mingw32 |226 | 3 | 00:23:14.026906 clang-x86_64-debian-fast | 99 | 11 | 00:10:49.21 clang-x86_64-linux-abi-test |307 | 11 | 00:18:46.837838 clang-x86_64-linux-selfhost-modules |267 | 23 | 00:15:56.662602 clang-x86_64-ubuntu-gdb-75|138 | 5 | 00:52:25.182482 libcxx-libcxxabi-arm-linux| 11 | 1 | 01:09:49.6 libcxx-libcxxabi-singlethreaded-x86_64-linux-debian | 3 || 00:08:16.33 libcxx-libcxxabi-x86_64-linux-debian | 3 || 00:08:41.33 libcxx-libcxxabi-x86_64-linux-debian-noexceptions | 3 || 00:08:18.33 libcxx-libcxxabi-x86_64-linux-ubuntu-asan | 10 | 1 | 00:07:25.56 libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03| 10 | 1 | 00:04:56.33 libcxx-libcxxabi-x86_64-linux-ubuntu-cxx11| 11 | 1 | 00:05:11.5 libcxx-libcxxabi-x86_64-linux-ubuntu-cxx14| 11 | 1 | 00:05:25.3 libcxx-libcxxabi-x86_64-linux-ubuntu-cxx1z| 10 | 1 | 00:05:45.11 libcxx-libcxxabi-x86_64-linux-ubuntu-msan | 11 | 1 | 00:14:27.2 libcxx-libcxxabi-x86_64-linux-ubuntu-tsan | 11 | 1 | 00:11:57.5
Re: [Lldb-commits] Some buildbot statistics for the last week
Permanently failing bots are way better that 50/50 flaky bots, but still not good. As for the sanitizer-x86_64-linux-bootstrap, it shows some legitimate failures in different parts of llvm that no one bothered to fix. That's kinda understandable because MSan failures are hard to reproduce locally (one needs to do a full bootstrap, including libc++/libc++abi built w/ MSan), and FileCheck tends to show only part of the report. On Wed, Nov 18, 2015 at 10:43 AM, Aaron Ballman via llvm-commitswrote: > On Wed, Nov 18, 2015 at 1:40 PM, Galina Kistanova via cfe-commits > wrote: >> Hello everyone, >> >> Here are some buildbot statistics you may found interesting. I will be >> adding more statistics. >> My goal is to publish metrics to help with keeping the buildbot >> infrastructure healthy and improving it. > > Thank you for tracking and reporting this information, that's fantastic! > >> >> All the numbers are for the week of 11/8/2015 - 11/14/2015. >> >> Thanks >> >> Galina >> >> >> >> Number of commits by project: >> >> project | commits >> - >> llvm | 286 >> cfe | 109 >> lldb |76 >> compiler-rt |71 >> polly|42 >> lld |38 >> libcxx |10 >> openmp | 9 >> clang-tools-extra| 7 >> clang-tests-external | 2 >> libunwind| 1 >> - >> 651 >> >> >> Number of completed builds, failed builds and average build time for >> successful builds per active builder: >> >> buildername | completed | >> failed | time >> - >> clang-aarch64-lnt | 57 | >> 3 | 02:30:12 >> clang-atom-d525-fedora| 18 | >> | 08:28:15 >> clang-atom-d525-fedora-rel| 83 | >> 5 | 01:29:55 >> clang-bpf-build |310 | >> 31 | 00:02:53 >> clang-cmake-aarch64-42vma |278 | >> 49 | 00:16:47 >> clang-cmake-aarch64-quick |209 | >> 29 | 00:23:46 >> clang-cmake-armv7-a15 |189 | >> 8 | 00:25:27 >> clang-cmake-armv7-a15-full|154 | >> 38 | 00:45:32 >> clang-cmake-armv7-a15-selfhost| 58 | >> 24 | 03:00:19 >> clang-cmake-armv7-a15-selfhost-neon | 45 | >> 22 | 04:26:31 >> clang-cmake-mips |186 | >> 38 | 00:28:52 >> clang-cmake-thumbv7-a15 |178 | >> 7 | 00:28:30 >> clang-cmake-thumbv7-a15-full-sh | 32 | >> 23 | 06:03:05 >> clang-hexagon-elf |169 | >> 23 | 00:24:42 >> clang-native-aarch64-full | 24 | >> 8 | 05:53:35 >> clang-native-arm-lnt | 90 | >> 3 | 01:06:01 >> clang-native-arm-lnt-perf | 14 | >> | 08:57:04 >> clang-ppc64-elf-linux |120 | >> 6 | 01:01:02 >> clang-ppc64-elf-linux2| 89 | >> 24 | 01:29:49 >> clang-sphinx-docs |113 | >> | 00:00:20 >> clang-x64-ninja-win7 |285 | >> 58 | 00:09:49 >> clang-x86-win2008-selfhost|268 | >> 46 | 00:12:10 >> clang-x86_64-darwin13-cross-arm |232 | >> 1 | 00:19:45 >> clang-x86_64-darwin13-cross-mingw32 |217 | >> 12 | 00:23:20 >> clang-x86_64-debian-fast |147 | >> 12 | 00:11:37 >> clang-x86_64-linux-abi-test |314 | >> 1 | 00:18:39 >> clang-x86_64-linux-selfhost-modules |261 | >> 25 | 00:15:02 >> clang-x86_64-ubuntu-gdb-75|124 | >> 62 | 00:53:12 >> libcxx-libcxxabi-arm-linux| 8 | >> | 01:05:10 >> libcxx-libcxxabi-singlethreaded-x86_64-linux-debian | 11 | >> 2 | 00:08:50 >> libcxx-libcxxabi-x86_64-linux-debian | 11 | >> 4 | 00:09:43 >>
Re: [Lldb-commits] Some buildbot statistics for the last week
On Wed, Nov 18, 2015 at 1:40 PM, Galina Kistanova via cfe-commitswrote: > Hello everyone, > > Here are some buildbot statistics you may found interesting. I will be > adding more statistics. > My goal is to publish metrics to help with keeping the buildbot > infrastructure healthy and improving it. Thank you for tracking and reporting this information, that's fantastic! > > All the numbers are for the week of 11/8/2015 - 11/14/2015. > > Thanks > > Galina > > > > Number of commits by project: > > project | commits > - > llvm | 286 > cfe | 109 > lldb |76 > compiler-rt |71 > polly|42 > lld |38 > libcxx |10 > openmp | 9 > clang-tools-extra| 7 > clang-tests-external | 2 > libunwind| 1 > - > 651 > > > Number of completed builds, failed builds and average build time for > successful builds per active builder: > > buildername | completed | > failed | time > - > clang-aarch64-lnt | 57 | > 3 | 02:30:12 > clang-atom-d525-fedora| 18 | > | 08:28:15 > clang-atom-d525-fedora-rel| 83 | > 5 | 01:29:55 > clang-bpf-build |310 | > 31 | 00:02:53 > clang-cmake-aarch64-42vma |278 | > 49 | 00:16:47 > clang-cmake-aarch64-quick |209 | > 29 | 00:23:46 > clang-cmake-armv7-a15 |189 | > 8 | 00:25:27 > clang-cmake-armv7-a15-full|154 | > 38 | 00:45:32 > clang-cmake-armv7-a15-selfhost| 58 | > 24 | 03:00:19 > clang-cmake-armv7-a15-selfhost-neon | 45 | > 22 | 04:26:31 > clang-cmake-mips |186 | > 38 | 00:28:52 > clang-cmake-thumbv7-a15 |178 | > 7 | 00:28:30 > clang-cmake-thumbv7-a15-full-sh | 32 | > 23 | 06:03:05 > clang-hexagon-elf |169 | > 23 | 00:24:42 > clang-native-aarch64-full | 24 | > 8 | 05:53:35 > clang-native-arm-lnt | 90 | > 3 | 01:06:01 > clang-native-arm-lnt-perf | 14 | > | 08:57:04 > clang-ppc64-elf-linux |120 | > 6 | 01:01:02 > clang-ppc64-elf-linux2| 89 | > 24 | 01:29:49 > clang-sphinx-docs |113 | > | 00:00:20 > clang-x64-ninja-win7 |285 | > 58 | 00:09:49 > clang-x86-win2008-selfhost|268 | > 46 | 00:12:10 > clang-x86_64-darwin13-cross-arm |232 | > 1 | 00:19:45 > clang-x86_64-darwin13-cross-mingw32 |217 | > 12 | 00:23:20 > clang-x86_64-debian-fast |147 | > 12 | 00:11:37 > clang-x86_64-linux-abi-test |314 | > 1 | 00:18:39 > clang-x86_64-linux-selfhost-modules |261 | > 25 | 00:15:02 > clang-x86_64-ubuntu-gdb-75|124 | > 62 | 00:53:12 > libcxx-libcxxabi-arm-linux| 8 | > | 01:05:10 > libcxx-libcxxabi-singlethreaded-x86_64-linux-debian | 11 | > 2 | 00:08:50 > libcxx-libcxxabi-x86_64-linux-debian | 11 | > 4 | 00:09:43 > libcxx-libcxxabi-x86_64-linux-debian-noexceptions | 5 | > 2 | 00:09:24 > libcxx-libcxxabi-x86_64-linux-ubuntu-asan | 10 | > 2 | 00:08:22 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03| 10 | > | 00:05:12 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx11| 10 | > | 00:06:19 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx14| 9 | > | 00:06:56 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx1z| 10 | > 2 | 00:06:06 > libcxx-libcxxabi-x86_64-linux-ubuntu-msan | 10 | > 2 | 00:17:00 >
Re: [Lldb-commits] Some buildbot statistics for week of 11/15/2015 - 11/21/2015
In the future can you also attach the data in CSV format? On Mon, Nov 23, 2015 at 3:46 PM, Galina Kistanova via cfe-commits < cfe-comm...@lists.llvm.org> wrote: > Hello everyone, > > Below are some buildbot numbers for the last week of 11/15/2015 - > 11/21/2015. > > Thanks > > Galina > > > > Number of commits by project: > > project | commits > ---+--- > llvm | 265 > cfe | 110 > lldb |58 > compiler-rt |54 > lld |26 > libcxx|10 > clang-tools-extra | 8 > openmp| 3 > polly | 1 > libcxxabi | 1 > ---+--- >536 > > > Number of completed builds, failed builds and average build time for > successful builds per active builder: > > buildername | completed | > failed | time > > - > clang-aarch64-lnt | 53 > | 6 | 02:40:15.18 > clang-atom-d525-fedora| 21 > || 07:14:59.173913 > clang-atom-d525-fedora-rel| 65 > | 4 | 02:02:15.887097 > clang-bpf-build |305 > | 8 | 00:03:16.44 > clang-cmake-aarch64-42vma |280 > | 25 | 00:17:52.3125 > clang-cmake-aarch64-quick |213 > | 24 | 00:26:25.294737 > clang-cmake-armv7-a15 |214 > | 5 | 00:27:35.090047 > clang-cmake-armv7-a15-full|148 > | 5 | 00:50:27.543624 > clang-cmake-armv7-a15-selfhost| 32 > || 04:35:18.815789 > clang-cmake-armv7-a15-selfhost-neon | 25 > || 05:55:48.655172 > clang-cmake-mips |166 > | 49 | 00:34:56.016807 > clang-cmake-thumbv7-a15 |194 > | 5 | 00:33:18.020942 > clang-cmake-thumbv7-a15-full-sh | 20 > || 07:05:34.65625 > clang-hexagon-elf |178 > | 17 | 00:15:15.339506 > clang-native-aarch64-full | 10 > | 4 | 11:35:13.428572 > clang-native-arm-lnt |102 > || 01:19:37.824074 > clang-native-arm-lnt-perf | 15 > || 09:36:24.67 > clang-ppc64-elf-linux |124 > | 3 | 01:01:54.130081 > clang-ppc64-elf-linux2| 86 > | 7 | 01:35:15.481481 > clang-sphinx-docs | 79 > || 00:00:20.690476 > clang-x64-ninja-win7 |206 > | 80 | 00:25:13.716535 > clang-x86-win2008-selfhost|150 > | 14 | 00:41:25.621429 > clang-x86_64-darwin13-cross-arm |240 > | 2 | 00:19:46.411765 > clang-x86_64-darwin13-cross-mingw32 |226 > | 3 | 00:23:14.026906 > clang-x86_64-debian-fast | 99 > | 11 | 00:10:49.21 > clang-x86_64-linux-abi-test |307 > | 11 | 00:18:46.837838 > clang-x86_64-linux-selfhost-modules |267 > | 23 | 00:15:56.662602 > clang-x86_64-ubuntu-gdb-75|138 > | 5 | 00:52:25.182482 > libcxx-libcxxabi-arm-linux| 11 > | 1 | 01:09:49.6 > libcxx-libcxxabi-singlethreaded-x86_64-linux-debian | 3 > || 00:08:16.33 > libcxx-libcxxabi-x86_64-linux-debian | 3 > || 00:08:41.33 > libcxx-libcxxabi-x86_64-linux-debian-noexceptions | 3 > || 00:08:18.33 > libcxx-libcxxabi-x86_64-linux-ubuntu-asan | 10 > | 1 | 00:07:25.56 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03| 10 > | 1 | 00:04:56.33 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx11| 11 > | 1 | 00:05:11.5 > libcxx-libcxxabi-x86_64-linux-ubuntu-cxx14
Re: [Lldb-commits] [PATCH] D14823: Disable forcing -marm (A32 instruction set) while running testsuite on arm targets.
tberghammer accepted this revision. tberghammer added a comment. I agree with your suggestion to make this the default config and then add a new option where we can specify additional target specific options and then skip/xfail tests based on that. http://reviews.llvm.org/D14823 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
Re: [Lldb-commits] [PATCH] D14895: Prevent ProcessGDBRemote from launching local debug server in case of remote debug server connection failure
ovyalov updated this revision to Diff 40948. ovyalov added a comment. Addressed review comments - renamed the method to EstablishConnectionIfNeeded. http://reviews.llvm.org/D14895 Files: source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Index: source/Plugins/Process/gdb-remote/ProcessGDBRemote.h === --- source/Plugins/Process/gdb-remote/ProcessGDBRemote.h +++ source/Plugins/Process/gdb-remote/ProcessGDBRemote.h @@ -354,6 +354,9 @@ ThreadList _thread_list) override; Error +EstablishConnectionIfNeeded (const ProcessInfo _info); + +Error LaunchAndConnectToDebugserver (const ProcessInfo _info); void Index: source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp === --- source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -989,12 +989,7 @@ ObjectFile * object_file = exe_module->GetObjectFile(); if (object_file) { -// Make sure we aren't already connected? -if (!m_gdb_comm.IsConnected()) -{ -error = LaunchAndConnectToDebugserver (launch_info); -} - +error = EstablishConnectionIfNeeded (launch_info); if (error.Success()) { lldb_utility::PseudoTerminal pty; @@ -1374,21 +1369,7 @@ Clear(); if (attach_pid != LLDB_INVALID_PROCESS_ID) { -// Make sure we aren't already connected? -if (!m_gdb_comm.IsConnected()) -{ -error = LaunchAndConnectToDebugserver (attach_info); - -if (error.Fail()) -{ -const char *error_string = error.AsCString(); -if (error_string == NULL) -error_string = "unable to launch " DEBUGSERVER_BASENAME; - -SetExitStatus (-1, error_string); -} -} - +error = EstablishConnectionIfNeeded (attach_info); if (error.Success()) { m_gdb_comm.SetDetachOnError(attach_info.GetDetachOnError()); @@ -1398,6 +1379,8 @@ SetID (attach_pid); m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncContinue, new EventDataBytes (packet, packet_len)); } +else +SetExitStatus (-1, error.AsCString()); } return error; @@ -1412,21 +1395,7 @@ if (process_name && process_name[0]) { -// Make sure we aren't already connected? -if (!m_gdb_comm.IsConnected()) -{ -error = LaunchAndConnectToDebugserver (attach_info); - -if (error.Fail()) -{ -const char *error_string = error.AsCString(); -if (error_string == NULL) -error_string = "unable to launch " DEBUGSERVER_BASENAME; - -SetExitStatus (-1, error_string); -} -} - +error = EstablishConnectionIfNeeded (attach_info); if (error.Success()) { StreamString packet; @@ -1455,6 +1424,8 @@ m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncContinue, new EventDataBytes (packet.GetData(), packet.GetSize())); } +else +SetExitStatus (-1, error.AsCString()); } return error; } @@ -3542,6 +3513,27 @@ } Error +ProcessGDBRemote::EstablishConnectionIfNeeded (const ProcessInfo _info) +{ +// Make sure we aren't already connected? +if (m_gdb_comm.IsConnected()) +return Error(); + +PlatformSP platform_sp (GetTarget ().GetPlatform ()); +if (platform_sp && !platform_sp->IsHost ()) +return Error("Lost debug server connection"); + +auto error = LaunchAndConnectToDebugserver (process_info); +if (error.Fail()) +{ +const char *error_string = error.AsCString(); +if (error_string == nullptr) +error_string = "unable to launch " DEBUGSERVER_BASENAME; +} +return error; +} + +Error ProcessGDBRemote::LaunchAndConnectToDebugserver (const ProcessInfo _info) { Error error; ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D14932: Fix watchpoint check to use watchpoint ranges
ted created this revision. ted added a reviewer: clayborg. ted added a subscriber: lldb-commits. Watchpoints, unlike breakpoints, have an address range. This patch changes WatchpointList::FindByAddress() to match on any address in the watchpoint range, instead of only matching on the watchpoint's base address. http://reviews.llvm.org/D14932 Files: source/Breakpoint/WatchpointList.cpp Index: source/Breakpoint/WatchpointList.cpp === --- source/Breakpoint/WatchpointList.cpp +++ source/Breakpoint/WatchpointList.cpp @@ -75,10 +75,15 @@ { wp_collection::const_iterator pos, end = m_watchpoints.end(); for (pos = m_watchpoints.begin(); pos != end; ++pos) -if ((*pos)->GetLoadAddress() == addr) { +{ +lldb::addr_t wp_addr = (*pos)->GetLoadAddress(); +uint32_t wp_bytesize = (*pos)->GetByteSize(); +if ((wp_addr <= addr) && ((wp_addr + wp_bytesize) > addr)) +{ wp_sp = *pos; break; } +} } return wp_sp; Index: source/Breakpoint/WatchpointList.cpp === --- source/Breakpoint/WatchpointList.cpp +++ source/Breakpoint/WatchpointList.cpp @@ -75,10 +75,15 @@ { wp_collection::const_iterator pos, end = m_watchpoints.end(); for (pos = m_watchpoints.begin(); pos != end; ++pos) -if ((*pos)->GetLoadAddress() == addr) { +{ +lldb::addr_t wp_addr = (*pos)->GetLoadAddress(); +uint32_t wp_bytesize = (*pos)->GetByteSize(); +if ((wp_addr <= addr) && ((wp_addr + wp_bytesize) > addr)) +{ wp_sp = *pos; break; } +} } return wp_sp; ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits