Skip to content
  1. Jan 09, 2013
    • Enrico Granata's avatar
      <rdar://problem/12028723> · b576bba2
      Enrico Granata authored
      Adding useful formatting options to the expression (expr) command.
      As a side effect of this change, the -d option now supports the same three-values enumeration that frame variables uses (run, don't run, none) instead of a boolean like it did previously
      
      These options do not apply to print, p or po because these are aliased to not take any options.
      In order to use them, use expression or expr.
      
      llvm-svn: 171993
      b576bba2
    • Greg Clayton's avatar
      Expanded the flags that can be set for a command object in... · f9fc609f
      Greg Clayton authored
      Expanded the flags that can be set for a command object in lldb_private::CommandObject. This list of available flags are:
      
      enum
      {
          //----------------------------------------------------------------------
          // eFlagRequiresTarget
          //
          // Ensures a valid target is contained in m_exe_ctx prior to executing
          // the command. If a target doesn't exist or is invalid, the command
          // will fail and CommandObject::GetInvalidTargetDescription() will be
          // returned as the error. CommandObject subclasses can override the
          // virtual function for GetInvalidTargetDescription() to provide custom
          // strings when needed.
          //----------------------------------------------------------------------
          eFlagRequiresTarget         = (1u << 0),
          //----------------------------------------------------------------------
          // eFlagRequiresProcess
          //
          // Ensures a valid process is contained in m_exe_ctx prior to executing
          // the command. If a process doesn't exist or is invalid, the command
          // will fail and CommandObject::GetInvalidProcessDescription() will be
          // returned as the error. CommandObject subclasses can override the
          // virtual function for GetInvalidProcessDescription() to provide custom
          // strings when needed.
          //----------------------------------------------------------------------
          eFlagRequiresProcess        = (1u << 1),
          //----------------------------------------------------------------------
          // eFlagRequiresThread
          //
          // Ensures a valid thread is contained in m_exe_ctx prior to executing
          // the command. If a thread doesn't exist or is invalid, the command
          // will fail and CommandObject::GetInvalidThreadDescription() will be
          // returned as the error. CommandObject subclasses can override the
          // virtual function for GetInvalidThreadDescription() to provide custom
          // strings when needed.
          //----------------------------------------------------------------------
          eFlagRequiresThread         = (1u << 2),
          //----------------------------------------------------------------------
          // eFlagRequiresFrame
          //
          // Ensures a valid frame is contained in m_exe_ctx prior to executing
          // the command. If a frame doesn't exist or is invalid, the command
          // will fail and CommandObject::GetInvalidFrameDescription() will be
          // returned as the error. CommandObject subclasses can override the
          // virtual function for GetInvalidFrameDescription() to provide custom
          // strings when needed.
          //----------------------------------------------------------------------
          eFlagRequiresFrame          = (1u << 3),
          //----------------------------------------------------------------------
          // eFlagRequiresRegContext
          //
          // Ensures a valid register context (from the selected frame if there
          // is a frame in m_exe_ctx, or from the selected thread from m_exe_ctx)
          // is availble from m_exe_ctx prior to executing the command. If a
          // target doesn't exist or is invalid, the command will fail and
          // CommandObject::GetInvalidRegContextDescription() will be returned as
          // the error. CommandObject subclasses can override the virtual function
          // for GetInvalidRegContextDescription() to provide custom strings when
          // needed.
          //----------------------------------------------------------------------
          eFlagRequiresRegContext     = (1u << 4),
          //----------------------------------------------------------------------
          // eFlagTryTargetAPILock
          //
          // Attempts to acquire the target lock if a target is selected in the
          // command interpreter. If the command object fails to acquire the API
          // lock, the command will fail with an appropriate error message.
          //----------------------------------------------------------------------
          eFlagTryTargetAPILock       = (1u << 5),
          //----------------------------------------------------------------------
          // eFlagProcessMustBeLaunched
          //
          // Verifies that there is a launched process in m_exe_ctx, if there
          // isn't, the command will fail with an appropriate error message.
          //----------------------------------------------------------------------
          eFlagProcessMustBeLaunched  = (1u << 6),
          //----------------------------------------------------------------------
          // eFlagProcessMustBePaused
          //
          // Verifies that there is a paused process in m_exe_ctx, if there
          // isn't, the command will fail with an appropriate error message.
          //----------------------------------------------------------------------
          eFlagProcessMustBePaused    = (1u << 7)
      };
      
      Now each command object contains a "ExecutionContext m_exe_ctx;" member variable that gets initialized prior to running the command. The validity of the target objects in m_exe_ctx are checked to ensure that any target/process/thread/frame/reg context that are required are valid prior to executing the command. Each command object also contains a Mutex::Locker m_api_locker which gets used if eFlagTryTargetAPILock is set. This centralizes a lot of checking code that was previously and inconsistently implemented across many commands.
      
      llvm-svn: 171990
      f9fc609f
    • Jim Ingham's avatar
      Add a "--reverse" or "-r" option to the "list" with no options command. This... · 196bbc25
      Jim Ingham authored
      Add a "--reverse" or "-r" option to the "list" with no options command.  This will list backwards from the
      last source point listed.
      Also fix the setting of the default file & line to the file containing main, when you do a plain "list".
      
      <rdar://problem/12685226>
      
      llvm-svn: 171945
      196bbc25
    • Jim Ingham's avatar
      Add an SBProcess API to get the current StopID, either considering or ignoring... · bf2956a2
      Jim Ingham authored
      Add an SBProcess API to get the current StopID, either considering or ignoring stops caused by expression
      evaluation.
      
      <rdar://problem/12968562>
      
      llvm-svn: 171914
      bf2956a2
  2. Jan 08, 2013
  3. Jan 05, 2013
  4. Jan 04, 2013
  5. Jan 03, 2013
  6. Jan 02, 2013
  7. Dec 22, 2012
  8. Dec 21, 2012
  9. Dec 20, 2012
    • Jim Ingham's avatar
      If we can't find the python function for a given summary, print the name of... · a0b15171
      Jim Ingham authored
      If we can't find the python function for a given summary, print the name of the function in the warning message.
      
      llvm-svn: 170729
      a0b15171
    • Jason Molenda's avatar
      Clarify the comments in PlatformDarwin::LocateExecutableScriptingResource · 253a19a0
      Jason Molenda authored
      a bit.
      
      llvm-svn: 170641
      253a19a0
    • Enrico Granata's avatar
      <rdar://problem/12903081> · 04e92149
      Enrico Granata authored
      When looking for the Python script to load for a given module, replace dots with underscores if there are any after stripping the extension
      This means that for a module named foo.devel.xyz a file named foo_devel.py will be what we try to load
      
      llvm-svn: 170633
      04e92149
    • Enrico Granata's avatar
      <rdar://problem/12446222> · 557fd00a
      Enrico Granata authored
      Implement the ability for Python commands to be interrupted by pressing CTRL+C
      Also add a new Mutex subclass that attempts to be helpful for debugging by logging actions performed on it
      
      FYI of all interested - there is a separate deadlocking issue related to how LLDB dispatches CTRL+C that might cause LLDB to deadlock upon pressing CTRL+C while in a Python command.
      This is not a regression, and was just previously masked by us not even trying to bail out of Python commands, so that it would not be clear from a user perspective whether we were
      deadlocked or stuck in an inconsistent state within the Python interpreter.
      
      llvm-svn: 170612
      557fd00a
    • Sean Callanan's avatar
      This patch removes the SymbolFileSymtab support · 7be70e85
      Sean Callanan authored
      for reporting class types from Objective-C runtime
      class symbols.  Instead, LLDB now queries the 
      Objective-C runtime for class types.
      
      We have also added a (minimal) Objective-C runtime
      type vendor for Objective-C runtime version 1, to 
      prevent regressions when calling class methods in
      the V1 runtime.
      
      Other components of this fix include:
      
      - We search the Objective-C runtime in a few more
        places.
      
      - We enable enumeration of all members of
        Objective-C classes, which Clang does in certain
        circumstances.
      
      - SBTarget::FindFirstType and SBTarget::FindTypes
        now query the Objective-C runtime as needed.
      
      - I fixed several test cases.
      
      <rdar://problem/12885034>
      
      llvm-svn: 170601
      7be70e85
  10. Dec 19, 2012
    • Jason Molenda's avatar
      <rdar://problem/11961650> · f17b5ac6
      Jason Molenda authored
      Update the debugserver "qProcessInfo" implementation to return the
      cpu type, cpu subtype, OS and vendor information just like qHostInfo
      does so lldb can create an ArchSpec based on the returned values.
      
      Add a new GetProcessArchitecture to GDBRemoteCommunicationClient akin
      to GetHostArchitecture.  If the qProcessInfo packet is supported,
      GetProcessArchitecture will return the cpu type / subtype of the 
      process -- e.g. a 32-bit user process running on a 64-bit x86_64 Mac
      system. 
      
      Have ProcessGDBRemote set the Target's architecture based on the 
      GetProcessArchitecture when we've completed an attach/launch/connect.
      
      llvm-svn: 170491
      f17b5ac6
    • Greg Clayton's avatar
      Don't read the SP when getting argument values from registers in case the SP... · 0b510bca
      Greg Clayton authored
      Don't read the SP when getting argument values from registers in case the SP isn't available. We don't want the availability of SP to limit when we get get arguments from registers.
      
      llvm-svn: 170476
      0b510bca
  11. Dec 18, 2012
  12. Dec 15, 2012
    • Jim Ingham's avatar
      Remove the “len” defaulted parameter from CommandReturnObject::AppendMessage,... · 17fafa15
      Jim Ingham authored
      Remove the “len” defaulted parameter from CommandReturnObject::AppendMessage, AppendWarning and AppendError.  Nobody was using them, and it meant if you accidentally used the AppendWarning when you meant AppendWarningWithFormat with an integer in the format string, it would compile and then return your string plus some unknown amount of junk.
      
      llvm-svn: 170266
      17fafa15
Loading