Skip to content
  1. Feb 08, 2014
  2. Feb 05, 2014
  3. Jan 31, 2014
  4. Jan 30, 2014
  5. Jan 28, 2014
    • Greg Clayton's avatar
      Merging the iohandler branch back into main. · 44d93782
      Greg Clayton authored
      The many many benefits include:
      1 - Input/Output/Error streams are now handled as real streams not a push style input
      2 - auto completion in python embedded interpreter
      3 - multi-line input for "script" and "expression" commands now allow you to edit previous/next lines using up and down arrow keys and this makes multi-line input actually a viable thing to use
      4 - it is now possible to use curses to drive LLDB (please try the "gui" command)
      
      We will need to deal with and fix any buildbot failures and tests and arise now that input/output and error are correctly hooked up in all cases.
      
      llvm-svn: 200263
      44d93782
  6. Jan 23, 2014
    • Todd Fiala's avatar
      Candidate fix for bug 18592. · 571768ca
      Todd Fiala authored
      This reverts Host.cpp LaunchProcess spawn behavior on FreeBSD to be
      like Linux (and unlike OS X) with regards to how default signal
      handlers and setup on the spawned process. FreeBSD does not reset
      default signal handlers on the spawned process after this change.
      
      llvm-svn: 199908
      571768ca
    • Todd Fiala's avatar
      Unify OS X/POSIX/Linux Host spawn support. · 76747120
      Todd Fiala authored
      This fixes a bug under Linux where spawning a process via
      Host::LaunchProcess was disabling all blockable signals on the
      launched process.  This caused strange behavior when attempting
      to kill the lldb-gdbserver process, as the child generally would
      not die unless killed with a non-blockable signal (e.g. 'kill -9').
      
      This change moves several functions out of macosx/Host.mm into
      common/Host.cpp.  In addition, two functions that needed to work
      across common/Host.cpp and macosx/Host.mm were moved into the Host.h
      header file.
      
      llvm-svn: 199856
      76747120
  7. Jan 18, 2014
    • Todd Fiala's avatar
      Make lldb build with Makefiles on OS X. · 5000e28a
      Todd Fiala authored
      This change does the following:
      
      * Adds Makefile build scripts to debug server.
      
      * Fixes a few small mistakes in the other makefiles.
      
      * Modifies generate-vers.pl slightly to also work for debugserver.
      
      * Changes the OS X, non-framework python search path from libdir to
        libdir/python2.X/site-packages where it is installed by the build
        system (also where it is installed on other operating systems).
      
      Patch by Keno Fischer.
      
      llvm-svn: 199543
      5000e28a
    • Todd Fiala's avatar
      Added distribution info to ArchSpec and qHostInfo message. · a9ddb0e1
      Todd Fiala authored
      ArchSpec now contains an optional distribution_id, with getters and
      setters. Host::GetArchitecture () sets it on non-Apple platforms using
      Host::GetDistributionId (). The distribution_id is ignored during
      ArchSpec comparisons.
      
      The gdb remote qHostInfo message transmits it, if set, via the
      distribution_id={id-value} key/value pair. Updated gdb remote docs to
      reflect this change.
      
      As before, GetDistributionId () returns nothing on non-Linux platforms
      at this time. On Linux, it is returned only if the lsb_platform
      command is installed (in /bin or /usr/bin), and only if the
      distributor id key is returned by 'lsb_platform -i'. This id is
      lowercased, and whitespace is replaced with underscores.
      
      llvm-svn: 199539
      a9ddb0e1
  8. Jan 17, 2014
    • Todd Fiala's avatar
      Undo change to triple behavior from r199510. · e28f1d7f
      Todd Fiala authored
      The Linux distribution will be added to the ArchSpec class in an
      upcoming change. This change only undoes the change to the triple. The
      distribution retrieval logic and enabling of lldb-gdbserver for linux
      x86_64 builds is still in place.
      
      llvm-svn: 199520
      e28f1d7f
    • Todd Fiala's avatar
      Enable Linux distribution in vendor portion of host triple. · f3d61de5
      Todd Fiala authored
      This change does the following:
      
      * enables building lldb-gdbserver on linux_x86-64 platforms.
      
        Note - it builds but it has several run-time issues where many gdb
        remote protocol features are not properly implemented yet. I'm
        working on these one at a time.
      
      * lldb-gdbserver: does not enable the eLaunchFlagDebug launch flag on
        Linux. Currently the POSIX launch routine will assert if that flag
        is passed in, presumably because that launch mode is not yet
        available.  This prevents lldb-gdbserver from asserting the moment
        it launches the debuggee process.
      
      * Adds ConstString& Host::GetDistributionId ()
      
        This method is defined to return an empty result on all platforms
        except for Linux.  On Linux, it makes one attempt to execute
        'lsb_release -i' (both /usr/bin/lsb_release, where it appears
        on ubuntu, and /bin/lsb_release, where it appears on fedora
        if the redhat-lsb package is installed).  If lsb_release is not
        found in either of those locations, or if 'lsb_release -i' does
        not return the first line starting with "Distributor ID:\t",
        then the distribution id is empty.  The method will lower-case
        the id and replace whitespace with underscores.
      
      * Modify Host::GetArchitecture () so that linux replaces an unknown
        vendor portion with the results of GetDistributionId () if that
        is non-empty.  This shows up now in qHostInfo remote packet
        responses and on the lldb host side.  Tested with ubuntu and
        fedora (the latter both with the default of not having lsb_release
        installed, and with having lsb_release installed via the redhat-lsb
        package).
      
        Examples of triples on Linux after this change:
      
          # x86_64 Unbuntu 12.04 LTS:
          x86_64-ubuntu-linux-gnu
      
          # x86_64 Fedora 20 Desktop with redhat-lsb package installed
          x86_64-fedora-linux-gnu
      
          # x86_64 Fedora 20 Desktop without redhat-lsb-core installed
          # (i.e. no /bin/lsb_release available)
          # same as before the change
          x86_64--linux-gnu
      
        Note I intend to have Android respond with:
      
          {arch}-android-linux
      
        when I get to implementing Android lldb-gdbserver support.
      
      llvm-svn: 199510
      f3d61de5
  9. Jan 13, 2014
  10. Dec 13, 2013
  11. Dec 12, 2013
  12. Dec 09, 2013
  13. Dec 06, 2013
  14. Dec 05, 2013
    • Greg Clayton's avatar
      Modified local spawning in debugserver processes to use a new... · 00fe87b4
      Greg Clayton authored
      Modified local spawning in debugserver processes to use a new --reverse-connect option so that debugserver actually connects back to LLDB instead of LLDB connecting to debugserver.
      
      This gets rid of our hacky "get_random_port()" which would grab a random port and tell debugserver to open that port. Now LLDB creates, binds, listens and accepts a connection by binding to port zero and sending the correctly bound port down as the host:port to connect back to.
      
      Fixed the "ConnectionFileDescriptor" to be able to correctly listen for connections from a specified host, localhost, or any host. Prior to this fix "listen://" only accepted the following format:
      
      listen://<port>
      
      But now it can accept:
      
      listen://<port>         // Listen for connection from localhost on port <port>
      listen://<host>:<port>  // Listen for connection from <host> and <port>    
      listen://*:<port>       // Listen for connection from any host on port <port>
      
      llvm-svn: 196547
      00fe87b4
  15. Dec 04, 2013
    • Greg Clayton's avatar
      Added a new directory type for the "bool Host::GetLLDBPath (PathType... · c6931fcf
      Greg Clayton authored
      Added a new directory type for the "bool Host::GetLLDBPath (PathType path_type, FileSpec &file_spec)" function: ePathTypeLLDBTempSystemDir
      
      This will get the temporary directory on the current system.
      
      Removed a call to tmpnam() and replaced it with a call to mktemp() using a template that will be in the temp directory.
      
      llvm-svn: 196397
      c6931fcf
  16. Nov 26, 2013
    • Colin Riley's avatar
      Fix MSVC build · 909bb7a3
      Colin Riley authored
      Added _WIN32 guards to new platform features. Using correct SetErrorStringWithFormat within Host when LLDB_DISABLE_POSIX is defined. Also fixed an if defined block.
      
      llvm-svn: 195766
      909bb7a3
  17. Nov 25, 2013
  18. Nov 23, 2013
    • Greg Clayton's avatar
      Removed printf and puts calls that were left in accidentally. · 5c6eab21
      Greg Clayton authored
      llvm-svn: 195542
      5c6eab21
    • Greg Clayton's avatar
      Improved platform support. · fb90931b
      Greg Clayton authored
      Improved the detection of a valid GDB server where we actually can connect to a socket, but then it doesn't read or write anything (which happens with some USB mux software).
      
      Host::MakeDirectory() now can make as many intermediate directories as needed.
      
      The testsuite now has very initial support for remote test suite running. When running on a remote platform, the setUp function for the test will make a new directory and select it as the working directory on the remote host. 
      
      Added a common function that can be used to create the short option string for getopt_long calls.
      
      llvm-svn: 195541
      fb90931b
  19. Nov 22, 2013
  20. Nov 21, 2013
  21. Nov 20, 2013
    • Greg Clayton's avatar
      Expose SBPlatform through the public API. · fbb76349
      Greg Clayton authored
      Example code:
      
      remote_platform = lldb.SBPlatform("remote-macosx"); 
      remote_platform.SetWorkingDirectory("/private/tmp")
      debugger.SetSelectedPlatform(remote_platform)
      
      connect_options = lldb.SBPlatformConnectOptions("connect://localhost:1111"); 
      err = remote_platform.ConnectRemote(connect_options)
      if err.Success():
          print >> result, 'Connected to remote platform:'
          print >> result, 'hostname: %s' % (remote_platform.GetHostname())
          src = lldb.SBFileSpec("/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework", False)
          dst = lldb.SBFileSpec()
          # copy src to platform working directory since "dst" is empty
          err = remote_platform.Install(src, dst);
          if err.Success():
              print >> result, '%s installed successfully' % (src)
          else:
              print >> result, 'error: failed to install "%s": %s' % (src, err)
      
      
      Implemented many calls needed in lldb-platform to be able to install a directory that contains symlinks, file and directories.
      
      The remote lldb-platform can now launch GDB servers on the remote system so that remote debugging can be spawned through the remote platform when connected to a remote platform.
      
      The API in SBPlatform is subject to change and will be getting many new functions.
      
      llvm-svn: 195273
      fbb76349
  22. Oct 22, 2013
  23. Oct 04, 2013
  24. Sep 28, 2013
  25. Sep 25, 2013
  26. Sep 21, 2013
  27. Sep 10, 2013
Loading