Skip to content
  1. Oct 20, 2010
    • Johnny Chen's avatar
      For UserSettingsController::UpdateDictionaryVariable(), clear the dictionary · 73b4f711
      Johnny Chen authored
      if passed in a NULL new_value and the operation intended is eVarSetOperationAssign.
      This fixed a bug where in TestSettings.py:
      
              # Set the run-args and the env-vars.
              self.runCmd('settings set target.process.run-args A B C')
              self.runCmd('settings set target.process.env-vars ["MY_ENV_VAR"]=YES')
              # And add hooks to restore the settings during tearDown().
              self.addTearDownHook(
                  lambda: self.runCmd("settings set -r target.process.run-args"))
              self.addTearDownHook(
                  lambda: self.runCmd("settings set -r target.process.env-vars"))
      
      "settings set -r target.process.env-vars" was not restoring the original env-vars
      setting.
      
      llvm-svn: 116895
      73b4f711
    • Jim Ingham's avatar
      Don't cache the public stop reason, since it can change as plan completion... · b15bfc75
      Jim Ingham authored
      Don't cache the public stop reason, since it can change as plan completion gets processed.  That means GetStopReason needs to return a shared pointer, not a pointer to the thread's cached version.  Also allow the thread plans to get and set the thread private stop reason - that is usually more appropriate for the logic the thread plans need to do.
      
      llvm-svn: 116892
      b15bfc75
    • Sean Callanan's avatar
      Fixed a silly bug that was causing the "this" pointer · 104a6e9b
      Sean Callanan authored
      to be passed improperly to expressions in certain
      cases.
      
      llvm-svn: 116884
      104a6e9b
    • Greg Clayton's avatar
      Ok, last commit for the running processes in a new window. Now you can · 913c4fa1
      Greg Clayton authored
      optionally specify the tty you want to use if you want to use an existing
      terminal window by giving a partial or full path name:
      
      (lldb) process launch --tty=ttys002
      
      This would find the terminal window (or tab on MacOSX) that has ttys002 in its
      tty path and use it. If it isn't found, it will use a new terminal window.
      
      llvm-svn: 116878
      913c4fa1
    • Sean Callanan's avatar
      Removed a bit of dead code. Thanks to Eric · 49249493
      Sean Callanan authored
      Christopher for pointing it out.
      
      llvm-svn: 116871
      49249493
    • Sean Callanan's avatar
      Expressions now claim responsibility for all stops · 3e6fedca
      Sean Callanan authored
      that occur while they run.  This means that they
      clean up after themselves even when they crash.
      
      llvm-svn: 116870
      3e6fedca
  2. Oct 19, 2010
  3. Oct 18, 2010
    • Caroline Tice's avatar
      Fix bug where aliases for commands that take raw input were not · 38c22f56
      Caroline Tice authored
      executing properly.
      
      llvm-svn: 116735
      38c22f56
    • Caroline Tice's avatar
      Prevent Python script interpreter initialization from changing · dc8f777f
      Caroline Tice authored
      the termios settings on the debugger's input handle.
      
      llvm-svn: 116725
      dc8f777f
    • Greg Clayton's avatar
      Still trying to get detach to work with debugserver. Got a bit closer, · 58d1c9a4
      Greg Clayton authored
      but something is still killing our inferior.
      
      Fixed an issue with darwin-debug where it wasn't passing all needed arguments
      to the inferior.
      
      Fixed a race condition with the attach to named process code.
      
      llvm-svn: 116697
      58d1c9a4
    • Greg Clayton's avatar
      Fixed debugserver to properly attach to a process by name with the · 19388cfc
      Greg Clayton authored
      "vAttachName;<PROCNAME>" packet, and wait for a new process by name to launch 
      with the "vAttachWait;<PROCNAME>".
      
      Fixed a few issues with attaching where if DoAttach() returned no error, yet
      there was no valid process ID, we would deadlock waiting for an event that
      would never happen.
      
      Added a new "process launch" option "--tty" that will launch the process 
      in a new terminal if the Host layer supports the "Host::LaunchInNewTerminal(...)"
      function. This currently works on MacOSX and will allow the debugging of 
      terminal applications that do complex operations with the terminal. 
      
      Cleaned up the output when the process resumes, stops and halts to be 
      consistent with the output format.
      
      llvm-svn: 116693
      19388cfc
    • Greg Clayton's avatar
      Added a new Host call to find LLDB related paths: · dd36defd
      Greg Clayton authored
          static bool
          Host::GetLLDBPath (lldb::PathType path_type, FileSpec &file_spec);
          
      This will fill in "file_spec" with an appropriate path that is appropriate
      for the current Host OS. MacOSX will return paths within the LLDB.framework,
      and other unixes will return the paths they want. The current PathType
      enums are:
      
      typedef enum PathType
      {
          ePathTypeLLDBShlibDir,          // The directory where the lldb.so (unix) or LLDB mach-o file in LLDB.framework (MacOSX) exists
          ePathTypeSupportExecutableDir,  // Find LLDB support executable directory (debugserver, etc)
          ePathTypeHeaderDir,             // Find LLDB header file directory
          ePathTypePythonDir              // Find Python modules (PYTHONPATH) directory
      } PathType;
      
      All places that were finding executables are and python paths are now updated
      to use this Host call.
      
      Added another new host call to launch the inferior in a terminal. This ability
      will be very host specific and doesn't need to be supported on all systems.
      MacOSX currently will create a new .command file and tell Terminal.app to open
      the .command file. It also uses the new "darwin-debug" app which is a small
      app that uses posix to exec (no fork) and stop at the entry point of the 
      program. The GDB remote plug-in is almost able launch a process and attach to
      it, it currently will spawn the process, but it won't attach to it just yet.
      This will let LLDB not have to share the terminal with another process and a
      new terminal window will pop up when you launch. This won't get hooked up
      until we work out all of the kinks. The new Host function is:
      
          static lldb::pid_t
          Host::LaunchInNewTerminal (
              const char **argv,   // argv[0] is executable
              const char **envp,
              const ArchSpec *arch_spec,
              bool stop_at_entry,
              bool disable_aslr);
      
      Cleaned up FileSpec::GetPath to not use strncpy() as it was always zero 
      filling the entire path buffer.
      
      Fixed an issue with the dynamic checker function where I missed a '$' prefix
      that should have been added.
      
      llvm-svn: 116690
      dd36defd
  4. Oct 16, 2010
  5. Oct 15, 2010
    • Caroline Tice's avatar
      Disable "process.macosx" plugin, since it is not being actively supported · 43a8c39b
      Caroline Tice authored
      at the moment, and no longer works properly (bit rot).
      
      llvm-svn: 116626
      43a8c39b
    • Greg Clayton's avatar
      Skip checking for a bunch of built-ins when evaluating an expression. · ee4b5dd6
      Greg Clayton authored
      llvm-svn: 116565
      ee4b5dd6
    • Greg Clayton's avatar
      Did a bit of parameter renaming. · 9476d957
      Greg Clayton authored
      llvm-svn: 116562
      9476d957
    • Greg Clayton's avatar
      Added short names and descriptions to the UnixSignals class. Also cleaned up · 8dbc336d
      Greg Clayton authored
      the code a bit.
      
      llvm-svn: 116561
      8dbc336d
    • Greg Clayton's avatar
      Separated the DWARF index for types from that the index of the namespaces · 69b0488d
      Greg Clayton authored
      since we can't parse DW_TAG_namespace DIEs as types. They are only decls in
      clang. All of the types we handle right now have both clang "XXXType" classes
      to go with the "XXXDecl" classes which means they can be used within the 
      lldb_private::Type class. I need to check to see which other decls that don't
      have associated type objects need to float around the debugger and possibly
      make a lldb_private::Decl class to manage them.
      
      llvm-svn: 116558
      69b0488d
    • Jim Ingham's avatar
      Added support for breakpoint conditions. I also had to separate the "run the... · 36f3b369
      Jim Ingham authored
      Added support for breakpoint conditions.  I also had to separate the "run the expression" part of ClangFunction::Execute from the "Gather the expression result" so that in the case of the Breakpoint condition I can move the condition evaluation into the normal thread plan processing.
      
      Also added support for remembering the "last set breakpoint" so that "break modify" will act on the last set breakpoint.
      
      llvm-svn: 116542
      36f3b369
    • Greg Clayton's avatar
      Fixed an expression parsing issue where if you were stopped somewhere without · 8f92f0a3
      Greg Clayton authored
      debug information and you evaluated an expression, a crash would occur as a
      result of an unchecked pointer.
      
      Added the ability to get the expression path for a ValueObject. For a rectangle
      point child "x" the expression path would be something like: "rect.top_left.x".
      This will allow GUI and command lines to get ahold of the expression path for
      a value object without having to explicitly know about the hierarchy. This
      means the ValueObject base class now has a "ValueObject *m_parent;" member.
      All ValueObject subclasses now correctly track their lineage and are able
      to provide value expression paths as well.
      
      Added a new "--flat" option to the "frame variable" to allow for flat variable
      output. An example of the current and new outputs:
      
      (lldb) frame variable 
      argc = 1
      argv = 0x00007fff5fbffe80
      pt = {
        x = 2
        y = 3
      }
      rect = {
        bottom_left = {
          x = 1
          y = 2
        }
        top_right = {
          x = 3
          y = 4
        }
      }
      (lldb) frame variable --flat 
      argc = 1
      argv = 0x00007fff5fbffe80
      pt.x = 2
      pt.y = 3
      rect.bottom_left.x = 1
      rect.bottom_left.y = 2
      rect.top_right.x = 3
      rect.top_right.y = 4
      
      
      As you can see when there is a lot of hierarchy it can help flatten things out.
      Also if you want to use a member in an expression, you can copy the text from
      the "--flat" output and not have to piece it together manually. This can help
      when you want to use parts of the STL in expressions:
      
      (lldb) frame variable --flat
      argc = 1
      argv = 0x00007fff5fbffea8
      hello_world._M_dataplus._M_p = 0x0000000000000000
      (lldb) expr hello_world._M_dataplus._M_p[0] == '\0'
      
      llvm-svn: 116532
      8f92f0a3
  6. Oct 14, 2010
  7. Oct 13, 2010
    • Caroline Tice's avatar
      Add new argument type, eArgSignalName, · 35731357
      Caroline Tice authored
      Add missing break statment to case statement in Process::ShouldBroadcastEvent.
      
      Add new command, "process handle" to allow users to control process behavior on
      the receipt of various Unix signals (whether the process should stop; whether the
      process should be passed the signal; whether the debugger user should be notified
      that the signal came in).
      
      llvm-svn: 116430
      35731357
    • Greg Clayton's avatar
      Default "frame variable" to not show types before values by default. You now... · b6e8cf96
      Greg Clayton authored
      Default "frame variable" to not show types before values by default. You now enable type display with --show-types or -t (instead of disabling it with --no-types or -t).
      
      llvm-svn: 116418
      b6e8cf96
    • Greg Clayton's avatar
      Fixed C++ class clang type creation and display by making sure we omit · 24739923
      Greg Clayton authored
      artifical members (like the vtable pointer member that shows up in the DWARF).
      We were adding this to each class which was making all member variables be off
      by a pointer size.
      
      Added a test case so we can track this with "test/forward".
      
      Fixed the type name index in DWARF to include all the types after finding
      some types were being omitted due to the DW_AT_specification having the
      DW_AT_declaration attribute which was being read into the real type instances
      when there were forward declarations in the DWARF, causing the type to be
      omitted. We now check to make sure any DW_AT_declaration values are only
      respected when parsing types if the attribute is from the current DIE.
      
      After fixing the missing types, we ran into some issues with the expression
      parser finding duplicate entries for __va_list_tag since they are built in
      types and would result in a "duplicate __va_list_tag definition" error. We
      are now just ignoring this name during lookup, but we will need to see if
      we can get the name lookup function to not get called in these cases.
      
      Fixed an issue that would cause an assertion where DW_TAG_subroutine_types
      that had no children, would not properly make a clang function type of:
      "void (*) (void)".
      
      llvm-svn: 116392
      24739923
    • Caroline Tice's avatar
      Comment out code that was preventing commands that take raw input strings · 4239eade
      Caroline Tice authored
      from being alias-able.
      
      llvm-svn: 116357
      4239eade
    • Caroline Tice's avatar
      Replace contains_string with 'strcasestr' from libc. · 4b6fbf37
      Caroline Tice authored
      llvm-svn: 116351
      4b6fbf37
  8. Oct 12, 2010
Loading