diff options
Diffstat (limited to 'source/API/SBFunction.cpp')
| -rw-r--r-- | source/API/SBFunction.cpp | 30 | 
1 files changed, 29 insertions, 1 deletions
diff --git a/source/API/SBFunction.cpp b/source/API/SBFunction.cpp index 2ec6072b51eb..2d03d53fd9f7 100644 --- a/source/API/SBFunction.cpp +++ b/source/API/SBFunction.cpp @@ -16,6 +16,7 @@  #include "lldb/Symbol/CompileUnit.h"  #include "lldb/Symbol/Function.h"  #include "lldb/Symbol/Type.h" +#include "lldb/Symbol/VariableList.h"  #include "lldb/Target/ExecutionContext.h"  #include "lldb/Target/Target.h" @@ -216,6 +217,24 @@ SBFunction::GetEndAddress ()      return addr;  } +const char * +SBFunction::GetArgumentName (uint32_t arg_idx) +{ +    if (m_opaque_ptr) +    { +        Block &block = m_opaque_ptr->GetBlock(true); +        VariableListSP variable_list_sp = block.GetBlockVariableList(true); +        if (variable_list_sp) +        { +            VariableList arguments; +            variable_list_sp->AppendVariablesWithScope (eValueTypeVariableArgument, arguments, true); +            lldb::VariableSP variable_sp = arguments.GetVariableAtIndex(arg_idx); +            if (variable_sp) +                return variable_sp->GetName().GetCString(); +        } +    } +    return nullptr; +}  uint32_t  SBFunction::GetPrologueByteSize () @@ -258,4 +277,13 @@ SBFunction::GetLanguage ()      return lldb::eLanguageTypeUnknown;  } - +bool +SBFunction::GetIsOptimized () +{ +    if (m_opaque_ptr) +    { +        if (m_opaque_ptr->GetCompileUnit()) +            return m_opaque_ptr->GetCompileUnit()->GetIsOptimized(); +    } +    return false; +}  | 
