Skip to content
  • Greg Clayton's avatar
    Added the ability to get the return value from a ThreadPlanCallFunction · 70b57657
    Greg Clayton authored
    thread plan. In order to get the return value, you can call:
    
            void
            ThreadPlanCallFunction::RequestReturnValue (lldb::ValueSP &return_value_sp);
            
    This registers a shared pointer to a return value that will get filled in if
    everything goes well. After the thread plan is run the return value will be
    extracted for you.
    
    Added an ifdef to be able to switch between the LLVM MCJIT and the standand JIT.
    We currently have the standard JIT selected because we have some work to do to
    get the MCJIT fuctioning properly.
    
    Added the ability to call functions with 6 argument in the x86_64 ABI.
    
    Added the ability for GDBRemoteCommunicationClient to detect if the allocate
    and deallocate memory packets are supported and to not call allocate memory 
    ("_M") or deallocate ("_m") if we find they aren't supported.
    
    Modified the ProcessGDBRemote::DoAllocateMemory(...) and ProcessGDBRemote::DoDeallocateMemory(...) 
    to be able to deal with the allocate and deallocate memory packets not being 
    supported. If they are not supported, ProcessGDBRemote will switch to calling
    "mmap" and "munmap" to allocate and deallocate memory instead using our 
    trivial function call support.
    
    Modified the "void ProcessGDBRemote::DidLaunchOrAttach()" to correctly ignore 
    the qHostInfo triple information if any was specified in the target. Currently 
    if the target only specifies an architecture when creating the target:
    
    (lldb) target create --arch i386 a.out
    
    Then the vendor, os and environemnt will be adopted by the target.
    
    If the target was created with any triple that specifies more than the arch:
    
    (lldb) target create --arch i386-unknown-unknown a.out
    
    Then the target will maintain its triple and not adopt any new values. This
    can be used to help force bare board debugging where the dynamic loader for
    static files will get used and users can then use "target modules load ..."
    to set addressses for any files that are desired.
    
    Added back some convenience functions to the lldb_private::RegisterContext class
    for writing registers with unsigned values. Also made all RegisterContext
    constructors explicit to make sure we know when an integer is being converted
    to a RegisterValue. 
    
    llvm-svn: 131370
    70b57657
Loading