Skip to content
  • Greg Clayton's avatar
    Added new target instance settings for execution settings: · bfe5f3bf
    Greg Clayton authored
    Targets can now specify some additional parameters for when we debug 
    executables that can help with plug-in selection:
    
    target.execution-level = auto | user | kernel
    target.execution-mode  = auto | dynamic | static
    target.execution-os-type = auto | none | halted | live
    
    On some systems, the binaries that are created are the same wether you use
    them to debug a kernel, or a user space program. Many times inspecting an 
    object file can reveal what an executable should be. For these cases we can
    now be a little more complete by specifying wether to detect all of these
    things automatically (inspect the main executable file and select a plug-in
    accordingly), or manually to force the selection of certain plug-ins.
    
    To do this we now allow the specficifation of wether one is debugging a user
    space program (target.execution-level = user) or a kernel program 
    (target.execution-level = kernel).
    
    We can also specify if we want to debug a program where shared libraries
    are dynamically loaded using a DynamicLoader plug-in 
    (target.execution-mode = dynamic), or wether we will treat all symbol files
    as already linked at the correct address (target.execution-mode = static).
    
    We can also specify if the inferior we are debugging is being debugged on 
    a bare board (target.execution-os-type = none), or debugging an OS where
    we have a JTAG or other direct connection to the inferior stops the entire
    OS (target.execution-os-type = halted), or if we are debugging a program on
    something that has live debug services (target.execution-os-type = live).
    
    For the "target.execution-os-type = halted" mode, we will need to create 
    ProcessHelper plug-ins that allow us to extract the process/thread and other
    OS information by reading/writing memory.
    
    This should allow LLDB to be used for a wide variety of debugging tasks and
    handle them all correctly.
    
    llvm-svn: 125815
    bfe5f3bf
Loading