[Lldb-commits] [lldb] r167218 [2/3] - in /lldb/branches/windows: ./ examples/plugins/commands/ examples/python/ examples/summaries/cocoa/ examples/synthetic/ examples/synthetic/bitfield/ include/lldb/ include/lldb/API/ include/lldb/Breakpoint/ include/lldb/Core/ include/lldb/Expression/ include/lldb/Host/ include/lldb/Interpreter/ include/lldb/Symbol/ include/lldb/Target/ lib/ lldb.xcodeproj/ scripts/ scripts/Python/ scripts/Python/interface/ source/API/ source/Breakpoint/ source/Commands/ source/Core/ source/Expressio...
Carlo Kok
ck at remobjects.com
Thu Nov 1 00:04:05 PDT 2012
Added: lldb/branches/windows/scripts/lldb_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/scripts/lldb_wrap.cxx?rev=167218&view=auto
==============================================================================
--- lldb/branches/windows/scripts/lldb_wrap.cxx (added)
+++ lldb/branches/windows/scripts/lldb_wrap.cxx Thu Nov 1 02:04:04 2012
@@ -0,0 +1,16594 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.8
+ *
+ * This file is not intended to be easily readable and contains a number of
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG
+ * interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGCSHARP
+
+
+#ifdef __cplusplus
+/* SwigValueWrapper is described in swig.swg */
+template<typename T> class SwigValueWrapper {
+ struct SwigMovePointer {
+ T *ptr;
+ SwigMovePointer(T *p) : ptr(p) { }
+ ~SwigMovePointer() { delete ptr; }
+ SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
+ } pointer;
+ SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+ SwigValueWrapper(const SwigValueWrapper<T>& rhs);
+public:
+ SwigValueWrapper() : pointer(0) { }
+ SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
+ operator T&() const { return *pointer.ptr; }
+ T *operator&() { return pointer.ptr; }
+};
+
+template <typename T> T SwigValueInit() {
+ return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ * This section contains generic SWIG labels for method/variable
+ * declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+# define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+# define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+# define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+# define SWIGINLINE inline
+# else
+# define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+# define SWIGUNUSED __attribute__ ((__unused__))
+# else
+# define SWIGUNUSED
+# endif
+# elif defined(__ICC)
+# define SWIGUNUSED __attribute__ ((__unused__))
+# else
+# define SWIGUNUSED
+# endif
+#endif
+
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+# pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+# define SWIGUNUSEDPARM(p)
+# else
+# define SWIGUNUSEDPARM(p) p SWIGUNUSED
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+# ifndef GCC_HASCLASSVISIBILITY
+# define GCC_HASCLASSVISIBILITY
+# endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+# if defined(STATIC_LINKED)
+# define SWIGEXPORT
+# else
+# define SWIGEXPORT __declspec(dllexport)
+# endif
+# else
+# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+# define SWIGEXPORT __attribute__ ((visibility("default")))
+# else
+# define SWIGEXPORT
+# endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+# define SWIGSTDCALL __stdcall
+# else
+# define SWIGSTDCALL
+# endif
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+
+/* Support for throwing C# exceptions from C/C++. There are two types:
+ * Exceptions that take a message and ArgumentExceptions that take a message and a parameter name. */
+typedef enum {
+ SWIG_CSharpApplicationException,
+ SWIG_CSharpArithmeticException,
+ SWIG_CSharpDivideByZeroException,
+ SWIG_CSharpIndexOutOfRangeException,
+ SWIG_CSharpInvalidCastException,
+ SWIG_CSharpInvalidOperationException,
+ SWIG_CSharpIOException,
+ SWIG_CSharpNullReferenceException,
+ SWIG_CSharpOutOfMemoryException,
+ SWIG_CSharpOverflowException,
+ SWIG_CSharpSystemException
+} SWIG_CSharpExceptionCodes;
+
+typedef enum {
+ SWIG_CSharpArgumentException,
+ SWIG_CSharpArgumentNullException,
+ SWIG_CSharpArgumentOutOfRangeException
+} SWIG_CSharpExceptionArgumentCodes;
+
+typedef void (SWIGSTDCALL* SWIG_CSharpExceptionCallback_t)(const char *);
+typedef void (SWIGSTDCALL* SWIG_CSharpExceptionArgumentCallback_t)(const char *, const char *);
+
+typedef struct {
+ SWIG_CSharpExceptionCodes code;
+ SWIG_CSharpExceptionCallback_t callback;
+} SWIG_CSharpException_t;
+
+typedef struct {
+ SWIG_CSharpExceptionArgumentCodes code;
+ SWIG_CSharpExceptionArgumentCallback_t callback;
+} SWIG_CSharpExceptionArgument_t;
+
+static SWIG_CSharpException_t SWIG_csharp_exceptions[] = {
+ { SWIG_CSharpApplicationException, NULL },
+ { SWIG_CSharpArithmeticException, NULL },
+ { SWIG_CSharpDivideByZeroException, NULL },
+ { SWIG_CSharpIndexOutOfRangeException, NULL },
+ { SWIG_CSharpInvalidCastException, NULL },
+ { SWIG_CSharpInvalidOperationException, NULL },
+ { SWIG_CSharpIOException, NULL },
+ { SWIG_CSharpNullReferenceException, NULL },
+ { SWIG_CSharpOutOfMemoryException, NULL },
+ { SWIG_CSharpOverflowException, NULL },
+ { SWIG_CSharpSystemException, NULL }
+};
+
+static SWIG_CSharpExceptionArgument_t SWIG_csharp_exceptions_argument[] = {
+ { SWIG_CSharpArgumentException, NULL },
+ { SWIG_CSharpArgumentNullException, NULL },
+ { SWIG_CSharpArgumentOutOfRangeException, NULL }
+};
+
+static void SWIGUNUSED SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) {
+ SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback;
+ if ((size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) {
+ callback = SWIG_csharp_exceptions[code].callback;
+ }
+ callback(msg);
+}
+
+static void SWIGUNUSED SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) {
+ SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback;
+ if ((size_t)code < sizeof(SWIG_csharp_exceptions_argument)/sizeof(SWIG_CSharpExceptionArgument_t)) {
+ callback = SWIG_csharp_exceptions_argument[code].callback;
+ }
+ callback(msg, param_name);
+}
+
+
+#ifdef __cplusplus
+extern "C"
+#endif
+SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_lldb(
+ SWIG_CSharpExceptionCallback_t applicationCallback,
+ SWIG_CSharpExceptionCallback_t arithmeticCallback,
+ SWIG_CSharpExceptionCallback_t divideByZeroCallback,
+ SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback,
+ SWIG_CSharpExceptionCallback_t invalidCastCallback,
+ SWIG_CSharpExceptionCallback_t invalidOperationCallback,
+ SWIG_CSharpExceptionCallback_t ioCallback,
+ SWIG_CSharpExceptionCallback_t nullReferenceCallback,
+ SWIG_CSharpExceptionCallback_t outOfMemoryCallback,
+ SWIG_CSharpExceptionCallback_t overflowCallback,
+ SWIG_CSharpExceptionCallback_t systemCallback) {
+ SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback = applicationCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpArithmeticException].callback = arithmeticCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpDivideByZeroException].callback = divideByZeroCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpIndexOutOfRangeException].callback = indexOutOfRangeCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpInvalidCastException].callback = invalidCastCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpInvalidOperationException].callback = invalidOperationCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpIOException].callback = ioCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpNullReferenceException].callback = nullReferenceCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpOutOfMemoryException].callback = outOfMemoryCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpOverflowException].callback = overflowCallback;
+ SWIG_csharp_exceptions[SWIG_CSharpSystemException].callback = systemCallback;
+}
+
+#ifdef __cplusplus
+extern "C"
+#endif
+SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_lldb(
+ SWIG_CSharpExceptionArgumentCallback_t argumentCallback,
+ SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback,
+ SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) {
+ SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback = argumentCallback;
+ SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentNullException].callback = argumentNullCallback;
+ SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentOutOfRangeException].callback = argumentOutOfRangeCallback;
+}
+
+
+/* Callback for returning strings to C# without leaking memory */
+typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *);
+static SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback = NULL;
+
+
+#ifdef __cplusplus
+extern "C"
+#endif
+SWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_lldb(SWIG_CSharpStringHelperCallback callback) {
+ SWIG_csharp_string_callback = callback;
+}
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, msg, ""); return nullreturn; } else
+
+
+#include <string>
+
+
+#include "lldb/lldb-public.h"
+#include "lldb/API/SBAddress.h"
+#include "lldb/API/SBBlock.h"
+#include "lldb/API/SBBreakpoint.h"
+#include "lldb/API/SBBreakpointLocation.h"
+#include "lldb/API/SBBroadcaster.h"
+#include "lldb/API/SBCommandInterpreter.h"
+#include "lldb/API/SBCommandReturnObject.h"
+#include "lldb/API/SBCommunication.h"
+#include "lldb/API/SBCompileUnit.h"
+#include "lldb/API/SBData.h"
+#include "lldb/API/SBDebugger.h"
+#include "lldb/API/SBError.h"
+#include "lldb/API/SBEvent.h"
+#include "lldb/API/SBFileSpec.h"
+#include "lldb/API/SBFileSpecList.h"
+#include "lldb/API/SBFrame.h"
+#include "lldb/API/SBFunction.h"
+#include "lldb/API/SBHostOS.h"
+#include "lldb/API/SBInputReader.h"
+#include "lldb/API/SBInstruction.h"
+#include "lldb/API/SBInstructionList.h"
+#include "lldb/API/SBLineEntry.h"
+#include "lldb/API/SBListener.h"
+#include "lldb/API/SBModule.h"
+#include "lldb/API/SBProcess.h"
+#include "lldb/API/SBSection.h"
+#include "lldb/API/SBSourceManager.h"
+#include "lldb/API/SBStream.h"
+#include "lldb/API/SBStringList.h"
+#include "lldb/API/SBSymbol.h"
+#include "lldb/API/SBSymbolContext.h"
+#include "lldb/API/SBSymbolContextList.h"
+#include "lldb/API/SBTarget.h"
+#include "lldb/API/SBThread.h"
+#include "lldb/API/SBType.h"
+#include "lldb/API/SBTypeCategory.h"
+#include "lldb/API/SBTypeFilter.h"
+#include "lldb/API/SBTypeFormat.h"
+#include "lldb/API/SBTypeNameSpecifier.h"
+#include "lldb/API/SBTypeSummary.h"
+#include "lldb/API/SBTypeSynthetic.h"
+#include "lldb/API/SBValue.h"
+#include "lldb/API/SBValueList.h"
+#include "lldb/API/SBWatchpoint.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UINT32_MAX_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_UINT64_MAX_get() {
+ unsigned long long jresult ;
+ unsigned long long result;
+
+ result = (unsigned long long)(18446744073709551615ULL);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_GENERIC_ERROR_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_INVALID_BREAK_ID_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(0);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_DEFAULT_BREAK_SIZE_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(0);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_INVALID_WATCH_ID_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(0);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_WATCH_TYPE_READ_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1u << 0));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_WATCH_TYPE_WRITE_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1u << 1));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_PC_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(0);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_SP_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_FP_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_RA_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_FLAGS_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(4);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG1_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(5);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG2_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(6);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG3_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(7);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG4_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(8);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG5_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(9);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG6_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(10);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG7_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(11);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_REGNUM_GENERIC_ARG8_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(12);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_LLDB_INVALID_ADDRESS_get() {
+ unsigned long long jresult ;
+ unsigned long long result;
+
+ result = (unsigned long long)(18446744073709551615ULL);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_INVALID_INDEX32_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_INVALID_IVAR_OFFSET_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_INVALID_IMAGE_TOKEN_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_INVALID_REGNUM_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_LLDB_INVALID_UID_get() {
+ unsigned long long jresult ;
+ unsigned long long result;
+
+ result = (unsigned long long)(18446744073709551615ULL);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_INVALID_PROCESS_ID_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(0);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_INVALID_THREAD_ID_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(0);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_INVALID_FRAME_ID_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(4294967295U);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_LLDB_ARCH_DEFAULT_get() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)("systemArch");
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_LLDB_ARCH_DEFAULT_32BIT_get() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)("systemArch32");
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_LLDB_ARCH_DEFAULT_64BIT_get() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)("systemArch64");
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_INVALID_CPUTYPE_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((0xFFFFFFFEu));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_LLDB_MAX_NUM_OPTION_SETS_get() {
+ int jresult ;
+ int result;
+
+ result = (int)(32);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_ALL_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)(0xFFFFFFFFU);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_1_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 0));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_2_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 1));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_3_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 2));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_4_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 3));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_5_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 4));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_6_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 5));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_7_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 6));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_8_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 7));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_9_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 8));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LLDB_OPT_SET_10_get() {
+ unsigned int jresult ;
+ unsigned int result;
+
+ result = (unsigned int)((1U << 9));
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAddress__SWIG_0() {
+ void * jresult ;
+ lldb::SBAddress *result = 0 ;
+
+ result = (lldb::SBAddress *)new lldb::SBAddress();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAddress__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = 0 ;
+ lldb::SBAddress *result = 0 ;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAddress const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBAddress *)new lldb::SBAddress((lldb::SBAddress const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAddress__SWIG_2(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBSection arg1 ;
+ lldb::addr_t arg2 ;
+ lldb::SBSection *argp1 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBAddress *result = 0 ;
+
+ argp1 = (lldb::SBSection *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBSection", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (lldb::SBAddress *)new lldb::SBAddress(arg1,arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAddress__SWIG_3(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::addr_t arg1 ;
+ lldb::SBTarget *arg2 = 0 ;
+ lldb::addr_t *argp1 ;
+ lldb::SBAddress *result = 0 ;
+
+ argp1 = (lldb::addr_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBAddress *)new lldb::SBAddress(arg1,*arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBAddress(void * jarg1) {
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAddress_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (bool)((lldb::SBAddress const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAddress_Clear(void * jarg1) {
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetFileAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = ((lldb::SBAddress const *)arg1)->GetFileAddress();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetLoadAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBTarget *arg2 = 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget const & type is null", 0);
+ return 0;
+ }
+ result = ((lldb::SBAddress const *)arg1)->GetLoadAddress((lldb::SBTarget const &)*arg2);
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAddress_SetLoadAddress(void * jarg1, void * jarg2, void * jarg3) {
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::SBTarget *arg3 = 0 ;
+ lldb::addr_t *argp2 ;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBTarget *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return ;
+ }
+ (arg1)->SetLoadAddress(arg2,*arg3);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAddress_OffsetAddress(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->OffsetAddress(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAddress_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetSection(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBSection result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetSection();
+ jresult = new lldb::SBSection((const lldb::SBSection &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetOffset(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetOffset();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAddress_SetAddress(void * jarg1, void * jarg2, void * jarg3) {
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBSection arg2 ;
+ lldb::addr_t arg3 ;
+ lldb::SBSection *argp2 ;
+ lldb::addr_t *argp3 ;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ argp2 = (lldb::SBSection *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBSection", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ argp3 = (lldb::addr_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return ;
+ }
+ arg3 = *argp3;
+ (arg1)->SetAddress(arg2,arg3);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBAddress_GetAddressClass(void * jarg1) {
+ int jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::AddressClass result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (lldb::AddressClass)(arg1)->GetAddressClass();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetSymbolContext(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBSymbolContext result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSymbolContext(arg2);
+ jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetModule(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetModule();
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetCompileUnit(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBCompileUnit result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetCompileUnit();
+ jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetFunction(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBFunction result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetFunction();
+ jresult = new lldb::SBFunction((const lldb::SBFunction &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetBlock(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetBlock();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetSymbol(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBSymbol result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetSymbol();
+ jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAddress_GetLineEntry(void * jarg1) {
+ void * jresult ;
+ lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ;
+ lldb::SBLineEntry result;
+
+ arg1 = (lldb::SBAddress *)jarg1;
+ result = (arg1)->GetLineEntry();
+ jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBlock__SWIG_0() {
+ void * jresult ;
+ lldb::SBBlock *result = 0 ;
+
+ result = (lldb::SBBlock *)new lldb::SBBlock();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBlock__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = 0 ;
+ lldb::SBBlock *result = 0 ;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBlock const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBBlock *)new lldb::SBBlock((lldb::SBBlock const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBBlock(void * jarg1) {
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBlock_IsInlined(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (bool)((lldb::SBBlock const *)arg1)->IsInlined();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBlock_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (bool)((lldb::SBBlock const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBlock_GetInlinedName(void * jarg1) {
+ char * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (char *)((lldb::SBBlock const *)arg1)->GetInlinedName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetInlinedCallSiteFile(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = ((lldb::SBBlock const *)arg1)->GetInlinedCallSiteFile();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetInlinedCallSiteLine(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = ((lldb::SBBlock const *)arg1)->GetInlinedCallSiteLine();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetInlinedCallSiteColumn(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = ((lldb::SBBlock const *)arg1)->GetInlinedCallSiteColumn();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetParent(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (arg1)->GetParent();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetContainingInlinedBlock(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (arg1)->GetContainingInlinedBlock();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetSibling(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (arg1)->GetSibling();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetFirstChild(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (arg1)->GetFirstChild();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetNumRanges(void * jarg1) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ result = (arg1)->GetNumRanges();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetRangeStartAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetRangeStartAddress(arg2);
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetRangeEndAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetRangeEndAddress(arg2);
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetRangeIndexForBlockAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBAddress arg2 ;
+ lldb::SBAddress *argp2 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ argp2 = (lldb::SBAddress *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBAddress", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetRangeIndexForBlockAddress(arg2);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBlock_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetVariables__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, int jarg6) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBFrame *arg2 = 0 ;
+ bool arg3 ;
+ bool arg4 ;
+ bool arg5 ;
+ lldb::DynamicValueType arg6 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ arg2 = (lldb::SBFrame *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFrame & type is null", 0);
+ return 0;
+ }
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ arg5 = jarg5 ? true : false;
+ arg6 = (lldb::DynamicValueType)jarg6;
+ result = (arg1)->GetVariables(*arg2,arg3,arg4,arg5,arg6);
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBlock_GetVariables__SWIG_1(void * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5) {
+ void * jresult ;
+ lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ;
+ lldb::SBTarget *arg2 = 0 ;
+ bool arg3 ;
+ bool arg4 ;
+ bool arg5 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBBlock *)jarg1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return 0;
+ }
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ arg5 = jarg5 ? true : false;
+ result = (arg1)->GetVariables(*arg2,arg3,arg4,arg5);
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBreakpoint__SWIG_0() {
+ void * jresult ;
+ lldb::SBBreakpoint *result = 0 ;
+
+ result = (lldb::SBBreakpoint *)new lldb::SBBreakpoint();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBreakpoint__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = 0 ;
+ lldb::SBBreakpoint *result = 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBreakpoint const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBBreakpoint *)new lldb::SBBreakpoint((lldb::SBBreakpoint const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBBreakpoint(void * jarg1) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetID(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::break_id_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = ((lldb::SBBreakpoint const *)arg1)->GetID();
+ jresult = new lldb::break_id_t((const lldb::break_id_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpoint_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = (bool)((lldb::SBBreakpoint const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_ClearAllBreakpointSites(void * jarg1) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ (arg1)->ClearAllBreakpointSites();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_FindLocationByAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBBreakpointLocation result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindLocationByAddress(arg2);
+ jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_FindLocationIDByAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ lldb::break_id_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindLocationIDByAddress(arg2);
+ jresult = new lldb::break_id_t((const lldb::break_id_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_FindLocationByID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::break_id_t arg2 ;
+ lldb::break_id_t *argp2 ;
+ lldb::SBBreakpointLocation result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (lldb::break_id_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::break_id_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindLocationByID(arg2);
+ jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetLocationAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBBreakpointLocation result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetLocationAtIndex(arg2);
+ jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetEnabled(void * jarg1, unsigned int jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetEnabled(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpoint_IsEnabled(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = (bool)(arg1)->IsEnabled();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetHitCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = ((lldb::SBBreakpoint const *)arg1)->GetHitCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetIgnoreCount(void * jarg1, void * jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetIgnoreCount(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetIgnoreCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = ((lldb::SBBreakpoint const *)arg1)->GetIgnoreCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetCondition(void * jarg1, char * jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetCondition((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBreakpoint_GetCondition(void * jarg1) {
+ char * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = (char *)(arg1)->GetCondition();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetThreadID(void * jarg1, void * jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::tid_t arg2 ;
+ lldb::tid_t *argp2 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (lldb::tid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::tid_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetThreadID(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetThreadID(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::tid_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = (arg1)->GetThreadID();
+ jresult = new lldb::tid_t((const lldb::tid_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetThreadIndex(void * jarg1, void * jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetThreadIndex(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetThreadIndex(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = ((lldb::SBBreakpoint const *)arg1)->GetThreadIndex();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetThreadName(void * jarg1, char * jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetThreadName((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBreakpoint_GetThreadName(void * jarg1) {
+ char * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = (char *)((lldb::SBBreakpoint const *)arg1)->GetThreadName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetQueueName(void * jarg1, char * jarg2) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetQueueName((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBreakpoint_GetQueueName(void * jarg1) {
+ char * jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = (char *)((lldb::SBBreakpoint const *)arg1)->GetQueueName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpoint_SetCallback(void * jarg1, void * jarg2, void* jarg3) {
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::SBBreakpoint::BreakpointHitCallback arg2 = (lldb::SBBreakpoint::BreakpointHitCallback) 0 ;
+ void *arg3 = (void *) 0 ;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ arg2 = (lldb::SBBreakpoint::BreakpointHitCallback)jarg2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ (arg1)->SetCallback(arg2,arg3);
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBBreakpoint_GetNumResolvedLocations(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = ((lldb::SBBreakpoint const *)arg1)->GetNumResolvedLocations();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBBreakpoint_GetNumLocations(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ result = ((lldb::SBBreakpoint const *)arg1)->GetNumLocations();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpoint_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpoint *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpoint_EventIsBreakpointEvent(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (bool)lldb::SBBreakpoint::EventIsBreakpointEvent((lldb::SBEvent const &)*arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBBreakpoint_GetBreakpointEventTypeFromEvent(void * jarg1) {
+ int jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ lldb::BreakpointEventType result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::BreakpointEventType)lldb::SBBreakpoint::GetBreakpointEventTypeFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetBreakpointFromEvent(void * jarg1) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = lldb::SBBreakpoint::GetBreakpointFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBBreakpointLocation result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = lldb::SBBreakpoint::GetBreakpointLocationAtIndexFromEvent((lldb::SBEvent const &)*arg1,arg2);
+ jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpoint_GetNumBreakpointLocationsFromEvent(void * jarg1) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = lldb::SBBreakpoint::GetNumBreakpointLocationsFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBreakpointLocation__SWIG_0() {
+ void * jresult ;
+ lldb::SBBreakpointLocation *result = 0 ;
+
+ result = (lldb::SBBreakpointLocation *)new lldb::SBBreakpointLocation();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBreakpointLocation__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = 0 ;
+ lldb::SBBreakpointLocation *result = 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBreakpointLocation const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBBreakpointLocation *)new lldb::SBBreakpointLocation((lldb::SBBreakpointLocation const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBBreakpointLocation(void * jarg1) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetID(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::break_id_t result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (arg1)->GetID();
+ jresult = new lldb::break_id_t((const lldb::break_id_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpointLocation_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (bool)((lldb::SBBreakpointLocation const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (arg1)->GetAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetLoadAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (arg1)->GetLoadAddress();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetEnabled(void * jarg1, unsigned int jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetEnabled(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpointLocation_IsEnabled(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (bool)(arg1)->IsEnabled();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetIgnoreCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (arg1)->GetIgnoreCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetIgnoreCount(void * jarg1, void * jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetIgnoreCount(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetCondition(void * jarg1, char * jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetCondition((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBreakpointLocation_GetCondition(void * jarg1) {
+ char * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (char *)(arg1)->GetCondition();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetThreadID(void * jarg1, void * jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::tid_t arg2 ;
+ lldb::tid_t *argp2 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ argp2 = (lldb::tid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::tid_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetThreadID(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetThreadID(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::tid_t result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (arg1)->GetThreadID();
+ jresult = new lldb::tid_t((const lldb::tid_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetThreadIndex(void * jarg1, void * jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetThreadIndex(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetThreadIndex(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = ((lldb::SBBreakpointLocation const *)arg1)->GetThreadIndex();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetThreadName(void * jarg1, char * jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetThreadName((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBreakpointLocation_GetThreadName(void * jarg1) {
+ char * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (char *)((lldb::SBBreakpointLocation const *)arg1)->GetThreadName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBreakpointLocation_SetQueueName(void * jarg1, char * jarg2) {
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetQueueName((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBreakpointLocation_GetQueueName(void * jarg1) {
+ char * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (char *)((lldb::SBBreakpointLocation const *)arg1)->GetQueueName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpointLocation_IsResolved(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (bool)(arg1)->IsResolved();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBreakpointLocation_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBreakpointLocation_GetBreakpoint(void * jarg1) {
+ void * jresult ;
+ lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBBreakpointLocation *)jarg1;
+ result = (arg1)->GetBreakpoint();
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBroadcaster__SWIG_0() {
+ void * jresult ;
+ lldb::SBBroadcaster *result = 0 ;
+
+ result = (lldb::SBBroadcaster *)new lldb::SBBroadcaster();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBroadcaster__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBBroadcaster *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ result = (lldb::SBBroadcaster *)new lldb::SBBroadcaster((char const *)arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBBroadcaster__SWIG_2(void * jarg1) {
+ void * jresult ;
+ lldb::SBBroadcaster *arg1 = 0 ;
+ lldb::SBBroadcaster *result = 0 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBBroadcaster *)new lldb::SBBroadcaster((lldb::SBBroadcaster const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBBroadcaster(void * jarg1) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBroadcaster_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ result = (bool)((lldb::SBBroadcaster const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBroadcaster_Clear(void * jarg1) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBroadcaster_BroadcastEventByType__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ uint32_t arg2 ;
+ bool arg3 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->BroadcastEventByType(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBroadcaster_BroadcastEventByType__SWIG_1(void * jarg1, void * jarg2) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->BroadcastEventByType(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBroadcaster_BroadcastEvent__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return ;
+ }
+ arg3 = jarg3 ? true : false;
+ (arg1)->BroadcastEvent((lldb::SBEvent const &)*arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBroadcaster_BroadcastEvent__SWIG_1(void * jarg1, void * jarg2) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return ;
+ }
+ (arg1)->BroadcastEvent((lldb::SBEvent const &)*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBBroadcaster_AddInitialEventsToListener(void * jarg1, void * jarg2, void * jarg3) {
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener const & type is null", 0);
+ return ;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg3 = *argp3;
+ (arg1)->AddInitialEventsToListener((lldb::SBListener const &)*arg2,arg3);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBBroadcaster_AddListener(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->AddListener((lldb::SBListener const &)*arg2,arg3);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBBroadcaster_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ result = (char *)((lldb::SBBroadcaster const *)arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBroadcaster_EventTypeHasListeners(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->EventTypeHasListeners(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBroadcaster_RemoveListener__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->RemoveListener((lldb::SBListener const &)*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBBroadcaster_RemoveListener__SWIG_1(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBBroadcaster *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->RemoveListener((lldb::SBListener const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_eBroadcastBitThreadShouldExit_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommandInterpreter::eBroadcastBitThreadShouldExit;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_eBroadcastBitResetPrompt_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommandInterpreter::eBroadcastBitResetPrompt;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_eBroadcastBitQuitCommandReceived_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommandInterpreter::eBroadcastBitQuitCommandReceived;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_eBroadcastBitAsynchronousOutputData_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommandInterpreter::eBroadcastBitAsynchronousOutputData;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_eBroadcastBitAsynchronousErrorData_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommandInterpreter::eBroadcastBitAsynchronousErrorData;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCommandInterpreter(void * jarg1) {
+ void * jresult ;
+ lldb::SBCommandInterpreter *arg1 = 0 ;
+ lldb::SBCommandInterpreter *result = 0 ;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandInterpreter const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBCommandInterpreter *)new lldb::SBCommandInterpreter((lldb::SBCommandInterpreter const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBCommandInterpreter(void * jarg1) {
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBCommandInterpreter_GetArgumentTypeAsCString(int jarg1) {
+ char * jresult ;
+ lldb::CommandArgumentType arg1 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::CommandArgumentType)jarg1;
+ result = (char *)lldb::SBCommandInterpreter::GetArgumentTypeAsCString(arg1);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBCommandInterpreter_GetArgumentDescriptionAsCString(int jarg1) {
+ char * jresult ;
+ lldb::CommandArgumentType arg1 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::CommandArgumentType)jarg1;
+ result = (char *)lldb::SBCommandInterpreter::GetArgumentDescriptionAsCString(arg1);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandInterpreter_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ result = (bool)((lldb::SBCommandInterpreter const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandInterpreter_CommandExists(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->CommandExists((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandInterpreter_AliasExists(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->AliasExists((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCommandInterpreter_GetBroadcaster(void * jarg1) {
+ void * jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ lldb::SBBroadcaster result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ result = (arg1)->GetBroadcaster();
+ jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBCommandInterpreter_GetBroadcasterClass() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)lldb::SBCommandInterpreter::GetBroadcasterClass();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandInterpreter_HasCommands(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ result = (bool)(arg1)->HasCommands();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandInterpreter_HasAliases(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ result = (bool)(arg1)->HasAliases();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandInterpreter_HasAliasOptions(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ result = (bool)(arg1)->HasAliasOptions();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCommandInterpreter_GetProcess(void * jarg1) {
+ void * jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ result = (arg1)->GetProcess();
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandInterpreter_SourceInitFileInHomeDirectory(void * jarg1, void * jarg2) {
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ lldb::SBCommandReturnObject *arg2 = 0 ;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (lldb::SBCommandReturnObject *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandReturnObject & type is null", 0);
+ return ;
+ }
+ (arg1)->SourceInitFileInHomeDirectory(*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandInterpreter_SourceInitFileInCurrentWorkingDirectory(void * jarg1, void * jarg2) {
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ lldb::SBCommandReturnObject *arg2 = 0 ;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (lldb::SBCommandReturnObject *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandReturnObject & type is null", 0);
+ return ;
+ }
+ (arg1)->SourceInitFileInCurrentWorkingDirectory(*arg2);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_HandleCommand__SWIG_0(void * jarg1, char * jarg2, void * jarg3, unsigned int jarg4) {
+ int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBCommandReturnObject *arg3 = 0 ;
+ bool arg4 ;
+ lldb::ReturnStatus result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::SBCommandReturnObject *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandReturnObject & type is null", 0);
+ return 0;
+ }
+ arg4 = jarg4 ? true : false;
+ result = (lldb::ReturnStatus)(arg1)->HandleCommand((char const *)arg2,*arg3,arg4);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_HandleCommand__SWIG_1(void * jarg1, char * jarg2, void * jarg3) {
+ int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBCommandReturnObject *arg3 = 0 ;
+ lldb::ReturnStatus result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::SBCommandReturnObject *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandReturnObject & type is null", 0);
+ return 0;
+ }
+ result = (lldb::ReturnStatus)(arg1)->HandleCommand((char const *)arg2,*arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandInterpreter_HandleCompletion(void * jarg1, char * jarg2, void * jarg3, int jarg4, int jarg5, void * jarg6) {
+ int jresult ;
+ lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ int arg4 ;
+ int arg5 ;
+ lldb::SBStringList *arg6 = 0 ;
+ uint32_t *argp3 ;
+ int result;
+
+ arg1 = (lldb::SBCommandInterpreter *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (int)jarg4;
+ arg5 = (int)jarg5;
+ arg6 = (lldb::SBStringList *)jarg6;
+ if (!arg6) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStringList & type is null", 0);
+ return 0;
+ }
+ result = (int)(arg1)->HandleCompletion((char const *)arg2,arg3,arg4,arg5,*arg6);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCommandReturnObject__SWIG_0() {
+ void * jresult ;
+ lldb::SBCommandReturnObject *result = 0 ;
+
+ result = (lldb::SBCommandReturnObject *)new lldb::SBCommandReturnObject();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCommandReturnObject__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBCommandReturnObject *arg1 = 0 ;
+ lldb::SBCommandReturnObject *result = 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandReturnObject const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBCommandReturnObject *)new lldb::SBCommandReturnObject((lldb::SBCommandReturnObject const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBCommandReturnObject(void * jarg1) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandReturnObject_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (bool)((lldb::SBCommandReturnObject const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBCommandReturnObject_GetOutput(void * jarg1) {
+ char * jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (char *)(arg1)->GetOutput();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBCommandReturnObject_GetError(void * jarg1) {
+ char * jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (char *)(arg1)->GetError();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommandReturnObject_PutOutput(void * jarg1, void * jarg2) {
+ unsigned long jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (FILE *)jarg2;
+ result = (arg1)->PutOutput(arg2);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommandReturnObject_GetOutputSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (arg1)->GetOutputSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommandReturnObject_GetErrorSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (arg1)->GetErrorSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommandReturnObject_PutError(void * jarg1, void * jarg2) {
+ unsigned long jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (FILE *)jarg2;
+ result = (arg1)->PutError(arg2);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_Clear(void * jarg1) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_SetStatus(void * jarg1, int jarg2) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ lldb::ReturnStatus arg2 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (lldb::ReturnStatus)jarg2;
+ (arg1)->SetStatus(arg2);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommandReturnObject_GetStatus(void * jarg1) {
+ int jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ lldb::ReturnStatus result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (lldb::ReturnStatus)(arg1)->GetStatus();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandReturnObject_Succeeded(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (bool)(arg1)->Succeeded();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandReturnObject_HasResult(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ result = (bool)(arg1)->HasResult();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_AppendMessage(void * jarg1, char * jarg2) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->AppendMessage((char const *)arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommandReturnObject_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_SetImmediateOutputFile(void * jarg1, void * jarg2) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (FILE *)jarg2;
+ (arg1)->SetImmediateOutputFile(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_SetImmediateErrorFile(void * jarg1, void * jarg2) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (FILE *)jarg2;
+ (arg1)->SetImmediateErrorFile(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_PutCString__SWIG_0(void * jarg1, char * jarg2, int jarg3) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int arg3 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (int)jarg3;
+ (arg1)->PutCString((char const *)arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommandReturnObject_PutCString__SWIG_1(void * jarg1, char * jarg2) {
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->PutCString((char const *)arg2);
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommandReturnObject_Printf(void * jarg1, char * jarg2) {
+ unsigned long jresult ;
+ lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *arg3 = 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommandReturnObject *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->Printf((char const *)arg2,arg3);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_eBroadcastBitDisconnected_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommunication::eBroadcastBitDisconnected;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_eBroadcastBitReadThreadGotBytes_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommunication::eBroadcastBitReadThreadGotBytes;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_eBroadcastBitReadThreadDidExit_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommunication::eBroadcastBitReadThreadDidExit;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_eBroadcastBitReadThreadShouldExit_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommunication::eBroadcastBitReadThreadShouldExit;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_eBroadcastBitPacketAvailable_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommunication::eBroadcastBitPacketAvailable;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_eAllEventBits_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBCommunication::eAllEventBits;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCommunication__SWIG_0() {
+ void * jresult ;
+ lldb::SBCommunication *result = 0 ;
+
+ result = (lldb::SBCommunication *)new lldb::SBCommunication();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCommunication__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBCommunication *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ result = (lldb::SBCommunication *)new lldb::SBCommunication((char const *)arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBCommunication(void * jarg1) {
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (bool)((lldb::SBCommunication const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCommunication_GetBroadcaster(void * jarg1) {
+ void * jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ lldb::SBBroadcaster result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (arg1)->GetBroadcaster();
+ jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBCommunication_GetBroadcasterClass() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)lldb::SBCommunication::GetBroadcasterClass();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_AdoptFileDesriptor(void * jarg1, int jarg2, unsigned int jarg3) {
+ int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ int arg2 ;
+ bool arg3 ;
+ lldb::ConnectionStatus result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ arg2 = (int)jarg2;
+ arg3 = jarg3 ? true : false;
+ result = (lldb::ConnectionStatus)(arg1)->AdoptFileDesriptor(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_Connect(void * jarg1, char * jarg2) {
+ int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::ConnectionStatus result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (lldb::ConnectionStatus)(arg1)->Connect((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBCommunication_Disconnect(void * jarg1) {
+ int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ lldb::ConnectionStatus result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (lldb::ConnectionStatus)(arg1)->Disconnect();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_IsConnected(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (bool)((lldb::SBCommunication const *)arg1)->IsConnected();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_GetCloseOnEOF(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (bool)(arg1)->GetCloseOnEOF();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBCommunication_SetCloseOnEOF(void * jarg1, unsigned int jarg2) {
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetCloseOnEOF(arg2);
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommunication_Read(void * jarg1, void* jarg2, unsigned long jarg3, void * jarg4, void * jarg5) {
+ unsigned long jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ void *arg2 = (void *) 0 ;
+ size_t arg3 ;
+ uint32_t arg4 ;
+ lldb::ConnectionStatus *arg5 = 0 ;
+ uint32_t *argp4 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ arg2 = (void *)jarg2; /* IntPtr */
+ arg3 = (size_t)jarg3;
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ arg5 = (lldb::ConnectionStatus *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::ConnectionStatus & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->Read(arg2,arg3,arg4,*arg5);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBCommunication_Write(void * jarg1, void* jarg2, unsigned long jarg3, void * jarg4) {
+ unsigned long jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ void *arg2 = (void *) 0 ;
+ size_t arg3 ;
+ lldb::ConnectionStatus *arg4 = 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ arg2 = (void *)jarg2; /* IntPtr */
+ arg3 = (size_t)jarg3;
+ arg4 = (lldb::ConnectionStatus *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::ConnectionStatus & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->Write((void const *)arg2,arg3,*arg4);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_ReadThreadStart(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (bool)(arg1)->ReadThreadStart();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_ReadThreadStop(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (bool)(arg1)->ReadThreadStop();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_ReadThreadIsRunning(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ result = (bool)(arg1)->ReadThreadIsRunning();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCommunication_SetReadThreadBytesReceivedCallback(void * jarg1, void * jarg2, void* jarg3) {
+ unsigned int jresult ;
+ lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ;
+ lldb::SBCommunication::ReadThreadBytesReceived arg2 = (lldb::SBCommunication::ReadThreadBytesReceived) 0 ;
+ void *arg3 = (void *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCommunication *)jarg1;
+ arg2 = (lldb::SBCommunication::ReadThreadBytesReceived)jarg2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ result = (bool)(arg1)->SetReadThreadBytesReceivedCallback(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCompileUnit__SWIG_0() {
+ void * jresult ;
+ lldb::SBCompileUnit *result = 0 ;
+
+ result = (lldb::SBCompileUnit *)new lldb::SBCompileUnit();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBCompileUnit__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = 0 ;
+ lldb::SBCompileUnit *result = 0 ;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCompileUnit const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBCompileUnit *)new lldb::SBCompileUnit((lldb::SBCompileUnit const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBCompileUnit(void * jarg1) {
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCompileUnit_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ result = (bool)((lldb::SBCompileUnit const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_GetFileSpec(void * jarg1) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ result = ((lldb::SBCompileUnit const *)arg1)->GetFileSpec();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_GetNumLineEntries(void * jarg1) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ result = ((lldb::SBCompileUnit const *)arg1)->GetNumLineEntries();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_GetLineEntryAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBLineEntry result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBCompileUnit const *)arg1)->GetLineEntryAtIndex(arg2);
+ jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_FindLineEntryIndex__SWIG_0(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t arg2 ;
+ uint32_t arg3 ;
+ lldb::SBFileSpec *arg4 = (lldb::SBFileSpec *) 0 ;
+ uint32_t *argp2 ;
+ uint32_t *argp3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBFileSpec *)jarg4;
+ result = ((lldb::SBCompileUnit const *)arg1)->FindLineEntryIndex(arg2,arg3,arg4);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_FindLineEntryIndex__SWIG_1(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int jarg5) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t arg2 ;
+ uint32_t arg3 ;
+ lldb::SBFileSpec *arg4 = (lldb::SBFileSpec *) 0 ;
+ bool arg5 ;
+ uint32_t *argp2 ;
+ uint32_t *argp3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBFileSpec *)jarg4;
+ arg5 = jarg5 ? true : false;
+ result = ((lldb::SBCompileUnit const *)arg1)->FindLineEntryIndex(arg2,arg3,arg4,arg5);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_GetSupportFileAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBCompileUnit const *)arg1)->GetSupportFileAtIndex(arg2);
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_GetNumSupportFiles(void * jarg1) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ result = ((lldb::SBCompileUnit const *)arg1)->GetNumSupportFiles();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBCompileUnit_FindSupportFileIndex(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4) {
+ void * jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ uint32_t arg2 ;
+ lldb::SBFileSpec *arg3 = 0 ;
+ bool arg4 ;
+ uint32_t *argp2 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBFileSpec *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ arg4 = jarg4 ? true : false;
+ result = (arg1)->FindSupportFileIndex(arg2,(lldb::SBFileSpec const &)*arg3,arg4);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBCompileUnit_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBCompileUnit *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBData__SWIG_0() {
+ void * jresult ;
+ lldb::SBData *result = 0 ;
+
+ result = (lldb::SBData *)new lldb::SBData();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBData__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBData *arg1 = 0 ;
+ lldb::SBData *result = 0 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBData const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBData *)new lldb::SBData((lldb::SBData const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBData(void * jarg1) {
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetAddressByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ uint8_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ result = (arg1)->GetAddressByteSize();
+ jresult = new uint8_t((const uint8_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBData_SetAddressByteSize(void * jarg1, void * jarg2) {
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ uint8_t arg2 ;
+ uint8_t *argp2 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ argp2 = (uint8_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint8_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetAddressByteSize(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBData_Clear(void * jarg1) {
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ result = (bool)(arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBData_GetByteSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ result = (arg1)->GetByteSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBData_GetByteOrder(void * jarg1) {
+ int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::ByteOrder result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ result = (lldb::ByteOrder)(arg1)->GetByteOrder();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBData_SetByteOrder(void * jarg1, int jarg2) {
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::ByteOrder arg2 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::ByteOrder)jarg2;
+ (arg1)->SetByteOrder(arg2);
+}
+
+
+SWIGEXPORT float SWIGSTDCALL CSharp_SBData_GetFloat(void * jarg1, void * jarg2, void * jarg3) {
+ float jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ float result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (float)(arg1)->GetFloat(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT double SWIGSTDCALL CSharp_SBData_GetDouble(void * jarg1, void * jarg2, void * jarg3) {
+ double jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ double result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (double)(arg1)->GetDouble(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetLongDouble(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ long double result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (long double)(arg1)->GetLongDouble(*arg2,arg3);
+ jresult = new long double((const long double &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetAddress(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetAddress(*arg2,arg3);
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetUnsignedInt8(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint8_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetUnsignedInt8(*arg2,arg3);
+ jresult = new uint8_t((const uint8_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetUnsignedInt16(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint16_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetUnsignedInt16(*arg2,arg3);
+ jresult = new uint16_t((const uint16_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetUnsignedInt32(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetUnsignedInt32(*arg2,arg3);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetUnsignedInt64(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetUnsignedInt64(*arg2,arg3);
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetSignedInt8(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ int8_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetSignedInt8(*arg2,arg3);
+ jresult = new int8_t((const int8_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetSignedInt16(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ int16_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetSignedInt16(*arg2,arg3);
+ jresult = new int16_t((const int16_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetSignedInt32(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ int32_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetSignedInt32(*arg2,arg3);
+ jresult = new int32_t((const int32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_GetSignedInt64(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ int64_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetSignedInt64(*arg2,arg3);
+ jresult = new int64_t((const int64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBData_GetString(void * jarg1, void * jarg2, void * jarg3) {
+ char * jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (char *)(arg1)->GetString(*arg2,arg3);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_GetDescription(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::addr_t arg3 ;
+ lldb::addr_t *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ argp3 = (lldb::addr_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBData_ReadRawData(void * jarg1, void * jarg2, void * jarg3, void* jarg4, unsigned long jarg5) {
+ unsigned long jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t arg3 ;
+ void *arg4 = (void *) 0 ;
+ size_t arg5 ;
+ uint32_t *argp3 ;
+ size_t result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (void *)jarg4; /* IntPtr */
+ arg5 = (size_t)jarg5;
+ result = (arg1)->ReadRawData(*arg2,arg3,arg4,arg5);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBData_SetData(void * jarg1, void * jarg2, void* jarg3, unsigned long jarg4, int jarg5, void * jarg6) {
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ void *arg3 = (void *) 0 ;
+ size_t arg4 ;
+ lldb::ByteOrder arg5 ;
+ uint8_t arg6 ;
+ uint8_t *argp6 ;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return ;
+ }
+ arg3 = (void *)jarg3; /* IntPtr */
+ arg4 = (size_t)jarg4;
+ arg5 = (lldb::ByteOrder)jarg5;
+ argp6 = (uint8_t *)jarg6;
+ if (!argp6) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint8_t", 0);
+ return ;
+ }
+ arg6 = *argp6;
+ (arg1)->SetData(*arg2,(void const *)arg3,arg4,arg5,arg6);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_Append(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ lldb::SBData *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (lldb::SBData *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBData const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->Append((lldb::SBData const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_CreateDataFromCString(int jarg1, void * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::ByteOrder arg1 ;
+ uint32_t arg2 ;
+ char *arg3 = (char *) 0 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::ByteOrder)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (char *)jarg3;
+ result = lldb::SBData::CreateDataFromCString(arg1,arg2,(char const *)arg3);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_CreateDataFromUInt64Array(int jarg1, void * jarg2, void * jarg3, unsigned long jarg4) {
+ void * jresult ;
+ lldb::ByteOrder arg1 ;
+ uint32_t arg2 ;
+ uint64_t *arg3 = (uint64_t *) 0 ;
+ size_t arg4 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::ByteOrder)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (uint64_t *)jarg3;
+ arg4 = (size_t)jarg4;
+ result = lldb::SBData::CreateDataFromUInt64Array(arg1,arg2,arg3,arg4);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_CreateDataFromUInt32Array(int jarg1, void * jarg2, void * jarg3, unsigned long jarg4) {
+ void * jresult ;
+ lldb::ByteOrder arg1 ;
+ uint32_t arg2 ;
+ uint32_t *arg3 = (uint32_t *) 0 ;
+ size_t arg4 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::ByteOrder)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (uint32_t *)jarg3;
+ arg4 = (size_t)jarg4;
+ result = lldb::SBData::CreateDataFromUInt32Array(arg1,arg2,arg3,arg4);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_CreateDataFromSInt64Array(int jarg1, void * jarg2, void * jarg3, unsigned long jarg4) {
+ void * jresult ;
+ lldb::ByteOrder arg1 ;
+ uint32_t arg2 ;
+ int64_t *arg3 = (int64_t *) 0 ;
+ size_t arg4 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::ByteOrder)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (int64_t *)jarg3;
+ arg4 = (size_t)jarg4;
+ result = lldb::SBData::CreateDataFromSInt64Array(arg1,arg2,arg3,arg4);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_CreateDataFromSInt32Array(int jarg1, void * jarg2, void * jarg3, unsigned long jarg4) {
+ void * jresult ;
+ lldb::ByteOrder arg1 ;
+ uint32_t arg2 ;
+ int32_t *arg3 = (int32_t *) 0 ;
+ size_t arg4 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::ByteOrder)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (int32_t *)jarg3;
+ arg4 = (size_t)jarg4;
+ result = lldb::SBData::CreateDataFromSInt32Array(arg1,arg2,arg3,arg4);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBData_CreateDataFromDoubleArray(int jarg1, void * jarg2, void * jarg3, unsigned long jarg4) {
+ void * jresult ;
+ lldb::ByteOrder arg1 ;
+ uint32_t arg2 ;
+ double *arg3 = (double *) 0 ;
+ size_t arg4 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::ByteOrder)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (double *)jarg3;
+ arg4 = (size_t)jarg4;
+ result = lldb::SBData::CreateDataFromDoubleArray(arg1,arg2,arg3,arg4);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_SetDataFromCString(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->SetDataFromCString((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_SetDataFromUInt64Array(void * jarg1, void * jarg2, unsigned long jarg3) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ uint64_t *arg2 = (uint64_t *) 0 ;
+ size_t arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (uint64_t *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (bool)(arg1)->SetDataFromUInt64Array(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_SetDataFromUInt32Array(void * jarg1, void * jarg2, unsigned long jarg3) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ uint32_t *arg2 = (uint32_t *) 0 ;
+ size_t arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (uint32_t *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (bool)(arg1)->SetDataFromUInt32Array(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_SetDataFromSInt64Array(void * jarg1, void * jarg2, unsigned long jarg3) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ int64_t *arg2 = (int64_t *) 0 ;
+ size_t arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (int64_t *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (bool)(arg1)->SetDataFromSInt64Array(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_SetDataFromSInt32Array(void * jarg1, void * jarg2, unsigned long jarg3) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ int32_t *arg2 = (int32_t *) 0 ;
+ size_t arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (int32_t *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (bool)(arg1)->SetDataFromSInt32Array(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBData_SetDataFromDoubleArray(void * jarg1, void * jarg2, unsigned long jarg3) {
+ unsigned int jresult ;
+ lldb::SBData *arg1 = (lldb::SBData *) 0 ;
+ double *arg2 = (double *) 0 ;
+ size_t arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBData *)jarg1;
+ arg2 = (double *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (bool)(arg1)->SetDataFromDoubleArray(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_Initialize() {
+ lldb::SBDebugger::Initialize();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_Terminate() {
+ lldb::SBDebugger::Terminate();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_Create__SWIG_0() {
+ void * jresult ;
+ lldb::SBDebugger result;
+
+ result = lldb::SBDebugger::Create();
+ jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_Create__SWIG_1(unsigned int jarg1) {
+ void * jresult ;
+ bool arg1 ;
+ lldb::SBDebugger result;
+
+ arg1 = jarg1 ? true : false;
+ result = lldb::SBDebugger::Create(arg1);
+ jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_Create__SWIG_2(unsigned int jarg1, void * jarg2, void* jarg3) {
+ void * jresult ;
+ bool arg1 ;
+ lldb::LogOutputCallback arg2 = (lldb::LogOutputCallback) 0 ;
+ void *arg3 = (void *) 0 ;
+ lldb::SBDebugger result;
+
+ arg1 = jarg1 ? true : false;
+ arg2 = (lldb::LogOutputCallback)jarg2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ result = lldb::SBDebugger::Create(arg1,arg2,arg3);
+ jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_Destroy(void * jarg1) {
+ lldb::SBDebugger *arg1 = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBDebugger & type is null", 0);
+ return ;
+ }
+ lldb::SBDebugger::Destroy(*arg1);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_MemoryPressureDetected() {
+ lldb::SBDebugger::MemoryPressureDetected();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBDebugger__SWIG_0() {
+ void * jresult ;
+ lldb::SBDebugger *result = 0 ;
+
+ result = (lldb::SBDebugger *)new lldb::SBDebugger();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBDebugger__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = 0 ;
+ lldb::SBDebugger *result = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBDebugger const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBDebugger *)new lldb::SBDebugger((lldb::SBDebugger const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBDebugger(void * jarg1) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (bool)((lldb::SBDebugger const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_Clear(void * jarg1) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetAsync(void * jarg1, unsigned int jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetAsync(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_GetAsync(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (bool)(arg1)->GetAsync();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SkipLLDBInitFiles(void * jarg1, unsigned int jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SkipLLDBInitFiles(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetInputFileHandle(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (FILE *)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->SetInputFileHandle(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetOutputFileHandle(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (FILE *)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->SetOutputFileHandle(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetErrorFileHandle(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (FILE *)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->SetErrorFileHandle(arg2,arg3);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetInputFileHandle(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ FILE *result = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (FILE *)(arg1)->GetInputFileHandle();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetOutputFileHandle(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ FILE *result = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (FILE *)(arg1)->GetOutputFileHandle();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetErrorFileHandle(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ FILE *result = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (FILE *)(arg1)->GetErrorFileHandle();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetCommandInterpreter(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ SwigValueWrapper< lldb::SBCommandInterpreter > result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetCommandInterpreter();
+ jresult = new lldb::SBCommandInterpreter((const lldb::SBCommandInterpreter &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_HandleCommand(void * jarg1, char * jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->HandleCommand((char const *)arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetListener(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBListener result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetListener();
+ jresult = new lldb::SBListener((const lldb::SBListener &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_HandleProcessEvent(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBProcess *arg2 = 0 ;
+ lldb::SBEvent *arg3 = 0 ;
+ FILE *arg4 = (FILE *) 0 ;
+ FILE *arg5 = (FILE *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::SBProcess *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBProcess const & type is null", 0);
+ return ;
+ }
+ arg3 = (lldb::SBEvent *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return ;
+ }
+ arg4 = (FILE *)jarg4;
+ arg5 = (FILE *)jarg5;
+ (arg1)->HandleProcessEvent((lldb::SBProcess const &)*arg2,(lldb::SBEvent const &)*arg3,arg4,arg5);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_CreateTarget__SWIG_0(void * jarg1, char * jarg2, char * jarg3, char * jarg4, unsigned int jarg5, void * jarg6) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ bool arg5 ;
+ lldb::SBError *arg6 = 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ arg4 = (char *)jarg4;
+ arg5 = jarg5 ? true : false;
+ arg6 = (lldb::SBError *)jarg6;
+ if (!arg6) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->CreateTarget((char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,*arg6);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_CreateTargetWithFileAndTargetTriple(void * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = (arg1)->CreateTargetWithFileAndTargetTriple((char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_CreateTargetWithFileAndArch(void * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = (arg1)->CreateTargetWithFileAndArch((char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_CreateTarget__SWIG_1(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->CreateTarget((char const *)arg2);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_DeleteTarget(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTarget *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->DeleteTarget(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetTargetAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTargetAtIndex(arg2);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetIndexOfTarget(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetIndexOfTarget(arg2);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_FindTargetWithProcessID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::pid_t arg2 ;
+ lldb::pid_t *argp2 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (lldb::pid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::pid_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindTargetWithProcessID(arg2);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_FindTargetWithFileAndArch(void * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = (arg1)->FindTargetWithFileAndArch((char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetNumTargets(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetNumTargets();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetSelectedTarget(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetSelectedTarget();
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetSelectedTarget(void * jarg1, void * jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTarget *arg2 = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return ;
+ }
+ (arg1)->SetSelectedTarget(*arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetSourceManager(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ SwigValueWrapper< lldb::SBSourceManager > result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetSourceManager();
+ jresult = new lldb::SBSourceManager((const lldb::SBSourceManager &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_SetCurrentPlatform(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->SetCurrentPlatform((char const *)arg2);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_SetCurrentPlatformSDKRoot(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->SetCurrentPlatformSDKRoot((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_SetUseExternalEditor(void * jarg1, unsigned int jarg2) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool arg2 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = jarg2 ? true : false;
+ result = (bool)(arg1)->SetUseExternalEditor(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_GetUseExternalEditor(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (bool)(arg1)->GetUseExternalEditor();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_GetDefaultArchitecture(char * jarg1, unsigned long jarg2) {
+ unsigned int jresult ;
+ char *arg1 = (char *) 0 ;
+ size_t arg2 ;
+ bool result;
+
+ arg1 = (char *)jarg1;
+ arg2 = (size_t)jarg2;
+ result = (bool)lldb::SBDebugger::GetDefaultArchitecture(arg1,arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_SetDefaultArchitecture(char * jarg1) {
+ unsigned int jresult ;
+ char *arg1 = (char *) 0 ;
+ bool result;
+
+ arg1 = (char *)jarg1;
+ result = (bool)lldb::SBDebugger::SetDefaultArchitecture((char const *)arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBDebugger_GetScriptingLanguage(void * jarg1, char * jarg2) {
+ int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::ScriptLanguage result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (lldb::ScriptLanguage)(arg1)->GetScriptingLanguage((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBDebugger_GetVersionString() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)lldb::SBDebugger::GetVersionString();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBDebugger_StateAsCString(int jarg1) {
+ char * jresult ;
+ lldb::StateType arg1 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::StateType)jarg1;
+ result = (char *)lldb::SBDebugger::StateAsCString(arg1);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_StateIsRunningState(int jarg1) {
+ unsigned int jresult ;
+ lldb::StateType arg1 ;
+ bool result;
+
+ arg1 = (lldb::StateType)jarg1;
+ result = (bool)lldb::SBDebugger::StateIsRunningState(arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_StateIsStoppedState(int jarg1) {
+ unsigned int jresult ;
+ lldb::StateType arg1 ;
+ bool result;
+
+ arg1 = (lldb::StateType)jarg1;
+ result = (bool)lldb::SBDebugger::StateIsStoppedState(arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_EnableLog(void * jarg1, char * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char **arg3 = (char **) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char **)jarg3;
+ result = (bool)(arg1)->EnableLog((char const *)arg2,(char const **)arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetLoggingCallback(void * jarg1, void * jarg2, void* jarg3) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::LogOutputCallback arg2 = (lldb::LogOutputCallback) 0 ;
+ void *arg3 = (void *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::LogOutputCallback)jarg2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ (arg1)->SetLoggingCallback(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_DispatchInput(void * jarg1, void* jarg2, unsigned long jarg3) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ void *arg2 = (void *) 0 ;
+ size_t arg3 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (void *)jarg2; /* IntPtr */
+ arg3 = (size_t)jarg3;
+ (arg1)->DispatchInput((void const *)arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_DispatchInputInterrupt(void * jarg1) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ (arg1)->DispatchInputInterrupt();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_DispatchInputEndOfFile(void * jarg1) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ (arg1)->DispatchInputEndOfFile();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_PushInputReader(void * jarg1, void * jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBInputReader *arg2 = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::SBInputReader *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBInputReader & type is null", 0);
+ return ;
+ }
+ (arg1)->PushInputReader(*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_NotifyTopInputReader(void * jarg1, int jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::InputReaderAction arg2 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::InputReaderAction)jarg2;
+ (arg1)->NotifyTopInputReader(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_InputReaderIsTopReader(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBInputReader *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::SBInputReader *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBInputReader const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->InputReaderIsTopReader((lldb::SBInputReader const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBDebugger_GetInstanceName(void * jarg1) {
+ char * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (char *)(arg1)->GetInstanceName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_FindDebuggerWithID(int jarg1) {
+ void * jresult ;
+ int arg1 ;
+ lldb::SBDebugger result;
+
+ arg1 = (int)jarg1;
+ result = lldb::SBDebugger::FindDebuggerWithID(arg1);
+ jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_SetInternalVariable(char * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (char *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = lldb::SBDebugger::SetInternalVariable((char const *)arg1,(char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetInternalVariableValue(char * jarg1, char * jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBStringList result;
+
+ arg1 = (char *)jarg1;
+ arg2 = (char *)jarg2;
+ result = lldb::SBDebugger::GetInternalVariableValue((char const *)arg1,(char const *)arg2);
+ jresult = new lldb::SBStringList((const lldb::SBStringList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetTerminalWidth(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = ((lldb::SBDebugger const *)arg1)->GetTerminalWidth();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetTerminalWidth(void * jarg1, void * jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetTerminalWidth(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetID(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::user_id_t result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetID();
+ jresult = new lldb::user_id_t((const lldb::user_id_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBDebugger_GetPrompt(void * jarg1) {
+ char * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (char *)((lldb::SBDebugger const *)arg1)->GetPrompt();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetPrompt(void * jarg1, char * jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetPrompt((char const *)arg2);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBDebugger_GetScriptLanguage(void * jarg1) {
+ int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::ScriptLanguage result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (lldb::ScriptLanguage)((lldb::SBDebugger const *)arg1)->GetScriptLanguage();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetScriptLanguage(void * jarg1, int jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::ScriptLanguage arg2 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (lldb::ScriptLanguage)jarg2;
+ (arg1)->SetScriptLanguage(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_GetCloseInputOnEOF(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (bool)((lldb::SBDebugger const *)arg1)->GetCloseInputOnEOF();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBDebugger_SetCloseInputOnEOF(void * jarg1, unsigned int jarg2) {
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetCloseInputOnEOF(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetCategory(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBTypeCategory result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->GetCategory((char const *)arg2);
+ jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_CreateCategory(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBTypeCategory result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->CreateCategory((char const *)arg2);
+ jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBDebugger_DeleteCategory(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->DeleteCategory((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetNumCategories(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetNumCategories();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetCategoryAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeCategory result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetCategoryAtIndex(arg2);
+ jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetDefaultCategory(void * jarg1) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTypeCategory result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ result = (arg1)->GetDefaultCategory();
+ jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetFormatForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeFormat result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFormatForType(arg2);
+ jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetSummaryForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSummaryForType(arg2);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetFilterForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeFilter result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFilterForType(arg2);
+ jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBDebugger_GetSyntheticForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (lldb::SBDebugger *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSyntheticForType(arg2);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBError__SWIG_0() {
+ void * jresult ;
+ lldb::SBError *result = 0 ;
+
+ result = (lldb::SBError *)new lldb::SBError();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBError__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBError *arg1 = 0 ;
+ lldb::SBError *result = 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBError *)new lldb::SBError((lldb::SBError const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBError(void * jarg1) {
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBError_GetCString(void * jarg1) {
+ char * jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ result = (char *)((lldb::SBError const *)arg1)->GetCString();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBError_Clear(void * jarg1) {
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBError_Fail(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ result = (bool)((lldb::SBError const *)arg1)->Fail();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBError_Success(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ result = (bool)((lldb::SBError const *)arg1)->Success();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBError_GetError(void * jarg1) {
+ void * jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ result = ((lldb::SBError const *)arg1)->GetError();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBError_GetType(void * jarg1) {
+ int jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ lldb::ErrorType result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ result = (lldb::ErrorType)((lldb::SBError const *)arg1)->GetType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBError_SetError(void * jarg1, void * jarg2, int jarg3) {
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ uint32_t arg2 ;
+ lldb::ErrorType arg3 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::ErrorType)jarg3;
+ (arg1)->SetError(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBError_SetErrorToErrno(void * jarg1) {
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ (arg1)->SetErrorToErrno();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBError_SetErrorToGenericError(void * jarg1) {
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ (arg1)->SetErrorToGenericError();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBError_SetErrorString(void * jarg1, char * jarg2) {
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBError *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetErrorString((char const *)arg2);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBError_SetErrorStringWithFormat(void * jarg1, char * jarg2) {
+ int jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *arg3 = 0 ;
+ int result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (int)(arg1)->SetErrorStringWithFormat((char const *)arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBError_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ result = (bool)((lldb::SBError const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBError_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBError *arg1 = (lldb::SBError *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBError *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBEvent__SWIG_0() {
+ void * jresult ;
+ lldb::SBEvent *result = 0 ;
+
+ result = (lldb::SBEvent *)new lldb::SBEvent();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBEvent__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ lldb::SBEvent *result = 0 ;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBEvent *)new lldb::SBEvent((lldb::SBEvent const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBEvent__SWIG_2(void * jarg1, char * jarg2, void * jarg3) {
+ void * jresult ;
+ uint32_t arg1 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp1 ;
+ uint32_t *argp3 ;
+ lldb::SBEvent *result = 0 ;
+
+ argp1 = (uint32_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (lldb::SBEvent *)new lldb::SBEvent(arg1,(char const *)arg2,arg3);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBEvent(void * jarg1) {
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBEvent_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ result = (bool)((lldb::SBEvent const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBEvent_GetDataFlavor(void * jarg1) {
+ char * jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ result = (char *)(arg1)->GetDataFlavor();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBEvent_GetType(void * jarg1) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ result = ((lldb::SBEvent const *)arg1)->GetType();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBEvent_GetBroadcaster(void * jarg1) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ lldb::SBBroadcaster result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ result = ((lldb::SBEvent const *)arg1)->GetBroadcaster();
+ jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBEvent_GetBroadcasterClass(void * jarg1) {
+ char * jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ result = (char *)((lldb::SBEvent const *)arg1)->GetBroadcasterClass();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBEvent_BroadcasterMatchesRef(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->BroadcasterMatchesRef((lldb::SBBroadcaster const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBEvent_Clear(void * jarg1) {
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBEvent_GetCStringFromEvent(void * jarg1) {
+ char * jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (char *)lldb::SBEvent::GetCStringFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBEvent_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)((lldb::SBEvent const *)arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFileSpec__SWIG_0() {
+ void * jresult ;
+ lldb::SBFileSpec *result = 0 ;
+
+ result = (lldb::SBFileSpec *)new lldb::SBFileSpec();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFileSpec__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBFileSpec *arg1 = 0 ;
+ lldb::SBFileSpec *result = 0 ;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBFileSpec *)new lldb::SBFileSpec((lldb::SBFileSpec const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFileSpec__SWIG_2(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBFileSpec *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ result = (lldb::SBFileSpec *)new lldb::SBFileSpec((char const *)arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFileSpec__SWIG_3(char * jarg1, unsigned int jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ bool arg2 ;
+ lldb::SBFileSpec *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ arg2 = jarg2 ? true : false;
+ result = (lldb::SBFileSpec *)new lldb::SBFileSpec((char const *)arg1,arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBFileSpec(void * jarg1) {
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFileSpec_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ result = (bool)((lldb::SBFileSpec const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFileSpec_Exists(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ result = (bool)((lldb::SBFileSpec const *)arg1)->Exists();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFileSpec_ResolveExecutableLocation(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ result = (bool)(arg1)->ResolveExecutableLocation();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBFileSpec_GetFilename(void * jarg1) {
+ char * jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ result = (char *)((lldb::SBFileSpec const *)arg1)->GetFilename();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBFileSpec_GetDirectory(void * jarg1) {
+ char * jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ result = (char *)((lldb::SBFileSpec const *)arg1)->GetDirectory();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFileSpec_GetPath(void * jarg1, char * jarg2, unsigned long jarg3) {
+ void * jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ char *arg2 = (char *) 0 ;
+ size_t arg3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = ((lldb::SBFileSpec const *)arg1)->GetPath(arg2,arg3);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBFileSpec_ResolvePath(char * jarg1, char * jarg2, unsigned long jarg3) {
+ int jresult ;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ size_t arg3 ;
+ int result;
+
+ arg1 = (char *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (int)lldb::SBFileSpec::ResolvePath((char const *)arg1,arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFileSpec_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFileSpec *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)((lldb::SBFileSpec const *)arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFileSpecList__SWIG_0() {
+ void * jresult ;
+ lldb::SBFileSpecList *result = 0 ;
+
+ result = (lldb::SBFileSpecList *)new lldb::SBFileSpecList();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFileSpecList__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBFileSpecList *arg1 = 0 ;
+ lldb::SBFileSpecList *result = 0 ;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpecList const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBFileSpecList *)new lldb::SBFileSpecList((lldb::SBFileSpecList const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBFileSpecList(void * jarg1) {
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFileSpecList_GetSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ result = ((lldb::SBFileSpecList const *)arg1)->GetSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFileSpecList_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)((lldb::SBFileSpecList const *)arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBFileSpecList_Append(void * jarg1, void * jarg2) {
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return ;
+ }
+ (arg1)->Append((lldb::SBFileSpec const &)*arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFileSpecList_AppendIfUnique(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->AppendIfUnique((lldb::SBFileSpec const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBFileSpecList_Clear(void * jarg1) {
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFileSpecList_FindFileIndex(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4) {
+ void * jresult ;
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+ uint32_t arg2 ;
+ lldb::SBFileSpec *arg3 = 0 ;
+ bool arg4 ;
+ uint32_t *argp2 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBFileSpec *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ arg4 = jarg4 ? true : false;
+ result = (arg1)->FindFileIndex(arg2,(lldb::SBFileSpec const &)*arg3,arg4);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFileSpecList_GetFileSpecAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBFileSpecList *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBFileSpecList const *)arg1)->GetFileSpecAtIndex(arg2);
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFrame__SWIG_0() {
+ void * jresult ;
+ lldb::SBFrame *result = 0 ;
+
+ result = (lldb::SBFrame *)new lldb::SBFrame();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFrame__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = 0 ;
+ lldb::SBFrame *result = 0 ;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFrame const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBFrame *)new lldb::SBFrame((lldb::SBFrame const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBFrame(void * jarg1) {
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFrame_IsEqual(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBFrame *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (lldb::SBFrame *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFrame const & type is null", 0);
+ return 0;
+ }
+ result = (bool)((lldb::SBFrame const *)arg1)->IsEqual((lldb::SBFrame const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFrame_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = (bool)((lldb::SBFrame const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetFrameID(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetFrameID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetPC(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetPC();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFrame_SetPC(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->SetPC(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetSP(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetSP();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetFP(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetFP();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetPCAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetPCAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetSymbolContext(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBSymbolContext result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBFrame const *)arg1)->GetSymbolContext(arg2);
+ jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetModule(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetModule();
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetCompileUnit(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBCompileUnit result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetCompileUnit();
+ jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetFunction(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBFunction result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetFunction();
+ jresult = new lldb::SBFunction((const lldb::SBFunction &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetSymbol(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBSymbol result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetSymbol();
+ jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetBlock(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetBlock();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBFrame_GetFunctionName(void * jarg1) {
+ char * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = (char *)(arg1)->GetFunctionName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFrame_IsInlined(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = (bool)(arg1)->IsInlined();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_EvaluateExpression__SWIG_0(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->EvaluateExpression((char const *)arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_EvaluateExpression__SWIG_1(void * jarg1, char * jarg2, int jarg3) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::DynamicValueType arg3 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::DynamicValueType)jarg3;
+ result = (arg1)->EvaluateExpression((char const *)arg2,arg3);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_EvaluateExpression__SWIG_2(void * jarg1, char * jarg2, int jarg3, unsigned int jarg4) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::DynamicValueType arg3 ;
+ bool arg4 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::DynamicValueType)jarg3;
+ arg4 = jarg4 ? true : false;
+ result = (arg1)->EvaluateExpression((char const *)arg2,arg3,arg4);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetFrameBlock(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetFrameBlock();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetLineEntry(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBLineEntry result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetLineEntry();
+ jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetThread(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBThread result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = ((lldb::SBFrame const *)arg1)->GetThread();
+ jresult = new lldb::SBThread((const lldb::SBThread &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBFrame_Disassemble(void * jarg1) {
+ char * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = (char *)((lldb::SBFrame const *)arg1)->Disassemble();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBFrame_Clear(void * jarg1) {
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetVariables__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ bool arg4 ;
+ bool arg5 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = jarg2 ? true : false;
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ arg5 = jarg5 ? true : false;
+ result = (arg1)->GetVariables(arg2,arg3,arg4,arg5);
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetVariables__SWIG_1(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, int jarg6) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ bool arg4 ;
+ bool arg5 ;
+ lldb::DynamicValueType arg6 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = jarg2 ? true : false;
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ arg5 = jarg5 ? true : false;
+ arg6 = (lldb::DynamicValueType)jarg6;
+ result = (arg1)->GetVariables(arg2,arg3,arg4,arg5,arg6);
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetRegisters(void * jarg1) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ result = (arg1)->GetRegisters();
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_FindVariable__SWIG_0(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindVariable((char const *)arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_FindVariable__SWIG_1(void * jarg1, char * jarg2, int jarg3) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::DynamicValueType arg3 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::DynamicValueType)jarg3;
+ result = (arg1)->FindVariable((char const *)arg2,arg3);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetValueForVariablePath__SWIG_0(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->GetValueForVariablePath((char const *)arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_GetValueForVariablePath__SWIG_1(void * jarg1, char * jarg2, int jarg3) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::DynamicValueType arg3 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::DynamicValueType)jarg3;
+ result = (arg1)->GetValueForVariablePath((char const *)arg2,arg3);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_FindValue__SWIG_0(void * jarg1, char * jarg2, int jarg3) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::ValueType arg3 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::ValueType)jarg3;
+ result = (arg1)->FindValue((char const *)arg2,arg3);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFrame_FindValue__SWIG_1(void * jarg1, char * jarg2, int jarg3, int jarg4) {
+ void * jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::ValueType arg3 ;
+ lldb::DynamicValueType arg4 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::ValueType)jarg3;
+ arg4 = (lldb::DynamicValueType)jarg4;
+ result = (arg1)->FindValue((char const *)arg2,arg3,arg4);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFrame_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFrame *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFunction__SWIG_0() {
+ void * jresult ;
+ lldb::SBFunction *result = 0 ;
+
+ result = (lldb::SBFunction *)new lldb::SBFunction();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBFunction__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = 0 ;
+ lldb::SBFunction *result = 0 ;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFunction const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBFunction *)new lldb::SBFunction((lldb::SBFunction const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBFunction(void * jarg1) {
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFunction_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (bool)((lldb::SBFunction const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBFunction_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (char *)((lldb::SBFunction const *)arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBFunction_GetMangledName(void * jarg1) {
+ char * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (char *)((lldb::SBFunction const *)arg1)->GetMangledName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFunction_GetInstructions(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ lldb::SBInstructionList result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetInstructions(arg2);
+ jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFunction_GetStartAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (arg1)->GetStartAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFunction_GetEndAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (arg1)->GetEndAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFunction_GetPrologueByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (arg1)->GetPrologueByteSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFunction_GetType(void * jarg1) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (arg1)->GetType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBFunction_GetBlock(void * jarg1) {
+ void * jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ result = (arg1)->GetBlock();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBFunction_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBFunction *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBHostOS_GetProgramFileSpec() {
+ void * jresult ;
+ lldb::SBFileSpec result;
+
+ result = lldb::SBHostOS::GetProgramFileSpec();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBHostOS_ThreadCreated(char * jarg1) {
+ char *arg1 = (char *) 0 ;
+
+ arg1 = (char *)jarg1;
+ lldb::SBHostOS::ThreadCreated((char const *)arg1);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBHostOS_ThreadCreate(char * jarg1, void * jarg2, void* jarg3, void * jarg4) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ void *(*arg2)(void *) = (void *(*)(void *)) 0 ;
+ void *arg3 = (void *) 0 ;
+ lldb::SBError *arg4 = (lldb::SBError *) 0 ;
+ lldb::thread_t result;
+
+ arg1 = (char *)jarg1;
+ arg2 = (void *(*)(void *))jarg2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ arg4 = (lldb::SBError *)jarg4;
+ result = lldb::SBHostOS::ThreadCreate((char const *)arg1,arg2,arg3,arg4);
+ jresult = new lldb::thread_t((const lldb::thread_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBHostOS_ThreadCancel(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::thread_t arg1 ;
+ lldb::SBError *arg2 = (lldb::SBError *) 0 ;
+ lldb::thread_t *argp1 ;
+ bool result;
+
+ argp1 = (lldb::thread_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::thread_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = (lldb::SBError *)jarg2;
+ result = (bool)lldb::SBHostOS::ThreadCancel(arg1,arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBHostOS_ThreadDetach(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::thread_t arg1 ;
+ lldb::SBError *arg2 = (lldb::SBError *) 0 ;
+ lldb::thread_t *argp1 ;
+ bool result;
+
+ argp1 = (lldb::thread_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::thread_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = (lldb::SBError *)jarg2;
+ result = (bool)lldb::SBHostOS::ThreadDetach(arg1,arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBHostOS_ThreadJoin(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::thread_t arg1 ;
+ void **arg2 = (void **) 0 ;
+ lldb::SBError *arg3 = (lldb::SBError *) 0 ;
+ lldb::thread_t *argp1 ;
+ bool result;
+
+ argp1 = (lldb::thread_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::thread_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ arg2 = (void **)jarg2;
+ arg3 = (lldb::SBError *)jarg3;
+ result = (bool)lldb::SBHostOS::ThreadJoin(arg1,arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBHostOS() {
+ void * jresult ;
+ lldb::SBHostOS *result = 0 ;
+
+ result = (lldb::SBHostOS *)new lldb::SBHostOS();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBHostOS(void * jarg1) {
+ lldb::SBHostOS *arg1 = (lldb::SBHostOS *) 0 ;
+
+ arg1 = (lldb::SBHostOS *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBInputReader__SWIG_0() {
+ void * jresult ;
+ lldb::SBInputReader *result = 0 ;
+
+ result = (lldb::SBInputReader *)new lldb::SBInputReader();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBInputReader__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBInputReader *arg1 = 0 ;
+ lldb::SBInputReader *result = 0 ;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBInputReader const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBInputReader *)new lldb::SBInputReader((lldb::SBInputReader const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBInputReader(void * jarg1) {
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBInputReader_Initialize(void * jarg1, void * jarg2, void * jarg3, void* jarg4, int jarg5, char * jarg6, char * jarg7, unsigned int jarg8) {
+ void * jresult ;
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+ lldb::SBDebugger *arg2 = 0 ;
+ lldb::SBInputReader::Callback arg3 = (lldb::SBInputReader::Callback) 0 ;
+ void *arg4 = (void *) 0 ;
+ lldb::InputReaderGranularity arg5 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ bool arg8 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ arg2 = (lldb::SBDebugger *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBDebugger & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBInputReader::Callback)jarg3;
+ arg4 = (void *)jarg4; /* IntPtr */
+ arg5 = (lldb::InputReaderGranularity)jarg5;
+ arg6 = (char *)jarg6;
+ arg7 = (char *)jarg7;
+ arg8 = jarg8 ? true : false;
+ result = (arg1)->Initialize(*arg2,arg3,arg4,arg5,(char const *)arg6,(char const *)arg7,arg8);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInputReader_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ result = (bool)((lldb::SBInputReader const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInputReader_IsActive(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ result = (bool)((lldb::SBInputReader const *)arg1)->IsActive();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInputReader_IsDone(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ result = (bool)((lldb::SBInputReader const *)arg1)->IsDone();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBInputReader_SetIsDone(void * jarg1, unsigned int jarg2) {
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetIsDone(arg2);
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBInputReader_GetGranularity(void * jarg1) {
+ int jresult ;
+ lldb::SBInputReader *arg1 = (lldb::SBInputReader *) 0 ;
+ lldb::InputReaderGranularity result;
+
+ arg1 = (lldb::SBInputReader *)jarg1;
+ result = (lldb::InputReaderGranularity)(arg1)->GetGranularity();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBInstruction__SWIG_0() {
+ void * jresult ;
+ lldb::SBInstruction *result = 0 ;
+
+ result = (lldb::SBInstruction *)new lldb::SBInstruction();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBInstruction__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBInstruction *arg1 = 0 ;
+ lldb::SBInstruction *result = 0 ;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBInstruction const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBInstruction *)new lldb::SBInstruction((lldb::SBInstruction const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBInstruction(void * jarg1) {
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstruction_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ result = (bool)(arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBInstruction_GetAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ result = (arg1)->GetAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBInstruction_GetAddressClass(void * jarg1) {
+ int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::AddressClass result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ result = (lldb::AddressClass)(arg1)->GetAddressClass();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBInstruction_GetMnemonic(void * jarg1, void * jarg2) {
+ char * jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (char *)(arg1)->GetMnemonic(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBInstruction_GetOperands(void * jarg1, void * jarg2) {
+ char * jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (char *)(arg1)->GetOperands(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBInstruction_GetComment(void * jarg1, void * jarg2) {
+ char * jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (char *)(arg1)->GetComment(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBInstruction_GetData(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetData(arg2);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBInstruction_GetByteSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ result = (arg1)->GetByteSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstruction_DoesBranch(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ result = (bool)(arg1)->DoesBranch();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBInstruction_Print(void * jarg1, void * jarg2) {
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ arg2 = (FILE *)jarg2;
+ (arg1)->Print(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstruction_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstruction_EmulateWithFrame(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBFrame *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ arg2 = (lldb::SBFrame *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFrame & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->EmulateWithFrame(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstruction_DumpEmulation(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->DumpEmulation((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstruction_TestEmulation(void * jarg1, void * jarg2, char * jarg3) {
+ unsigned int jresult ;
+ lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ char *arg3 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstruction *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (char *)jarg3;
+ result = (bool)(arg1)->TestEmulation(*arg2,(char const *)arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBInstructionList__SWIG_0() {
+ void * jresult ;
+ lldb::SBInstructionList *result = 0 ;
+
+ result = (lldb::SBInstructionList *)new lldb::SBInstructionList();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBInstructionList__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBInstructionList *arg1 = 0 ;
+ lldb::SBInstructionList *result = 0 ;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBInstructionList const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBInstructionList *)new lldb::SBInstructionList((lldb::SBInstructionList const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBInstructionList(void * jarg1) {
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstructionList_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ result = (bool)((lldb::SBInstructionList const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBInstructionList_GetSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ result = (arg1)->GetSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBInstructionList_GetInstructionAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBInstruction result;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetInstructionAtIndex(arg2);
+ jresult = new lldb::SBInstruction((const lldb::SBInstruction &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBInstructionList_Clear(void * jarg1) {
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBInstructionList_AppendInstruction(void * jarg1, void * jarg2) {
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ lldb::SBInstruction arg2 ;
+ lldb::SBInstruction *argp2 ;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ argp2 = (lldb::SBInstruction *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBInstruction", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->AppendInstruction(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBInstructionList_Print(void * jarg1, void * jarg2) {
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ arg2 = (FILE *)jarg2;
+ (arg1)->Print(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstructionList_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBInstructionList_DumpEmulationForAllInstructions(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBInstructionList *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->DumpEmulationForAllInstructions((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBLineEntry__SWIG_0() {
+ void * jresult ;
+ lldb::SBLineEntry *result = 0 ;
+
+ result = (lldb::SBLineEntry *)new lldb::SBLineEntry();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBLineEntry__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBLineEntry *arg1 = 0 ;
+ lldb::SBLineEntry *result = 0 ;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBLineEntry const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBLineEntry *)new lldb::SBLineEntry((lldb::SBLineEntry const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBLineEntry(void * jarg1) {
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLineEntry_GetStartAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ result = ((lldb::SBLineEntry const *)arg1)->GetStartAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLineEntry_GetEndAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ result = ((lldb::SBLineEntry const *)arg1)->GetEndAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLineEntry_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ result = (bool)((lldb::SBLineEntry const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLineEntry_GetFileSpec(void * jarg1) {
+ void * jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ result = ((lldb::SBLineEntry const *)arg1)->GetFileSpec();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLineEntry_GetLine(void * jarg1) {
+ void * jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ result = ((lldb::SBLineEntry const *)arg1)->GetLine();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLineEntry_GetColumn(void * jarg1) {
+ void * jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ result = ((lldb::SBLineEntry const *)arg1)->GetColumn();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLineEntry_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLineEntry_SetFileSpec(void * jarg1, void * jarg2) {
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ lldb::SBFileSpec arg2 ;
+ lldb::SBFileSpec *argp2 ;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ argp2 = (lldb::SBFileSpec *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBFileSpec", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetFileSpec(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLineEntry_SetLine(void * jarg1, void * jarg2) {
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetLine(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLineEntry_SetColumn(void * jarg1, void * jarg2) {
+ lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBLineEntry *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetColumn(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBListener__SWIG_0() {
+ void * jresult ;
+ lldb::SBListener *result = 0 ;
+
+ result = (lldb::SBListener *)new lldb::SBListener();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBListener__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBListener *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ result = (lldb::SBListener *)new lldb::SBListener((char const *)arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBListener__SWIG_2(void * jarg1) {
+ void * jresult ;
+ lldb::SBListener *arg1 = 0 ;
+ lldb::SBListener *result = 0 ;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBListener *)new lldb::SBListener((lldb::SBListener const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBListener(void * jarg1) {
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBListener_AddEvent(void * jarg1, void * jarg2) {
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return ;
+ }
+ (arg1)->AddEvent((lldb::SBEvent const &)*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBListener_Clear(void * jarg1) {
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ result = (bool)((lldb::SBListener const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBListener_StartListeningForEventClass(void * jarg1, void * jarg2, char * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBDebugger *arg2 = 0 ;
+ char *arg3 = (char *) 0 ;
+ uint32_t arg4 ;
+ uint32_t *argp4 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBDebugger *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBDebugger & type is null", 0);
+ return 0;
+ }
+ arg3 = (char *)jarg3;
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->StartListeningForEventClass(*arg2,(char const *)arg3,arg4);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBListener_StopListeningForEventClass(void * jarg1, void * jarg2, char * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBDebugger *arg2 = 0 ;
+ char *arg3 = (char *) 0 ;
+ uint32_t arg4 ;
+ uint32_t *argp4 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBDebugger *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBDebugger & type is null", 0);
+ return 0;
+ }
+ arg3 = (char *)jarg3;
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->StopListeningForEventClass(*arg2,(char const *)arg3,arg4);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBListener_StartListeningForEvents(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->StartListeningForEvents((lldb::SBBroadcaster const &)*arg2,arg3);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_StopListeningForEvents(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->StopListeningForEvents((lldb::SBBroadcaster const &)*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_WaitForEvent(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ uint32_t arg2 ;
+ lldb::SBEvent *arg3 = 0 ;
+ uint32_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBEvent *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->WaitForEvent(arg2,*arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_WaitForEventForBroadcaster(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ uint32_t arg2 ;
+ lldb::SBBroadcaster *arg3 = 0 ;
+ lldb::SBEvent *arg4 = 0 ;
+ uint32_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBBroadcaster *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ arg4 = (lldb::SBEvent *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->WaitForEventForBroadcaster(arg2,(lldb::SBBroadcaster const &)*arg3,*arg4);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_WaitForEventForBroadcasterWithType(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ uint32_t arg2 ;
+ lldb::SBBroadcaster *arg3 = 0 ;
+ uint32_t arg4 ;
+ lldb::SBEvent *arg5 = 0 ;
+ uint32_t *argp2 ;
+ uint32_t *argp4 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBBroadcaster *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ arg5 = (lldb::SBEvent *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->WaitForEventForBroadcasterWithType(arg2,(lldb::SBBroadcaster const &)*arg3,arg4,*arg5);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_PeekAtNextEvent(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->PeekAtNextEvent(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_PeekAtNextEventForBroadcaster(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ lldb::SBEvent *arg3 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBEvent *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->PeekAtNextEventForBroadcaster((lldb::SBBroadcaster const &)*arg2,*arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_PeekAtNextEventForBroadcasterWithType(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ uint32_t arg3 ;
+ lldb::SBEvent *arg4 = 0 ;
+ uint32_t *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBEvent *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->PeekAtNextEventForBroadcasterWithType((lldb::SBBroadcaster const &)*arg2,arg3,*arg4);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_GetNextEvent(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetNextEvent(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_GetNextEventForBroadcaster(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ lldb::SBEvent *arg3 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBEvent *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetNextEventForBroadcaster((lldb::SBBroadcaster const &)*arg2,*arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_GetNextEventForBroadcasterWithType(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBBroadcaster *arg2 = 0 ;
+ uint32_t arg3 ;
+ lldb::SBEvent *arg4 = 0 ;
+ uint32_t *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBBroadcaster *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBBroadcaster const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBEvent *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetNextEventForBroadcasterWithType((lldb::SBBroadcaster const &)*arg2,arg3,*arg4);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBListener_HandleBroadcastEvent(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBListener *arg1 = (lldb::SBListener *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBListener *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->HandleBroadcastEvent((lldb::SBEvent const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBModule__SWIG_0() {
+ void * jresult ;
+ lldb::SBModule *result = 0 ;
+
+ result = (lldb::SBModule *)new lldb::SBModule();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBModule__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBModule *arg1 = 0 ;
+ lldb::SBModule *result = 0 ;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBModule const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBModule *)new lldb::SBModule((lldb::SBModule const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBModule__SWIG_2(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBModule *result = 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBProcess & type is null", 0);
+ return 0;
+ }
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (lldb::SBModule *)new lldb::SBModule(*arg1,arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBModule(void * jarg1) {
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBModule_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (bool)((lldb::SBModule const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBModule_Clear(void * jarg1) {
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetFileSpec(void * jarg1) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = ((lldb::SBModule const *)arg1)->GetFileSpec();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetPlatformFileSpec(void * jarg1) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = ((lldb::SBModule const *)arg1)->GetPlatformFileSpec();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBModule_SetPlatformFileSpec(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->SetPlatformFileSpec((lldb::SBFileSpec const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBModule_GetUUIDString(void * jarg1) {
+ char * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (char *)((lldb::SBModule const *)arg1)->GetUUIDString();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_FindSection(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBSection result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindSection((char const *)arg2);
+ jresult = new lldb::SBSection((const lldb::SBSection &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_ResolveFileAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->ResolveFileAddress(arg2);
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_ResolveSymbolContextForAddress(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::SBAddress *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBSymbolContext result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (lldb::SBAddress *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAddress const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->ResolveSymbolContextForAddress((lldb::SBAddress const &)*arg2,arg3);
+ jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBModule_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetNumCompileUnits(void * jarg1) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (arg1)->GetNumCompileUnits();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetCompileUnitAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBCompileUnit result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetCompileUnitAtIndex(arg2);
+ jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBModule_GetNumSymbols(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (arg1)->GetNumSymbols();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetSymbolAtIndex(void * jarg1, unsigned long jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ size_t arg2 ;
+ lldb::SBSymbol result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (size_t)jarg2;
+ result = (arg1)->GetSymbolAtIndex(arg2);
+ jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBModule_GetNumSections(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (arg1)->GetNumSections();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetSectionAtIndex(void * jarg1, unsigned long jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ size_t arg2 ;
+ lldb::SBSection result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (size_t)jarg2;
+ result = (arg1)->GetSectionAtIndex(arg2);
+ jresult = new lldb::SBSection((const lldb::SBSection &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_FindFunctions__SWIG_0(void * jarg1, char * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBSymbolContextList result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->FindFunctions((char const *)arg2,arg3);
+ jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_FindFunctions__SWIG_1(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBSymbolContextList result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindFunctions((char const *)arg2);
+ jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_FindFirstType(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindFirstType((char const *)arg2);
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_FindTypes(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBTypeList result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindTypes((char const *)arg2);
+ jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_FindGlobalVariables(void * jarg1, void * jarg2, char * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::SBTarget *arg2 = 0 ;
+ char *arg3 = (char *) 0 ;
+ uint32_t arg4 ;
+ uint32_t *argp4 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return 0;
+ }
+ arg3 = (char *)jarg3;
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->FindGlobalVariables(*arg2,(char const *)arg3,arg4);
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBModule_GetByteOrder(void * jarg1) {
+ int jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ lldb::ByteOrder result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (lldb::ByteOrder)(arg1)->GetByteOrder();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetAddressByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (arg1)->GetAddressByteSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBModule_GetTriple(void * jarg1) {
+ char * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ result = (char *)(arg1)->GetTriple();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBModule_GetVersion(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBModule *arg1 = (lldb::SBModule *) 0 ;
+ uint32_t *arg2 = (uint32_t *) 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBModule *)jarg1;
+ arg2 = (uint32_t *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetVersion(arg2,arg3);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_eBroadcastBitStateChanged_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBProcess::eBroadcastBitStateChanged;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_eBroadcastBitInterrupt_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBProcess::eBroadcastBitInterrupt;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_eBroadcastBitSTDOUT_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBProcess::eBroadcastBitSTDOUT;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_eBroadcastBitSTDERR_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBProcess::eBroadcastBitSTDERR;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBProcess__SWIG_0() {
+ void * jresult ;
+ lldb::SBProcess *result = 0 ;
+
+ result = (lldb::SBProcess *)new lldb::SBProcess();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBProcess__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = 0 ;
+ lldb::SBProcess *result = 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBProcess const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBProcess *)new lldb::SBProcess((lldb::SBProcess const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBProcess(void * jarg1) {
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBProcess_GetBroadcasterClassName() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)lldb::SBProcess::GetBroadcasterClassName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBProcess_Clear(void * jarg1) {
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (bool)((lldb::SBProcess const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetTarget(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = ((lldb::SBProcess const *)arg1)->GetTarget();
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_GetByteOrder(void * jarg1) {
+ int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::ByteOrder result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (lldb::ByteOrder)((lldb::SBProcess const *)arg1)->GetByteOrder();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBProcess_PutSTDIN(void * jarg1, char * jarg2, unsigned long jarg3) {
+ unsigned long jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ char *arg2 = (char *) 0 ;
+ size_t arg3 ;
+ size_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (arg1)->PutSTDIN((char const *)arg2,arg3);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBProcess_GetSTDOUT(void * jarg1, char * jarg2, unsigned long jarg3) {
+ unsigned long jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ char *arg2 = (char *) 0 ;
+ size_t arg3 ;
+ size_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = ((lldb::SBProcess const *)arg1)->GetSTDOUT(arg2,arg3);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBProcess_GetSTDERR(void * jarg1, char * jarg2, unsigned long jarg3) {
+ unsigned long jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ char *arg2 = (char *) 0 ;
+ size_t arg3 ;
+ size_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = ((lldb::SBProcess const *)arg1)->GetSTDERR(arg2,arg3);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBProcess_ReportEventState(void * jarg1, void * jarg2, void * jarg3) {
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+ FILE *arg3 = (FILE *) 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return ;
+ }
+ arg3 = (FILE *)jarg3;
+ ((lldb::SBProcess const *)arg1)->ReportEventState((lldb::SBEvent const &)*arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBProcess_AppendEventStateReport(void * jarg1, void * jarg2, void * jarg3) {
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBEvent *arg2 = 0 ;
+ lldb::SBCommandReturnObject *arg3 = 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (lldb::SBEvent *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return ;
+ }
+ arg3 = (lldb::SBCommandReturnObject *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBCommandReturnObject & type is null", 0);
+ return ;
+ }
+ (arg1)->AppendEventStateReport((lldb::SBEvent const &)*arg2,*arg3);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_RemoteAttachToProcessWithID(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::pid_t arg2 ;
+ lldb::SBError *arg3 = 0 ;
+ lldb::pid_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::pid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::pid_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBError *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->RemoteAttachToProcessWithID(arg2,*arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_RemoteLaunch(void * jarg1, void * jarg2, void * jarg3, char * jarg4, char * jarg5, char * jarg6, char * jarg7, void * jarg8, unsigned int jarg9, void * jarg10) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ char **arg2 = (char **) 0 ;
+ char **arg3 = (char **) 0 ;
+ char *arg4 = (char *) 0 ;
+ char *arg5 = (char *) 0 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ uint32_t arg8 ;
+ bool arg9 ;
+ lldb::SBError *arg10 = 0 ;
+ uint32_t *argp8 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (char **)jarg2;
+ arg3 = (char **)jarg3;
+ arg4 = (char *)jarg4;
+ arg5 = (char *)jarg5;
+ arg6 = (char *)jarg6;
+ arg7 = (char *)jarg7;
+ argp8 = (uint32_t *)jarg8;
+ if (!argp8) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg8 = *argp8;
+ arg9 = jarg9 ? true : false;
+ arg10 = (lldb::SBError *)jarg10;
+ if (!arg10) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->RemoteLaunch((char const **)arg2,(char const **)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7,arg8,arg9,*arg10);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetNumThreads(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->GetNumThreads();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetThreadAtIndex(void * jarg1, unsigned long jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ size_t arg2 ;
+ lldb::SBThread result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (size_t)jarg2;
+ result = (arg1)->GetThreadAtIndex(arg2);
+ jresult = new lldb::SBThread((const lldb::SBThread &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetThreadByID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::tid_t arg2 ;
+ lldb::tid_t *argp2 ;
+ lldb::SBThread result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::tid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::tid_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetThreadByID(arg2);
+ jresult = new lldb::SBThread((const lldb::SBThread &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetThreadByIndexID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBThread result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetThreadByIndexID(arg2);
+ jresult = new lldb::SBThread((const lldb::SBThread &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetSelectedThread(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBThread result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = ((lldb::SBProcess const *)arg1)->GetSelectedThread();
+ jresult = new lldb::SBThread((const lldb::SBThread &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_SetSelectedThread(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBThread *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (lldb::SBThread *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBThread const & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->SetSelectedThread((lldb::SBThread const &)*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_SetSelectedThreadByID(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->SetSelectedThreadByID(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_SetSelectedThreadByIndexID(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->SetSelectedThreadByIndexID(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_GetState(void * jarg1) {
+ int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::StateType result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (lldb::StateType)(arg1)->GetState();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_GetExitStatus(void * jarg1) {
+ int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ int result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (int)(arg1)->GetExitStatus();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBProcess_GetExitDescription(void * jarg1) {
+ char * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (char *)(arg1)->GetExitDescription();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetProcessID(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::pid_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->GetProcessID();
+ jresult = new lldb::pid_t((const lldb::pid_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetAddressByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = ((lldb::SBProcess const *)arg1)->GetAddressByteSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_Destroy(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->Destroy();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_Continue(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->Continue();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_Stop(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->Stop();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_Kill(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->Kill();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_Detach(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = (arg1)->Detach();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_Signal(void * jarg1, int jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ int arg2 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (int)jarg2;
+ result = (arg1)->Signal(arg2);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBProcess_SendAsyncInterrupt(void * jarg1) {
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ (arg1)->SendAsyncInterrupt();
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBProcess_ReadMemory(void * jarg1, void * jarg2, void* jarg3, unsigned long jarg4, void * jarg5) {
+ unsigned long jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::addr_t arg2 ;
+ void *arg3 = (void *) 0 ;
+ size_t arg4 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::addr_t *argp2 ;
+ size_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ arg4 = (size_t)jarg4;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->ReadMemory(arg2,arg3,arg4,*arg5);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBProcess_WriteMemory(void * jarg1, void * jarg2, void* jarg3, unsigned long jarg4, void * jarg5) {
+ unsigned long jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::addr_t arg2 ;
+ void *arg3 = (void *) 0 ;
+ size_t arg4 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::addr_t *argp2 ;
+ size_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ arg4 = (size_t)jarg4;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->WriteMemory(arg2,(void const *)arg3,arg4,*arg5);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBProcess_ReadCStringFromMemory(void * jarg1, void * jarg2, void* jarg3, unsigned long jarg4, void * jarg5) {
+ unsigned long jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::addr_t arg2 ;
+ void *arg3 = (void *) 0 ;
+ size_t arg4 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::addr_t *argp2 ;
+ size_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ arg4 = (size_t)jarg4;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->ReadCStringFromMemory(arg2,arg3,arg4,*arg5);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_ReadUnsignedFromMemory(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::addr_t arg2 ;
+ uint32_t arg3 ;
+ lldb::SBError *arg4 = 0 ;
+ lldb::addr_t *argp2 ;
+ uint32_t *argp3 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBError *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->ReadUnsignedFromMemory(arg2,arg3,*arg4);
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_ReadPointerFromMemory(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::SBError *arg3 = 0 ;
+ lldb::addr_t *argp2 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::SBError *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->ReadPointerFromMemory(arg2,*arg3);
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBProcess_GetStateFromEvent(void * jarg1) {
+ int jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ lldb::StateType result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::StateType)lldb::SBProcess::GetStateFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_GetRestartedFromEvent(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (bool)lldb::SBProcess::GetRestartedFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetProcessFromEvent(void * jarg1) {
+ void * jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = lldb::SBProcess::GetProcessFromEvent((lldb::SBEvent const &)*arg1);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_EventIsProcessEvent(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBEvent *arg1 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBEvent *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBEvent const & type is null", 0);
+ return 0;
+ }
+ result = (bool)lldb::SBProcess::EventIsProcessEvent((lldb::SBEvent const &)*arg1);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetBroadcaster(void * jarg1) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBBroadcaster result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ result = ((lldb::SBProcess const *)arg1)->GetBroadcaster();
+ jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBProcess_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_GetNumSupportedHardwareWatchpoints(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = ((lldb::SBProcess const *)arg1)->GetNumSupportedHardwareWatchpoints(*arg2);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_LoadImage(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+ lldb::SBError *arg3 = 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBError *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->LoadImage(*arg2,*arg3);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBProcess_UnloadImage(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBProcess *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->UnloadImage(arg2);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSection__SWIG_0() {
+ void * jresult ;
+ lldb::SBSection *result = 0 ;
+
+ result = (lldb::SBSection *)new lldb::SBSection();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSection__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBSection *arg1 = 0 ;
+ lldb::SBSection *result = 0 ;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSection const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBSection *)new lldb::SBSection((lldb::SBSection const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBSection(void * jarg1) {
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSection_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (bool)((lldb::SBSection const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBSection_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (char *)(arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_FindSubSection(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBSection result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindSubSection((char const *)arg2);
+ jresult = new lldb::SBSection((const lldb::SBSection &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBSection_GetNumSubSections(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (arg1)->GetNumSubSections();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetSubSectionAtIndex(void * jarg1, unsigned long jarg2) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ size_t arg2 ;
+ lldb::SBSection result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ arg2 = (size_t)jarg2;
+ result = (arg1)->GetSubSectionAtIndex(arg2);
+ jresult = new lldb::SBSection((const lldb::SBSection &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetFileAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (arg1)->GetFileAddress();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetLoadAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ lldb::SBTarget *arg2 = 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ arg2 = (lldb::SBTarget *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->GetLoadAddress(*arg2);
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (arg1)->GetByteSize();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetFileOffset(void * jarg1) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (arg1)->GetFileOffset();
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetFileByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (arg1)->GetFileByteSize();
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetSectionData__SWIG_0(void * jarg1) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (arg1)->GetSectionData();
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSection_GetSectionData__SWIG_1(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ uint64_t arg2 ;
+ uint64_t arg3 ;
+ uint64_t *argp2 ;
+ uint64_t *argp3 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ argp2 = (uint64_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint64_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (uint64_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint64_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetSectionData(arg2,arg3);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBSection_GetSectionType(void * jarg1) {
+ int jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ lldb::SectionType result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ result = (lldb::SectionType)(arg1)->GetSectionType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSection_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBSection *arg1 = (lldb::SBSection *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSection *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSourceManager(void * jarg1) {
+ void * jresult ;
+ lldb::SBSourceManager *arg1 = 0 ;
+ lldb::SBSourceManager *result = 0 ;
+
+ arg1 = (lldb::SBSourceManager *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSourceManager const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBSourceManager *)new lldb::SBSourceManager((lldb::SBSourceManager const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBSourceManager(void * jarg1) {
+ lldb::SBSourceManager *arg1 = (lldb::SBSourceManager *) 0 ;
+
+ arg1 = (lldb::SBSourceManager *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBSourceManager_DisplaySourceLinesWithLineNumbers(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, char * jarg6, void * jarg7) {
+ unsigned long jresult ;
+ lldb::SBSourceManager *arg1 = (lldb::SBSourceManager *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t arg4 ;
+ uint32_t arg5 ;
+ char *arg6 = (char *) 0 ;
+ lldb::SBStream *arg7 = 0 ;
+ uint32_t *argp3 ;
+ uint32_t *argp4 ;
+ uint32_t *argp5 ;
+ size_t result;
+
+ arg1 = (lldb::SBSourceManager *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ argp5 = (uint32_t *)jarg5;
+ if (!argp5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg5 = *argp5;
+ arg6 = (char *)jarg6;
+ arg7 = (lldb::SBStream *)jarg7;
+ if (!arg7) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->DisplaySourceLinesWithLineNumbers((lldb::SBFileSpec const &)*arg2,arg3,arg4,arg5,(char const *)arg6,*arg7);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBStream() {
+ void * jresult ;
+ lldb::SBStream *result = 0 ;
+
+ result = (lldb::SBStream *)new lldb::SBStream();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBStream(void * jarg1) {
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBStream_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ result = (bool)((lldb::SBStream const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBStream_GetData(void * jarg1) {
+ char * jresult ;
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ result = (char *)(arg1)->GetData();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBStream_GetSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ result = (arg1)->GetSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStream_Printf(void * jarg1, char * jarg2) {
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *arg3 = 0 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->Printf((char const *)arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStream_RedirectToFile(void * jarg1, char * jarg2, unsigned int jarg3) {
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->RedirectToFile((char const *)arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStream_RedirectToFileHandle(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ FILE *arg2 = (FILE *) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ arg2 = (FILE *)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->RedirectToFileHandle(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStream_RedirectToFileDescriptor(void * jarg1, int jarg2, unsigned int jarg3) {
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+ int arg2 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ arg2 = (int)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->RedirectToFileDescriptor(arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStream_Clear(void * jarg1) {
+ lldb::SBStream *arg1 = (lldb::SBStream *) 0 ;
+
+ arg1 = (lldb::SBStream *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBStringList__SWIG_0() {
+ void * jresult ;
+ lldb::SBStringList *result = 0 ;
+
+ result = (lldb::SBStringList *)new lldb::SBStringList();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBStringList__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBStringList *arg1 = 0 ;
+ lldb::SBStringList *result = 0 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStringList const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBStringList *)new lldb::SBStringList((lldb::SBStringList const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBStringList(void * jarg1) {
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBStringList_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ result = (bool)((lldb::SBStringList const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStringList_AppendString(void * jarg1, char * jarg2) {
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->AppendString((char const *)arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStringList_AppendList__SWIG_0(void * jarg1, void * jarg2, int jarg3) {
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+ char **arg2 = (char **) 0 ;
+ int arg3 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ arg2 = (char **)jarg2;
+ arg3 = (int)jarg3;
+ (arg1)->AppendList((char const **)arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStringList_AppendList__SWIG_1(void * jarg1, void * jarg2) {
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+ lldb::SBStringList *arg2 = 0 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ arg2 = (lldb::SBStringList *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStringList const & type is null", 0);
+ return ;
+ }
+ (arg1)->AppendList((lldb::SBStringList const &)*arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBStringList_GetSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ result = ((lldb::SBStringList const *)arg1)->GetSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBStringList_GetStringAtIndex(void * jarg1, unsigned long jarg2) {
+ char * jresult ;
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+ size_t arg2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ arg2 = (size_t)jarg2;
+ result = (char *)(arg1)->GetStringAtIndex(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBStringList_Clear(void * jarg1) {
+ lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ;
+
+ arg1 = (lldb::SBStringList *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSymbol__SWIG_0() {
+ void * jresult ;
+ lldb::SBSymbol *result = 0 ;
+
+ result = (lldb::SBSymbol *)new lldb::SBSymbol();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBSymbol(void * jarg1) {
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSymbol__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbol *arg1 = 0 ;
+ lldb::SBSymbol *result = 0 ;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSymbol const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBSymbol *)new lldb::SBSymbol((lldb::SBSymbol const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbol_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (bool)((lldb::SBSymbol const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBSymbol_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (char *)((lldb::SBSymbol const *)arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBSymbol_GetMangledName(void * jarg1) {
+ char * jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (char *)((lldb::SBSymbol const *)arg1)->GetMangledName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbol_GetInstructions(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ lldb::SBTarget arg2 ;
+ lldb::SBTarget *argp2 ;
+ lldb::SBInstructionList result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ argp2 = (lldb::SBTarget *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTarget", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetInstructions(arg2);
+ jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbol_GetStartAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (arg1)->GetStartAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbol_GetEndAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (arg1)->GetEndAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbol_GetPrologueByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (arg1)->GetPrologueByteSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBSymbol_GetType(void * jarg1) {
+ int jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ lldb::SymbolType result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (lldb::SymbolType)(arg1)->GetType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbol_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbol_IsExternal(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (bool)(arg1)->IsExternal();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbol_IsSynthetic(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbol *)jarg1;
+ result = (bool)(arg1)->IsSynthetic();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSymbolContext__SWIG_0() {
+ void * jresult ;
+ lldb::SBSymbolContext *result = 0 ;
+
+ result = (lldb::SBSymbolContext *)new lldb::SBSymbolContext();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSymbolContext__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = 0 ;
+ lldb::SBSymbolContext *result = 0 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSymbolContext const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBSymbolContext *)new lldb::SBSymbolContext((lldb::SBSymbolContext const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBSymbolContext(void * jarg1) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbolContext_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (bool)((lldb::SBSymbolContext const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetModule(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (arg1)->GetModule();
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetCompileUnit(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBCompileUnit result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (arg1)->GetCompileUnit();
+ jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetFunction(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBFunction result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (arg1)->GetFunction();
+ jresult = new lldb::SBFunction((const lldb::SBFunction &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetBlock(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBBlock result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (arg1)->GetBlock();
+ jresult = new lldb::SBBlock((const lldb::SBBlock &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetLineEntry(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBLineEntry result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (arg1)->GetLineEntry();
+ jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetSymbol(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBSymbol result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ result = (arg1)->GetSymbol();
+ jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContext_SetModule(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBModule arg2 ;
+ lldb::SBModule *argp2 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ argp2 = (lldb::SBModule *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBModule", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetModule(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContext_SetCompileUnit(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBCompileUnit arg2 ;
+ lldb::SBCompileUnit *argp2 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ argp2 = (lldb::SBCompileUnit *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBCompileUnit", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetCompileUnit(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContext_SetFunction(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBFunction arg2 ;
+ lldb::SBFunction *argp2 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ argp2 = (lldb::SBFunction *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBFunction", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetFunction(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContext_SetBlock(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBBlock arg2 ;
+ lldb::SBBlock *argp2 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ argp2 = (lldb::SBBlock *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBBlock", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetBlock(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContext_SetLineEntry(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBLineEntry arg2 ;
+ lldb::SBLineEntry *argp2 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ argp2 = (lldb::SBLineEntry *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBLineEntry", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetLineEntry(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContext_SetSymbol(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBSymbol arg2 ;
+ lldb::SBSymbol *argp2 ;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ argp2 = (lldb::SBSymbol *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBSymbol", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetSymbol(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContext_GetParentOfInlinedScope(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBAddress *arg2 = 0 ;
+ lldb::SBAddress *arg3 = 0 ;
+ lldb::SBSymbolContext result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ arg2 = (lldb::SBAddress *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAddress const & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBAddress *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAddress & type is null", 0);
+ return 0;
+ }
+ result = ((lldb::SBSymbolContext const *)arg1)->GetParentOfInlinedScope((lldb::SBAddress const &)*arg2,*arg3);
+ jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbolContext_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbolContext *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSymbolContextList__SWIG_0() {
+ void * jresult ;
+ lldb::SBSymbolContextList *result = 0 ;
+
+ result = (lldb::SBSymbolContextList *)new lldb::SBSymbolContextList();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBSymbolContextList__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContextList *arg1 = 0 ;
+ lldb::SBSymbolContextList *result = 0 ;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSymbolContextList const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBSymbolContextList *)new lldb::SBSymbolContextList((lldb::SBSymbolContextList const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBSymbolContextList(void * jarg1) {
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbolContextList_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ result = (bool)((lldb::SBSymbolContextList const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContextList_GetSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ result = ((lldb::SBSymbolContextList const *)arg1)->GetSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBSymbolContextList_GetContextAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBSymbolContext result;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetContextAtIndex(arg2);
+ jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContextList_Append__SWIG_0(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+ lldb::SBSymbolContext *arg2 = 0 ;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ arg2 = (lldb::SBSymbolContext *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSymbolContext & type is null", 0);
+ return ;
+ }
+ (arg1)->Append(*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContextList_Append__SWIG_1(void * jarg1, void * jarg2) {
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+ lldb::SBSymbolContextList *arg2 = 0 ;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ arg2 = (lldb::SBSymbolContextList *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBSymbolContextList & type is null", 0);
+ return ;
+ }
+ (arg1)->Append(*arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBSymbolContextList_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBSymbolContextList_Clear(void * jarg1) {
+ lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ;
+
+ arg1 = (lldb::SBSymbolContextList *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBLaunchInfo(void * jarg1) {
+ void * jresult ;
+ char **arg1 = (char **) 0 ;
+ lldb::SBLaunchInfo *result = 0 ;
+
+ arg1 = (char **)jarg1;
+ result = (lldb::SBLaunchInfo *)new lldb::SBLaunchInfo((char const **)arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLaunchInfo_GetUserID(void * jarg1) {
+ void * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (arg1)->GetUserID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLaunchInfo_GetGroupID(void * jarg1) {
+ void * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (arg1)->GetGroupID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLaunchInfo_UserIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (bool)(arg1)->UserIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLaunchInfo_GroupIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (bool)(arg1)->GroupIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetUserID(void * jarg1, void * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetUserID(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetGroupID(void * jarg1, void * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetGroupID(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLaunchInfo_GetNumArguments(void * jarg1) {
+ void * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (arg1)->GetNumArguments();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBLaunchInfo_GetArgumentAtIndex(void * jarg1, void * jarg2) {
+ char * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (char *)(arg1)->GetArgumentAtIndex(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetArguments(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char **arg2 = (char **) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (char **)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->SetArguments((char const **)arg2,arg3);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLaunchInfo_GetNumEnvironmentEntries(void * jarg1) {
+ void * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (arg1)->GetNumEnvironmentEntries();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBLaunchInfo_GetEnvironmentEntryAtIndex(void * jarg1, void * jarg2) {
+ char * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (char *)(arg1)->GetEnvironmentEntryAtIndex(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetEnvironmentEntries(void * jarg1, void * jarg2, unsigned int jarg3) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char **arg2 = (char **) 0 ;
+ bool arg3 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (char **)jarg2;
+ arg3 = jarg3 ? true : false;
+ (arg1)->SetEnvironmentEntries((char const **)arg2,arg3);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_Clear(void * jarg1) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBLaunchInfo_GetWorkingDirectory(void * jarg1) {
+ char * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (char *)((lldb::SBLaunchInfo const *)arg1)->GetWorkingDirectory();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetWorkingDirectory(void * jarg1, char * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetWorkingDirectory((char const *)arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLaunchInfo_GetLaunchFlags(void * jarg1) {
+ void * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (arg1)->GetLaunchFlags();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetLaunchFlags(void * jarg1, void * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetLaunchFlags(arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBLaunchInfo_GetProcessPluginName(void * jarg1) {
+ char * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (char *)(arg1)->GetProcessPluginName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetProcessPluginName(void * jarg1, char * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetProcessPluginName((char const *)arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBLaunchInfo_GetShell(void * jarg1) {
+ char * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (char *)(arg1)->GetShell();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetShell(void * jarg1, char * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetShell((char const *)arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBLaunchInfo_GetResumeCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ result = (arg1)->GetResumeCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBLaunchInfo_SetResumeCount(void * jarg1, void * jarg2) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetResumeCount(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLaunchInfo_AddCloseFileAction(void * jarg1, int jarg2) {
+ unsigned int jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ int arg2 ;
+ bool result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (int)jarg2;
+ result = (bool)(arg1)->AddCloseFileAction(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLaunchInfo_AddDuplicateFileAction(void * jarg1, int jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ int arg2 ;
+ int arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (int)jarg2;
+ arg3 = (int)jarg3;
+ result = (bool)(arg1)->AddDuplicateFileAction(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLaunchInfo_AddOpenFileAction(void * jarg1, int jarg2, char * jarg3, unsigned int jarg4, unsigned int jarg5) {
+ unsigned int jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ int arg2 ;
+ char *arg3 = (char *) 0 ;
+ bool arg4 ;
+ bool arg5 ;
+ bool result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (int)jarg2;
+ arg3 = (char *)jarg3;
+ arg4 = jarg4 ? true : false;
+ arg5 = jarg5 ? true : false;
+ result = (bool)(arg1)->AddOpenFileAction(arg2,(char const *)arg3,arg4,arg5);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBLaunchInfo_AddSuppressFileAction(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4) {
+ unsigned int jresult ;
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+ int arg2 ;
+ bool arg3 ;
+ bool arg4 ;
+ bool result;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ arg2 = (int)jarg2;
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ result = (bool)(arg1)->AddSuppressFileAction(arg2,arg3,arg4);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBLaunchInfo(void * jarg1) {
+ lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ;
+
+ arg1 = (lldb::SBLaunchInfo *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAttachInfo__SWIG_0() {
+ void * jresult ;
+ lldb::SBAttachInfo *result = 0 ;
+
+ result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAttachInfo__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::pid_t arg1 ;
+ lldb::pid_t *argp1 ;
+ lldb::SBAttachInfo *result = 0 ;
+
+ argp1 = (lldb::pid_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::pid_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo(arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAttachInfo__SWIG_2(char * jarg1, unsigned int jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ bool arg2 ;
+ lldb::SBAttachInfo *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ arg2 = jarg2 ? true : false;
+ result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo((char const *)arg1,arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBAttachInfo__SWIG_3(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = 0 ;
+ lldb::SBAttachInfo *result = 0 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAttachInfo const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo((lldb::SBAttachInfo const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetProcessID(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ lldb::pid_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetProcessID();
+ jresult = new lldb::pid_t((const lldb::pid_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetProcessID(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ lldb::pid_t arg2 ;
+ lldb::pid_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (lldb::pid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::pid_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetProcessID(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetExecutable__SWIG_0(void * jarg1, char * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetExecutable((char const *)arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetExecutable__SWIG_1(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ lldb::SBFileSpec arg2 ;
+ lldb::SBFileSpec *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (lldb::SBFileSpec *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBFileSpec", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetExecutable(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_GetWaitForLaunch(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->GetWaitForLaunch();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetWaitForLaunch(void * jarg1, unsigned int jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetWaitForLaunch(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_GetIgnoreExisting(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->GetIgnoreExisting();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetIgnoreExisting(void * jarg1, unsigned int jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetIgnoreExisting(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetResumeCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetResumeCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetResumeCount(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetResumeCount(arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBAttachInfo_GetProcessPluginName(void * jarg1) {
+ char * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (char *)(arg1)->GetProcessPluginName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetProcessPluginName(void * jarg1, char * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetProcessPluginName((char const *)arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetUserID(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetUserID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetGroupID(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetGroupID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_UserIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->UserIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_GroupIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->GroupIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetUserID(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetUserID(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetGroupID(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetGroupID(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetEffectiveUserID(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetEffectiveUserID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetEffectiveGroupID(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetEffectiveGroupID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_EffectiveUserIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->EffectiveUserIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_EffectiveGroupIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->EffectiveGroupIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetEffectiveUserID(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetEffectiveUserID(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetEffectiveGroupID(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetEffectiveGroupID(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBAttachInfo_GetParentProcessID(void * jarg1) {
+ void * jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ lldb::pid_t result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (arg1)->GetParentProcessID();
+ jresult = new lldb::pid_t((const lldb::pid_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBAttachInfo_SetParentProcessID(void * jarg1, void * jarg2) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ lldb::pid_t arg2 ;
+ lldb::pid_t *argp2 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ argp2 = (lldb::pid_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::pid_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetParentProcessID(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBAttachInfo_ParentProcessIDIsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ result = (bool)(arg1)->ParentProcessIDIsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBAttachInfo(void * jarg1) {
+ lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ;
+
+ arg1 = (lldb::SBAttachInfo *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBTarget_eBroadcastBitBreakpointChanged_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBTarget::eBroadcastBitBreakpointChanged;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBTarget_eBroadcastBitModulesLoaded_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBTarget::eBroadcastBitModulesLoaded;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBTarget_eBroadcastBitModulesUnloaded_get() {
+ int jresult ;
+ int result;
+
+ result = (int)lldb::SBTarget::eBroadcastBitModulesUnloaded;
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTarget__SWIG_0() {
+ void * jresult ;
+ lldb::SBTarget *result = 0 ;
+
+ result = (lldb::SBTarget *)new lldb::SBTarget();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTarget__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = 0 ;
+ lldb::SBTarget *result = 0 ;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTarget const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTarget *)new lldb::SBTarget((lldb::SBTarget const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTarget(void * jarg1) {
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTarget_GetBroadcasterClassName() {
+ char * jresult ;
+ char *result = 0 ;
+
+ result = (char *)lldb::SBTarget::GetBroadcasterClassName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)((lldb::SBTarget const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetProcess(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (arg1)->GetProcess();
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_Launch__SWIG_0(void * jarg1, void * jarg2, void * jarg3, void * jarg4, char * jarg5, char * jarg6, char * jarg7, char * jarg8, void * jarg9, unsigned int jarg10, void * jarg11) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ char **arg3 = (char **) 0 ;
+ char **arg4 = (char **) 0 ;
+ char *arg5 = (char *) 0 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ char *arg8 = (char *) 0 ;
+ uint32_t arg9 ;
+ bool arg10 ;
+ lldb::SBError *arg11 = 0 ;
+ uint32_t *argp9 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener & type is null", 0);
+ return 0;
+ }
+ arg3 = (char **)jarg3;
+ arg4 = (char **)jarg4;
+ arg5 = (char *)jarg5;
+ arg6 = (char *)jarg6;
+ arg7 = (char *)jarg7;
+ arg8 = (char *)jarg8;
+ argp9 = (uint32_t *)jarg9;
+ if (!argp9) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg9 = *argp9;
+ arg10 = jarg10 ? true : false;
+ arg11 = (lldb::SBError *)jarg11;
+ if (!arg11) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->Launch(*arg2,(char const **)arg3,(char const **)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7,(char const *)arg8,arg9,arg10,*arg11);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_LaunchSimple(void * jarg1, void * jarg2, void * jarg3, char * jarg4) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char **arg2 = (char **) 0 ;
+ char **arg3 = (char **) 0 ;
+ char *arg4 = (char *) 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char **)jarg2;
+ arg3 = (char **)jarg3;
+ arg4 = (char *)jarg4;
+ result = (arg1)->LaunchSimple((char const **)arg2,(char const **)arg3,(char const *)arg4);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_Launch__SWIG_1(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBLaunchInfo *arg2 = 0 ;
+ lldb::SBError *arg3 = 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBLaunchInfo *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBLaunchInfo & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBError *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->Launch(*arg2,*arg3);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_Attach(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBAttachInfo *arg2 = 0 ;
+ lldb::SBError *arg3 = 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBAttachInfo *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAttachInfo & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBError *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->Attach(*arg2,*arg3);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_AttachToProcessWithID(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ lldb::pid_t arg3 ;
+ lldb::SBError *arg4 = 0 ;
+ lldb::pid_t *argp3 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener & type is null", 0);
+ return 0;
+ }
+ argp3 = (lldb::pid_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::pid_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBError *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->AttachToProcessWithID(*arg2,arg3,*arg4);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_AttachToProcessWithName(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4, void * jarg5) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ char *arg3 = (char *) 0 ;
+ bool arg4 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener & type is null", 0);
+ return 0;
+ }
+ arg3 = (char *)jarg3;
+ arg4 = jarg4 ? true : false;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->AttachToProcessWithName(*arg2,(char const *)arg3,arg4,*arg5);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_ConnectRemote(void * jarg1, void * jarg2, char * jarg3, char * jarg4, void * jarg5) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBListener *arg2 = 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBListener *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBListener & type is null", 0);
+ return 0;
+ }
+ arg3 = (char *)jarg3;
+ arg4 = (char *)jarg4;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->ConnectRemote(*arg2,(char const *)arg3,(char const *)arg4,*arg5);
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetExecutable(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBFileSpec result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (arg1)->GetExecutable();
+ jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_AddModule__SWIG_0(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBModule *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBModule *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBModule & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->AddModule(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_AddModule__SWIG_1(void * jarg1, char * jarg2, char * jarg3, char * jarg4) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ arg4 = (char *)jarg4;
+ result = (arg1)->AddModule((char const *)arg2,(char const *)arg3,(char const *)arg4);
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_AddModule__SWIG_2(void * jarg1, char * jarg2, char * jarg3, char * jarg4, char * jarg5) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ char *arg5 = (char *) 0 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ arg4 = (char *)jarg4;
+ arg5 = (char *)jarg5;
+ result = (arg1)->AddModule((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetNumModules(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = ((lldb::SBTarget const *)arg1)->GetNumModules();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetModuleAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetModuleAtIndex(arg2);
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_RemoveModule(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBModule arg2 ;
+ lldb::SBModule *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBModule *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBModule", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->RemoveModule(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetDebugger(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBDebugger result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = ((lldb::SBTarget const *)arg1)->GetDebugger();
+ jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindModule(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+ lldb::SBModule result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->FindModule((lldb::SBFileSpec const &)*arg2);
+ jresult = new lldb::SBModule((const lldb::SBModule &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBTarget_GetByteOrder(void * jarg1) {
+ int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::ByteOrder result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (lldb::ByteOrder)(arg1)->GetByteOrder();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetAddressByteSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (arg1)->GetAddressByteSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTarget_GetTriple(void * jarg1) {
+ char * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (char *)(arg1)->GetTriple();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_SetSectionLoadAddress(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBSection arg2 ;
+ lldb::addr_t arg3 ;
+ lldb::SBSection *argp2 ;
+ lldb::addr_t *argp3 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBSection *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBSection", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (lldb::addr_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->SetSectionLoadAddress(arg2,arg3);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_ClearSectionLoadAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBSection arg2 ;
+ lldb::SBSection *argp2 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBSection *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBSection", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->ClearSectionLoadAddress(arg2);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_SetModuleLoadAddress(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBModule arg2 ;
+ int64_t arg3 ;
+ lldb::SBModule *argp2 ;
+ int64_t *argp3 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBModule *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBModule", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (int64_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null int64_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->SetModuleLoadAddress(arg2,arg3);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_ClearModuleLoadAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBModule arg2 ;
+ lldb::SBModule *argp2 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBModule *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBModule", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->ClearModuleLoadAddress(arg2);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindFunctions__SWIG_0(void * jarg1, char * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBSymbolContextList result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->FindFunctions((char const *)arg2,arg3);
+ jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindFunctions__SWIG_1(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBSymbolContextList result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindFunctions((char const *)arg2);
+ jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindFirstType(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindFirstType((char const *)arg2);
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindTypes(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBTypeList result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->FindTypes((char const *)arg2);
+ jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetSourceManager(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ SwigValueWrapper< lldb::SBSourceManager > result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (arg1)->GetSourceManager();
+ jresult = new lldb::SBSourceManager((const lldb::SBSourceManager &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindGlobalVariables(void * jarg1, char * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBValueList result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->FindGlobalVariables((char const *)arg2,arg3);
+ jresult = new lldb::SBValueList((const lldb::SBValueList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTarget_Clear(void * jarg1) {
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_ResolveLoadAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->ResolveLoadAddress(arg2);
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_ResolveSymbolContextForAddress(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBAddress *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBSymbolContext result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBAddress *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBAddress const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->ResolveSymbolContextForAddress((lldb::SBAddress const &)*arg2,arg3);
+ jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByLocation__SWIG_0(void * jarg1, char * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->BreakpointCreateByLocation((char const *)arg2,arg3);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByLocation__SWIG_1(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBFileSpec *arg2 = 0 ;
+ uint32_t arg3 ;
+ uint32_t *argp3 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBFileSpec *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->BreakpointCreateByLocation((lldb::SBFileSpec const &)*arg2,arg3);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByName__SWIG_0(void * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = (arg1)->BreakpointCreateByName((char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByName__SWIG_1(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->BreakpointCreateByName((char const *)arg2);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByName__SWIG_2(void * jarg1, char * jarg2, void * jarg3, void * jarg4, void * jarg5) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ lldb::SBFileSpecList *arg4 = 0 ;
+ lldb::SBFileSpecList *arg5 = 0 ;
+ uint32_t *argp3 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ arg4 = (lldb::SBFileSpecList *)jarg4;
+ if (!arg4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpecList const & type is null", 0);
+ return 0;
+ }
+ arg5 = (lldb::SBFileSpecList *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpecList const & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->BreakpointCreateByName((char const *)arg2,arg3,(lldb::SBFileSpecList const &)*arg4,(lldb::SBFileSpecList const &)*arg5);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByNames(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char **arg2 ;
+ uint32_t arg3 ;
+ uint32_t arg4 ;
+ lldb::SBFileSpecList *arg5 = 0 ;
+ lldb::SBFileSpecList *arg6 = 0 ;
+ uint32_t *argp3 ;
+ uint32_t *argp4 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char **)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ arg5 = (lldb::SBFileSpecList *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpecList const & type is null", 0);
+ return 0;
+ }
+ arg6 = (lldb::SBFileSpecList *)jarg6;
+ if (!arg6) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpecList const & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->BreakpointCreateByNames((char const *(*))arg2,arg3,arg4,(lldb::SBFileSpecList const &)*arg5,(lldb::SBFileSpecList const &)*arg6);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByRegex__SWIG_0(void * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = (arg1)->BreakpointCreateByRegex((char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByRegex__SWIG_1(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->BreakpointCreateByRegex((char const *)arg2);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateBySourceRegex__SWIG_0(void * jarg1, char * jarg2, void * jarg3, char * jarg4) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBFileSpec *arg3 = 0 ;
+ char *arg4 = (char *) 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::SBFileSpec *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ arg4 = (char *)jarg4;
+ result = (arg1)->BreakpointCreateBySourceRegex((char const *)arg2,(lldb::SBFileSpec const &)*arg3,(char const *)arg4);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateBySourceRegex__SWIG_1(void * jarg1, char * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBFileSpec *arg3 = 0 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::SBFileSpec *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec const & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->BreakpointCreateBySourceRegex((char const *)arg2,(lldb::SBFileSpec const &)*arg3);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateForException(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::LanguageType arg2 ;
+ bool arg3 ;
+ bool arg4 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::LanguageType)jarg2;
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ result = (arg1)->BreakpointCreateForException(arg2,arg3,arg4);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_BreakpointCreateByAddress(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->BreakpointCreateByAddress(arg2);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetNumBreakpoints(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = ((lldb::SBTarget const *)arg1)->GetNumBreakpoints();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetBreakpointAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBTarget const *)arg1)->GetBreakpointAtIndex(arg2);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_BreakpointDelete(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::break_id_t arg2 ;
+ lldb::break_id_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::break_id_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::break_id_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->BreakpointDelete(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindBreakpointByID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::break_id_t arg2 ;
+ lldb::break_id_t *argp2 ;
+ lldb::SBBreakpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::break_id_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::break_id_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindBreakpointByID(arg2);
+ jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_EnableAllBreakpoints(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)(arg1)->EnableAllBreakpoints();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_DisableAllBreakpoints(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)(arg1)->DisableAllBreakpoints();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_DeleteAllBreakpoints(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)(arg1)->DeleteAllBreakpoints();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetNumWatchpoints(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = ((lldb::SBTarget const *)arg1)->GetNumWatchpoints();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetWatchpointAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBWatchpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBTarget const *)arg1)->GetWatchpointAtIndex(arg2);
+ jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_DeleteWatchpoint(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::watch_id_t arg2 ;
+ lldb::watch_id_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::watch_id_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::watch_id_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->DeleteWatchpoint(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_FindWatchpointByID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::watch_id_t arg2 ;
+ lldb::watch_id_t *argp2 ;
+ lldb::SBWatchpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::watch_id_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::watch_id_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindWatchpointByID(arg2);
+ jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_EnableAllWatchpoints(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)(arg1)->EnableAllWatchpoints();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_DisableAllWatchpoints(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)(arg1)->DisableAllWatchpoints();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_DeleteAllWatchpoints(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = (bool)(arg1)->DeleteAllWatchpoints();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_WatchAddress(void * jarg1, void * jarg2, unsigned long jarg3, unsigned int jarg4, unsigned int jarg5, void * jarg6) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::addr_t arg2 ;
+ size_t arg3 ;
+ bool arg4 ;
+ bool arg5 ;
+ lldb::SBError *arg6 = 0 ;
+ lldb::addr_t *argp2 ;
+ lldb::SBWatchpoint result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (size_t)jarg3;
+ arg4 = jarg4 ? true : false;
+ arg5 = jarg5 ? true : false;
+ arg6 = (lldb::SBError *)jarg6;
+ if (!arg6) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->WatchAddress(arg2,arg3,arg4,arg5,*arg6);
+ jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetBroadcaster(void * jarg1) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBBroadcaster result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ result = ((lldb::SBTarget const *)arg1)->GetBroadcaster();
+ jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_ReadInstructions(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBAddress arg2 ;
+ uint32_t arg3 ;
+ lldb::SBAddress *argp2 ;
+ uint32_t *argp3 ;
+ lldb::SBInstructionList result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBAddress *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBAddress", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->ReadInstructions(arg2,arg3);
+ jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTarget_GetInstructions(void * jarg1, void * jarg2, void* jarg3, unsigned long jarg4) {
+ void * jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBAddress arg2 ;
+ void *arg3 = (void *) 0 ;
+ size_t arg4 ;
+ lldb::SBAddress *argp2 ;
+ lldb::SBInstructionList result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ argp2 = (lldb::SBAddress *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBAddress", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (void *)jarg3; /* IntPtr */
+ arg4 = (size_t)jarg4;
+ result = (arg1)->GetInstructions(arg2,(void const *)arg3,arg4);
+ jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTarget_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTarget *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBThread__SWIG_0() {
+ void * jresult ;
+ lldb::SBThread *result = 0 ;
+
+ result = (lldb::SBThread *)new lldb::SBThread();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBThread__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = 0 ;
+ lldb::SBThread *result = 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBThread const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBThread *)new lldb::SBThread((lldb::SBThread const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBThread(void * jarg1) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBThread_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (bool)((lldb::SBThread const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_Clear(void * jarg1) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBThread_GetStopReason(void * jarg1) {
+ int jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::StopReason result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (lldb::StopReason)(arg1)->GetStopReason();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBThread_GetStopReasonDataCount(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (arg1)->GetStopReasonDataCount();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetStopReasonDataAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetStopReasonDataAtIndex(arg2);
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBThread_GetStopDescription(void * jarg1, char * jarg2, unsigned long jarg3) {
+ unsigned long jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ char *arg2 = (char *) 0 ;
+ size_t arg3 ;
+ size_t result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (size_t)jarg3;
+ result = (arg1)->GetStopDescription(arg2,arg3);
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetStopReturnValue(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (arg1)->GetStopReturnValue();
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetThreadID(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::tid_t result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = ((lldb::SBThread const *)arg1)->GetThreadID();
+ jresult = new lldb::tid_t((const lldb::tid_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetIndexID(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = ((lldb::SBThread const *)arg1)->GetIndexID();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBThread_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (char *)((lldb::SBThread const *)arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBThread_GetQueueName(void * jarg1) {
+ char * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (char *)((lldb::SBThread const *)arg1)->GetQueueName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepOver__SWIG_0(void * jarg1, int jarg2) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::RunMode arg2 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = (lldb::RunMode)jarg2;
+ (arg1)->StepOver(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepOver__SWIG_1(void * jarg1) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ (arg1)->StepOver();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepInto__SWIG_0(void * jarg1, int jarg2) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::RunMode arg2 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = (lldb::RunMode)jarg2;
+ (arg1)->StepInto(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepInto__SWIG_1(void * jarg1) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ (arg1)->StepInto();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepOut(void * jarg1) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ (arg1)->StepOut();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepOutOfFrame(void * jarg1, void * jarg2) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::SBFrame *arg2 = 0 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = (lldb::SBFrame *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFrame & type is null", 0);
+ return ;
+ }
+ (arg1)->StepOutOfFrame(*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_StepInstruction(void * jarg1, unsigned int jarg2) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->StepInstruction(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_StepOverUntil(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::SBFrame *arg2 = 0 ;
+ lldb::SBFileSpec *arg3 = 0 ;
+ uint32_t arg4 ;
+ uint32_t *argp4 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = (lldb::SBFrame *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFrame & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::SBFileSpec *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBFileSpec & type is null", 0);
+ return 0;
+ }
+ argp4 = (uint32_t *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->StepOverUntil(*arg2,*arg3,arg4);
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBThread_RunToAddress(void * jarg1, void * jarg2) {
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::addr_t arg2 ;
+ lldb::addr_t *argp2 ;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ argp2 = (lldb::addr_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->RunToAddress(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBThread_Suspend(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (bool)(arg1)->Suspend();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBThread_Resume(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (bool)(arg1)->Resume();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBThread_IsSuspended(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (bool)(arg1)->IsSuspended();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetNumFrames(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (arg1)->GetNumFrames();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetFrameAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBFrame result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFrameAtIndex(arg2);
+ jresult = new lldb::SBFrame((const lldb::SBFrame &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetSelectedFrame(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::SBFrame result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (arg1)->GetSelectedFrame();
+ jresult = new lldb::SBFrame((const lldb::SBFrame &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_SetSelectedFrame(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBFrame result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->SetSelectedFrame(arg2);
+ jresult = new lldb::SBFrame((const lldb::SBFrame &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBThread_GetProcess(void * jarg1) {
+ void * jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ result = (arg1)->GetProcess();
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBThread_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBThread *arg1 = (lldb::SBThread *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBThread *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)((lldb::SBThread const *)arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeMember__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeMember *result = 0 ;
+
+ result = (lldb::SBTypeMember *)new lldb::SBTypeMember();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeMember__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeMember *arg1 = 0 ;
+ lldb::SBTypeMember *result = 0 ;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeMember const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeMember *)new lldb::SBTypeMember((lldb::SBTypeMember const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeMember(void * jarg1) {
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeMember_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (bool)((lldb::SBTypeMember const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTypeMember_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (char *)(arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeMember_GetType(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (arg1)->GetType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeMember_GetOffsetInBytes(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (arg1)->GetOffsetInBytes();
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeMember_GetOffsetInBits(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (arg1)->GetOffsetInBits();
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeMember_IsBitfield(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (bool)(arg1)->IsBitfield();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeMember_GetBitfieldSizeInBits(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeMember *)jarg1;
+ result = (arg1)->GetBitfieldSizeInBits();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBType__SWIG_0() {
+ void * jresult ;
+ lldb::SBType *result = 0 ;
+
+ result = (lldb::SBType *)new lldb::SBType();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBType__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = 0 ;
+ lldb::SBType *result = 0 ;
+
+ arg1 = (lldb::SBType *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBType const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBType *)new lldb::SBType((lldb::SBType const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBType(void * jarg1) {
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+
+ arg1 = (lldb::SBType *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBType_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (bool)(arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBType_GetByteSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetByteSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBType_IsPointerType(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (bool)(arg1)->IsPointerType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBType_IsReferenceType(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (bool)(arg1)->IsReferenceType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetPointerType(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetPointerType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetPointeeType(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetPointeeType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetReferenceType(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetReferenceType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetDereferencedType(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetDereferencedType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetUnqualifiedType(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetUnqualifiedType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetBasicType(void * jarg1, int jarg2) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::BasicType arg2 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ arg2 = (lldb::BasicType)jarg2;
+ result = (arg1)->GetBasicType(arg2);
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetNumberOfFields(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetNumberOfFields();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetNumberOfDirectBaseClasses(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetNumberOfDirectBaseClasses();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetNumberOfVirtualBaseClasses(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetNumberOfVirtualBaseClasses();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetFieldAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeMember result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFieldAtIndex(arg2);
+ jresult = new lldb::SBTypeMember((const lldb::SBTypeMember &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetDirectBaseClassAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeMember result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetDirectBaseClassAtIndex(arg2);
+ jresult = new lldb::SBTypeMember((const lldb::SBTypeMember &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetVirtualBaseClassAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeMember result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetVirtualBaseClassAtIndex(arg2);
+ jresult = new lldb::SBTypeMember((const lldb::SBTypeMember &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBType_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (char *)(arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBType_GetTypeClass(void * jarg1) {
+ int jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ lldb::TypeClass result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (lldb::TypeClass)(arg1)->GetTypeClass();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetNumberOfTemplateArguments(void * jarg1) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (arg1)->GetNumberOfTemplateArguments();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBType_GetTemplateArgumentType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTemplateArgumentType(arg2);
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBType_GetTemplateArgumentKind(void * jarg1, void * jarg2) {
+ int jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::TemplateArgumentKind result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (lldb::TemplateArgumentKind)(arg1)->GetTemplateArgumentKind(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBType_IsTypeComplete(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBType *arg1 = (lldb::SBType *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBType *)jarg1;
+ result = (bool)(arg1)->IsTypeComplete();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeList() {
+ void * jresult ;
+ lldb::SBTypeList *result = 0 ;
+
+ result = (lldb::SBTypeList *)new lldb::SBTypeList();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeList_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeList *)jarg1;
+ result = (bool)(arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeList_Append(void * jarg1, void * jarg2) {
+ lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ;
+ lldb::SBType arg2 ;
+ lldb::SBType *argp2 ;
+
+ arg1 = (lldb::SBTypeList *)jarg1;
+ argp2 = (lldb::SBType *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBType", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->Append(arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeList_GetTypeAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBTypeList *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTypeAtIndex(arg2);
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeList_GetSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeList *)jarg1;
+ result = (arg1)->GetSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeList(void * jarg1) {
+ lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ;
+
+ arg1 = (lldb::SBTypeList *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeCategory__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeCategory *result = 0 ;
+
+ result = (lldb::SBTypeCategory *)new lldb::SBTypeCategory();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeCategory__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = 0 ;
+ lldb::SBTypeCategory *result = 0 ;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeCategory const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeCategory *)new lldb::SBTypeCategory((lldb::SBTypeCategory const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeCategory(void * jarg1) {
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (bool)((lldb::SBTypeCategory const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_GetEnabled(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (bool)(arg1)->GetEnabled();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeCategory_SetEnabled(void * jarg1, unsigned int jarg2) {
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetEnabled(arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTypeCategory_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (char *)(arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetNumFormats(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (arg1)->GetNumFormats();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetNumSummaries(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (arg1)->GetNumSummaries();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetNumFilters(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (arg1)->GetNumFilters();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetNumSynthetics(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ result = (arg1)->GetNumSynthetics();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetTypeNameSpecifierForFilterAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeNameSpecifier result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTypeNameSpecifierForFilterAtIndex(arg2);
+ jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetTypeNameSpecifierForFormatAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeNameSpecifier result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTypeNameSpecifierForFormatAtIndex(arg2);
+ jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetTypeNameSpecifierForSummaryAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeNameSpecifier result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTypeNameSpecifierForSummaryAtIndex(arg2);
+ jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetTypeNameSpecifierForSyntheticAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeNameSpecifier result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetTypeNameSpecifierForSyntheticAtIndex(arg2);
+ jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetFilterForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeFilter result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFilterForType(arg2);
+ jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetFormatForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeFormat result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFormatForType(arg2);
+ jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetSummaryForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSummaryForType(arg2);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetSyntheticForType(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSyntheticForType(arg2);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetFilterAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeFilter result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFilterAtIndex(arg2);
+ jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetFormatAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeFormat result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetFormatAtIndex(arg2);
+ jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetSummaryAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSummaryAtIndex(arg2);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeCategory_GetSyntheticAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetSyntheticAtIndex(arg2);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_AddTypeFormat(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeFormat arg3 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeFormat *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (lldb::SBTypeFormat *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeFormat", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->AddTypeFormat(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_DeleteTypeFormat(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->DeleteTypeFormat(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_AddTypeSummary(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeSummary arg3 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeSummary *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (lldb::SBTypeSummary *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeSummary", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->AddTypeSummary(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_DeleteTypeSummary(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->DeleteTypeSummary(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_AddTypeFilter(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeFilter arg3 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeFilter *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (lldb::SBTypeFilter *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeFilter", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->AddTypeFilter(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_DeleteTypeFilter(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->DeleteTypeFilter(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_AddTypeSynthetic(void * jarg1, void * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeSynthetic arg3 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ lldb::SBTypeSynthetic *argp3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (lldb::SBTypeSynthetic *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeSynthetic", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (bool)(arg1)->AddTypeSynthetic(arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeCategory_DeleteTypeSynthetic(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ;
+ lldb::SBTypeNameSpecifier arg2 ;
+ lldb::SBTypeNameSpecifier *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeCategory *)jarg1;
+ argp2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBTypeNameSpecifier", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (bool)(arg1)->DeleteTypeSynthetic(arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFilter__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeFilter *result = 0 ;
+
+ result = (lldb::SBTypeFilter *)new lldb::SBTypeFilter();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFilter__SWIG_1(void * jarg1) {
+ void * jresult ;
+ uint32_t arg1 ;
+ uint32_t *argp1 ;
+ lldb::SBTypeFilter *result = 0 ;
+
+ argp1 = (uint32_t *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ result = (lldb::SBTypeFilter *)new lldb::SBTypeFilter(arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFilter__SWIG_2(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeFilter *arg1 = 0 ;
+ lldb::SBTypeFilter *result = 0 ;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeFilter const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeFilter *)new lldb::SBTypeFilter((lldb::SBTypeFilter const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeFilter(void * jarg1) {
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFilter_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ result = (bool)((lldb::SBTypeFilter const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFilter_IsEqualTo(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ lldb::SBTypeFilter *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ arg2 = (lldb::SBTypeFilter *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeFilter & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->IsEqualTo(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeFilter_GetNumberOfExpressionPaths(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ result = (arg1)->GetNumberOfExpressionPaths();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTypeFilter_GetExpressionPathAtIndex(void * jarg1, void * jarg2) {
+ char * jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (char *)(arg1)->GetExpressionPathAtIndex(arg2);
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFilter_ReplaceExpressionPathAtIndex(void * jarg1, void * jarg2, char * jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ uint32_t arg2 ;
+ char *arg3 = (char *) 0 ;
+ uint32_t *argp2 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (char *)jarg3;
+ result = (bool)(arg1)->ReplaceExpressionPathAtIndex(arg2,(char const *)arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeFilter_AppendExpressionPath(void * jarg1, char * jarg2) {
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->AppendExpressionPath((char const *)arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeFilter_Clear(void * jarg1) {
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeFilter_GetOptions(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ result = (arg1)->GetOptions();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeFilter_SetOptions(void * jarg1, void * jarg2) {
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetOptions(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFilter_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFilter *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFormat__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeFormat *result = 0 ;
+
+ result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFormat__SWIG_1(int jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::Format arg1 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeFormat *result = 0 ;
+
+ arg1 = (lldb::Format)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat(arg1,arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFormat__SWIG_2(int jarg1) {
+ void * jresult ;
+ lldb::Format arg1 ;
+ lldb::SBTypeFormat *result = 0 ;
+
+ arg1 = (lldb::Format)jarg1;
+ result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat(arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeFormat__SWIG_3(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeFormat *arg1 = 0 ;
+ lldb::SBTypeFormat *result = 0 ;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeFormat const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat((lldb::SBTypeFormat const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeFormat(void * jarg1) {
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFormat_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ result = (bool)((lldb::SBTypeFormat const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFormat_IsEqualTo(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ lldb::SBTypeFormat *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ arg2 = (lldb::SBTypeFormat *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeFormat & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->IsEqualTo(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBTypeFormat_GetFormat(void * jarg1) {
+ int jresult ;
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ lldb::Format result;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ result = (lldb::Format)(arg1)->GetFormat();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeFormat_GetOptions(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ result = (arg1)->GetOptions();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeFormat_SetFormat(void * jarg1, int jarg2) {
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ lldb::Format arg2 ;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ arg2 = (lldb::Format)jarg2;
+ (arg1)->SetFormat(arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeFormat_SetOptions(void * jarg1, void * jarg2) {
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetOptions(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeFormat_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeFormat *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeNameSpecifier__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeNameSpecifier *result = 0 ;
+
+ result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeNameSpecifier__SWIG_1(char * jarg1, unsigned int jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ bool arg2 ;
+ lldb::SBTypeNameSpecifier *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ arg2 = jarg2 ? true : false;
+ result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier((char const *)arg1,arg2);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeNameSpecifier__SWIG_2(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBTypeNameSpecifier *result = 0 ;
+
+ arg1 = (char *)jarg1;
+ result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier((char const *)arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeNameSpecifier__SWIG_3(void * jarg1) {
+ void * jresult ;
+ lldb::SBType arg1 ;
+ lldb::SBType *argp1 ;
+ lldb::SBTypeNameSpecifier *result = 0 ;
+
+ argp1 = (lldb::SBType *)jarg1;
+ if (!argp1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBType", 0);
+ return 0;
+ }
+ arg1 = *argp1;
+ result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier(arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeNameSpecifier__SWIG_4(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = 0 ;
+ lldb::SBTypeNameSpecifier *result = 0 ;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeNameSpecifier const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier((lldb::SBTypeNameSpecifier const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeNameSpecifier(void * jarg1) {
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeNameSpecifier_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ result = (bool)((lldb::SBTypeNameSpecifier const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeNameSpecifier_IsEqualTo(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+ lldb::SBTypeNameSpecifier *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ arg2 = (lldb::SBTypeNameSpecifier *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeNameSpecifier & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->IsEqualTo(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTypeNameSpecifier_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ result = (char *)(arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeNameSpecifier_GetType(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ result = (arg1)->GetType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeNameSpecifier_IsRegex(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ result = (bool)(arg1)->IsRegex();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeNameSpecifier_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeNameSpecifier *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeSummary__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeSummary *result = 0 ;
+
+ result = (lldb::SBTypeSummary *)new lldb::SBTypeSummary();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_CreateWithSummaryString__SWIG_0(char * jarg1, void * jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (char *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = lldb::SBTypeSummary::CreateWithSummaryString((char const *)arg1,arg2);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_CreateWithSummaryString__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (char *)jarg1;
+ result = lldb::SBTypeSummary::CreateWithSummaryString((char const *)arg1);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_CreateWithFunctionName__SWIG_0(char * jarg1, void * jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (char *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = lldb::SBTypeSummary::CreateWithFunctionName((char const *)arg1,arg2);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_CreateWithFunctionName__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (char *)jarg1;
+ result = lldb::SBTypeSummary::CreateWithFunctionName((char const *)arg1);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_CreateWithScriptCode__SWIG_0(char * jarg1, void * jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (char *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = lldb::SBTypeSummary::CreateWithScriptCode((char const *)arg1,arg2);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_CreateWithScriptCode__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (char *)jarg1;
+ result = lldb::SBTypeSummary::CreateWithScriptCode((char const *)arg1);
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeSummary__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeSummary *arg1 = 0 ;
+ lldb::SBTypeSummary *result = 0 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeSummary const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeSummary *)new lldb::SBTypeSummary((lldb::SBTypeSummary const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeSummary(void * jarg1) {
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSummary_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ result = (bool)((lldb::SBTypeSummary const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSummary_IsEqualTo(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ lldb::SBTypeSummary *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ arg2 = (lldb::SBTypeSummary *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeSummary & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->IsEqualTo(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSummary_IsFunctionCode(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ result = (bool)(arg1)->IsFunctionCode();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSummary_IsFunctionName(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ result = (bool)(arg1)->IsFunctionName();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSummary_IsSummaryString(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ result = (bool)(arg1)->IsSummaryString();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTypeSummary_GetData(void * jarg1) {
+ char * jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ result = (char *)(arg1)->GetData();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSummary_SetSummaryString(void * jarg1, char * jarg2) {
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetSummaryString((char const *)arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSummary_SetFunctionName(void * jarg1, char * jarg2) {
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetFunctionName((char const *)arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSummary_SetFunctionCode(void * jarg1, char * jarg2) {
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetFunctionCode((char const *)arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSummary_GetOptions(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ result = (arg1)->GetOptions();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSummary_SetOptions(void * jarg1, void * jarg2) {
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetOptions(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSummary_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSummary *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeSynthetic__SWIG_0() {
+ void * jresult ;
+ lldb::SBTypeSynthetic *result = 0 ;
+
+ result = (lldb::SBTypeSynthetic *)new lldb::SBTypeSynthetic();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSynthetic_CreateWithClassName__SWIG_0(char * jarg1, void * jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (char *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = lldb::SBTypeSynthetic::CreateWithClassName((char const *)arg1,arg2);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSynthetic_CreateWithClassName__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (char *)jarg1;
+ result = lldb::SBTypeSynthetic::CreateWithClassName((char const *)arg1);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSynthetic_CreateWithScriptCode__SWIG_0(char * jarg1, void * jarg2) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (char *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = lldb::SBTypeSynthetic::CreateWithScriptCode((char const *)arg1,arg2);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSynthetic_CreateWithScriptCode__SWIG_1(char * jarg1) {
+ void * jresult ;
+ char *arg1 = (char *) 0 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (char *)jarg1;
+ result = lldb::SBTypeSynthetic::CreateWithScriptCode((char const *)arg1);
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBTypeSynthetic__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeSynthetic *arg1 = 0 ;
+ lldb::SBTypeSynthetic *result = 0 ;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeSynthetic const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBTypeSynthetic *)new lldb::SBTypeSynthetic((lldb::SBTypeSynthetic const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBTypeSynthetic(void * jarg1) {
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSynthetic_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ result = (bool)((lldb::SBTypeSynthetic const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSynthetic_IsEqualTo(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ lldb::SBTypeSynthetic *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ arg2 = (lldb::SBTypeSynthetic *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBTypeSynthetic & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->IsEqualTo(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSynthetic_IsClassCode(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ result = (bool)(arg1)->IsClassCode();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBTypeSynthetic_GetData(void * jarg1) {
+ char * jresult ;
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ result = (char *)(arg1)->GetData();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSynthetic_SetClassName(void * jarg1, char * jarg2) {
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetClassName((char const *)arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSynthetic_SetClassCode(void * jarg1, char * jarg2) {
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetClassCode((char const *)arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBTypeSynthetic_GetOptions(void * jarg1) {
+ void * jresult ;
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ result = (arg1)->GetOptions();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBTypeSynthetic_SetOptions(void * jarg1, void * jarg2) {
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetOptions(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBTypeSynthetic_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBTypeSynthetic *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBValue__SWIG_0() {
+ void * jresult ;
+ lldb::SBValue *result = 0 ;
+
+ result = (lldb::SBValue *)new lldb::SBValue();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBValue__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = 0 ;
+ lldb::SBValue *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBValue const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBValue *)new lldb::SBValue((lldb::SBValue const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBValue(void * jarg1) {
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (bool)(arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBValue_Clear(void * jarg1) {
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetError(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetError();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetID(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::user_id_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetID();
+ jresult = new lldb::user_id_t((const lldb::user_id_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBValue_GetName(void * jarg1) {
+ char * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (char *)(arg1)->GetName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBValue_GetTypeName(void * jarg1) {
+ char * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (char *)(arg1)->GetTypeName();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBValue_GetByteSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetByteSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_IsInScope(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (bool)(arg1)->IsInScope();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBValue_GetFormat(void * jarg1) {
+ int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::Format result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (lldb::Format)(arg1)->GetFormat();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBValue_SetFormat(void * jarg1, int jarg2) {
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::Format arg2 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::Format)jarg2;
+ (arg1)->SetFormat(arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBValue_GetValue(void * jarg1) {
+ char * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (char *)(arg1)->GetValue();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsSigned__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ int64_t arg3 ;
+ int64_t *argp3 ;
+ int64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (int64_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null int64_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetValueAsSigned(*arg2,arg3);
+ jresult = new int64_t((const int64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsSigned__SWIG_1(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ int64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->GetValueAsSigned(*arg2);
+ jresult = new int64_t((const int64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsUnsigned__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint64_t arg3 ;
+ uint64_t *argp3 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ argp3 = (uint64_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint64_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetValueAsUnsigned(*arg2,arg3);
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsUnsigned__SWIG_1(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBError *arg2 = 0 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBError *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->GetValueAsUnsigned(*arg2);
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsSigned__SWIG_2(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ int64_t arg2 ;
+ int64_t *argp2 ;
+ int64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (int64_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null int64_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetValueAsSigned(arg2);
+ jresult = new int64_t((const int64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsSigned__SWIG_3(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ int64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetValueAsSigned();
+ jresult = new int64_t((const int64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsUnsigned__SWIG_2(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint64_t arg2 ;
+ uint64_t *argp2 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (uint64_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint64_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetValueAsUnsigned(arg2);
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueAsUnsigned__SWIG_3(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint64_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetValueAsUnsigned();
+ jresult = new uint64_t((const uint64_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_SBValue_GetValueType(void * jarg1) {
+ int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::ValueType result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (lldb::ValueType)(arg1)->GetValueType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_GetValueDidChange(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (bool)(arg1)->GetValueDidChange();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBValue_GetSummary(void * jarg1) {
+ char * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (char *)(arg1)->GetSummary();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBValue_GetObjectDescription(void * jarg1) {
+ char * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (char *)(arg1)->GetObjectDescription();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetDynamicValue(void * jarg1, int jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::DynamicValueType arg2 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::DynamicValueType)jarg2;
+ result = (arg1)->GetDynamicValue(arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetStaticValue(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetStaticValue();
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetNonSyntheticValue(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetNonSyntheticValue();
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_IsDynamic(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (bool)(arg1)->IsDynamic();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBValue_GetLocation(void * jarg1) {
+ char * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (char *)(arg1)->GetLocation();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_SetValueFromCString__SWIG_0(void * jarg1, char * jarg2) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (bool)(arg1)->SetValueFromCString((char const *)arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_SetValueFromCString__SWIG_1(void * jarg1, char * jarg2, void * jarg3) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBError *arg3 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::SBError *)jarg3;
+ if (!arg3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->SetValueFromCString((char const *)arg2,*arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetTypeFormat(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBTypeFormat result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetTypeFormat();
+ jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetTypeSummary(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBTypeSummary result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetTypeSummary();
+ jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetTypeFilter(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBTypeFilter result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetTypeFilter();
+ jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetTypeSynthetic(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBTypeSynthetic result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetTypeSynthetic();
+ jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetChildAtIndex__SWIG_0(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetChildAtIndex(arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetChildAtIndex__SWIG_1(void * jarg1, void * jarg2, int jarg3, unsigned int jarg4) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint32_t arg2 ;
+ lldb::DynamicValueType arg3 ;
+ bool arg4 ;
+ uint32_t *argp2 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ arg3 = (lldb::DynamicValueType)jarg3;
+ arg4 = jarg4 ? true : false;
+ result = (arg1)->GetChildAtIndex(arg2,arg3,arg4);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_CreateChildAtOffset(void * jarg1, char * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t arg3 ;
+ lldb::SBType arg4 ;
+ uint32_t *argp3 ;
+ lldb::SBType *argp4 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ argp4 = (lldb::SBType *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBType", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->CreateChildAtOffset((char const *)arg2,arg3,arg4);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_Cast(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBType arg2 ;
+ lldb::SBType *argp2 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (lldb::SBType *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBType", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->Cast(arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_CreateValueFromExpression(void * jarg1, char * jarg2, char * jarg3) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (char *)jarg3;
+ result = (arg1)->CreateValueFromExpression((char const *)arg2,(char const *)arg3);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_CreateValueFromAddress(void * jarg1, char * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::addr_t arg3 ;
+ lldb::SBType arg4 ;
+ lldb::addr_t *argp3 ;
+ lldb::SBType *argp4 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (lldb::addr_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::addr_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ argp4 = (lldb::SBType *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBType", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->CreateValueFromAddress((char const *)arg2,arg3,arg4);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_CreateValueFromData(void * jarg1, char * jarg2, void * jarg3, void * jarg4) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBData arg3 ;
+ lldb::SBType arg4 ;
+ lldb::SBData *argp3 ;
+ lldb::SBType *argp4 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ argp3 = (lldb::SBData *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBData", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ argp4 = (lldb::SBType *)jarg4;
+ if (!argp4) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::SBType", 0);
+ return 0;
+ }
+ arg4 = *argp4;
+ result = (arg1)->CreateValueFromData((char const *)arg2,arg3,arg4);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetType(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBType result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetType();
+ jresult = new lldb::SBType((const lldb::SBType &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetIndexOfChildWithName(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->GetIndexOfChildWithName((char const *)arg2);
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetChildMemberWithName__SWIG_0(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->GetChildMemberWithName((char const *)arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetChildMemberWithName__SWIG_1(void * jarg1, char * jarg2, int jarg3) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::DynamicValueType arg3 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ arg3 = (lldb::DynamicValueType)jarg3;
+ result = (arg1)->GetChildMemberWithName((char const *)arg2,arg3);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetValueForExpressionPath(void * jarg1, char * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ char *arg2 = (char *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (char *)jarg2;
+ result = (arg1)->GetValueForExpressionPath((char const *)arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetNumChildren(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetNumChildren();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void* SWIGSTDCALL CSharp_SBValue_GetOpaqueType(void * jarg1) {
+ void* jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ void *result = 0 ;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (void *)(arg1)->GetOpaqueType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_Dereference(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->Dereference();
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_AddressOf(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->AddressOf();
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_TypeIsPointerType(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (bool)(arg1)->TypeIsPointerType();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetTarget(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBTarget result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetTarget();
+ jresult = new lldb::SBTarget((const lldb::SBTarget &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetProcess(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBProcess result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetProcess();
+ jresult = new lldb::SBProcess((const lldb::SBProcess &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetThread(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBThread result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetThread();
+ jresult = new lldb::SBThread((const lldb::SBThread &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetFrame(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBFrame result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetFrame();
+ jresult = new lldb::SBFrame((const lldb::SBFrame &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_Watch(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4, void * jarg5) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ bool arg4 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::SBWatchpoint result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = jarg2 ? true : false;
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->Watch(arg2,arg3,arg4,*arg5);
+ jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_WatchPointee(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4, void * jarg5) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ bool arg4 ;
+ lldb::SBError *arg5 = 0 ;
+ lldb::SBWatchpoint result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = jarg2 ? true : false;
+ arg3 = jarg3 ? true : false;
+ arg4 = jarg4 ? true : false;
+ arg5 = (lldb::SBError *)jarg5;
+ if (!arg5) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBError & type is null", 0);
+ return 0;
+ }
+ result = (arg1)->WatchPointee(arg2,arg3,arg4,*arg5);
+ jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_GetDescription(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetDescription(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_GetExpressionPath__SWIG_0(void * jarg1, void * jarg2) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ result = (bool)(arg1)->GetExpressionPath(*arg2);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetPointeeData__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint32_t arg2 ;
+ uint32_t arg3 ;
+ uint32_t *argp2 ;
+ uint32_t *argp3 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ argp3 = (uint32_t *)jarg3;
+ if (!argp3) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg3 = *argp3;
+ result = (arg1)->GetPointeeData(arg2,arg3);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetPointeeData__SWIG_1(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->GetPointeeData(arg2);
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetPointeeData__SWIG_2(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetPointeeData();
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetData(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBData result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetData();
+ jresult = new lldb::SBData((const lldb::SBData &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetLoadAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetLoadAddress();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValue_GetAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBAddress result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ result = (arg1)->GetAddress();
+ jresult = new lldb::SBAddress((const lldb::SBAddress &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValue_GetExpressionPath__SWIG_1(void * jarg1, void * jarg2, unsigned int jarg3) {
+ unsigned int jresult ;
+ lldb::SBValue *arg1 = (lldb::SBValue *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ bool arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBValue *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = jarg3 ? true : false;
+ result = (bool)(arg1)->GetExpressionPath(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBValueList__SWIG_0() {
+ void * jresult ;
+ lldb::SBValueList *result = 0 ;
+
+ result = (lldb::SBValueList *)new lldb::SBValueList();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBValueList__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBValueList *arg1 = 0 ;
+ lldb::SBValueList *result = 0 ;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBValueList const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBValueList *)new lldb::SBValueList((lldb::SBValueList const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBValueList(void * jarg1) {
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBValueList_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ result = (bool)((lldb::SBValueList const *)arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBValueList_Clear(void * jarg1) {
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ (arg1)->Clear();
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBValueList_Append__SWIG_0(void * jarg1, void * jarg2) {
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+ lldb::SBValue *arg2 = 0 ;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ arg2 = (lldb::SBValue *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBValue const & type is null", 0);
+ return ;
+ }
+ (arg1)->Append((lldb::SBValue const &)*arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBValueList_Append__SWIG_1(void * jarg1, void * jarg2) {
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+ lldb::SBValueList *arg2 = 0 ;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ arg2 = (lldb::SBValueList *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBValueList const & type is null", 0);
+ return ;
+ }
+ (arg1)->Append((lldb::SBValueList const &)*arg2);
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValueList_GetSize(void * jarg1) {
+ void * jresult ;
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ result = ((lldb::SBValueList const *)arg1)->GetSize();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValueList_GetValueAtIndex(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = ((lldb::SBValueList const *)arg1)->GetValueAtIndex(arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBValueList_FindValueObjectByUID(void * jarg1, void * jarg2) {
+ void * jresult ;
+ lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ;
+ lldb::user_id_t arg2 ;
+ lldb::user_id_t *argp2 ;
+ lldb::SBValue result;
+
+ arg1 = (lldb::SBValueList *)jarg1;
+ argp2 = (lldb::user_id_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null lldb::user_id_t", 0);
+ return 0;
+ }
+ arg2 = *argp2;
+ result = (arg1)->FindValueObjectByUID(arg2);
+ jresult = new lldb::SBValue((const lldb::SBValue &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBWatchpoint__SWIG_0() {
+ void * jresult ;
+ lldb::SBWatchpoint *result = 0 ;
+
+ result = (lldb::SBWatchpoint *)new lldb::SBWatchpoint();
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBWatchpoint__SWIG_1(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = 0 ;
+ lldb::SBWatchpoint *result = 0 ;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ if (!arg1) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBWatchpoint const & type is null", 0);
+ return 0;
+ }
+ result = (lldb::SBWatchpoint *)new lldb::SBWatchpoint((lldb::SBWatchpoint const &)*arg1);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_SBWatchpoint(void * jarg1) {
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ delete arg1;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBWatchpoint_IsValid(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (bool)(arg1)->IsValid();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBWatchpoint_GetError(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ lldb::SBError result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetError();
+ jresult = new lldb::SBError((const lldb::SBError &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBWatchpoint_GetID(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ lldb::watch_id_t result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetID();
+ jresult = new lldb::watch_id_t((const lldb::watch_id_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBWatchpoint_GetHardwareIndex(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ int32_t result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetHardwareIndex();
+ jresult = new int32_t((const int32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBWatchpoint_GetWatchAddress(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ lldb::addr_t result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetWatchAddress();
+ jresult = new lldb::addr_t((const lldb::addr_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SBWatchpoint_GetWatchSize(void * jarg1) {
+ unsigned long jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ size_t result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetWatchSize();
+ jresult = (unsigned long)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBWatchpoint_SetEnabled(void * jarg1, unsigned int jarg2) {
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ bool arg2 ;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ arg2 = jarg2 ? true : false;
+ (arg1)->SetEnabled(arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBWatchpoint_IsEnabled(void * jarg1) {
+ unsigned int jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ bool result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (bool)(arg1)->IsEnabled();
+ jresult = result;
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBWatchpoint_GetHitCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetHitCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_SBWatchpoint_GetIgnoreCount(void * jarg1) {
+ void * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ uint32_t result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (arg1)->GetIgnoreCount();
+ jresult = new uint32_t((const uint32_t &)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBWatchpoint_SetIgnoreCount(void * jarg1, void * jarg2) {
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ uint32_t arg2 ;
+ uint32_t *argp2 ;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ argp2 = (uint32_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null uint32_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ (arg1)->SetIgnoreCount(arg2);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_SBWatchpoint_GetCondition(void * jarg1) {
+ char * jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ char *result = 0 ;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ result = (char *)(arg1)->GetCondition();
+ jresult = SWIG_csharp_string_callback((const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_SBWatchpoint_SetCondition(void * jarg1, char * jarg2) {
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ char *arg2 = (char *) 0 ;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ arg2 = (char *)jarg2;
+ (arg1)->SetCondition((char const *)arg2);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBWatchpoint_GetDescription(void * jarg1, void * jarg2, int jarg3) {
+ unsigned int jresult ;
+ lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ;
+ lldb::SBStream *arg2 = 0 ;
+ lldb::DescriptionLevel arg3 ;
+ bool result;
+
+ arg1 = (lldb::SBWatchpoint *)jarg1;
+ arg2 = (lldb::SBStream *)jarg2;
+ if (!arg2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lldb::SBStream & type is null", 0);
+ return 0;
+ }
+ arg3 = (lldb::DescriptionLevel)jarg3;
+ result = (bool)(arg1)->GetDescription(*arg2,arg3);
+ jresult = result;
+ return jresult;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
Modified: lldb/branches/windows/source/API/SBAddress.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBAddress.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBAddress.cpp (original)
+++ lldb/branches/windows/source/API/SBAddress.cpp Thu Nov 1 02:04:04 2012
@@ -119,10 +119,13 @@
lldb::addr_t addr = LLDB_INVALID_ADDRESS;
TargetSP target_sp (target.GetSP());
- if (m_opaque_ap.get())
+ if (target_sp)
{
- Mutex::Locker api_locker (target_sp->GetAPIMutex());
- addr = m_opaque_ap->GetLoadAddress (target_sp.get());
+ if (m_opaque_ap.get())
+ {
+ Mutex::Locker api_locker (target_sp->GetAPIMutex());
+ addr = m_opaque_ap->GetLoadAddress (target_sp.get());
+ }
}
if (log)
@@ -182,7 +185,7 @@
SBAddress::GetOffset ()
{
if (m_opaque_ap.get())
- m_opaque_ap->GetOffset();
+ return m_opaque_ap->GetOffset();
return 0;
}
Modified: lldb/branches/windows/source/API/SBBlock.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBBlock.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBBlock.cpp (original)
+++ lldb/branches/windows/source/API/SBBlock.cpp Thu Nov 1 02:04:04 2012
@@ -299,7 +299,12 @@
if (add_variable)
{
if (frame_sp)
- value_list.Append (frame_sp->GetValueObjectForFrameVariable (variable_sp, use_dynamic));
+ {
+ lldb::ValueObjectSP valobj_sp(frame_sp->GetValueObjectForFrameVariable (variable_sp,eNoDynamicValues));
+ SBValue value_sb;
+ value_sb.SetSP(valobj_sp, use_dynamic);
+ value_list.Append (value_sb);
+ }
}
}
}
Modified: lldb/branches/windows/source/API/SBFrame.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBFrame.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBFrame.cpp (original)
+++ lldb/branches/windows/source/API/SBFrame.cpp Thu Nov 1 02:04:04 2012
@@ -549,12 +549,12 @@
{
VariableSP var_sp;
Error error;
- ValueObjectSP value_sp (frame->GetValueForVariableExpressionPath (var_path,
- use_dynamic,
+ ValueObjectSP value_sp (frame->GetValueForVariableExpressionPath (var_path,
+ eNoDynamicValues,
StackFrame::eExpressionPathOptionCheckPtrVsMember | StackFrame::eExpressionPathOptionsAllowDirectIVarAccess,
var_sp,
error));
- sb_value.SetSP(value_sp);
+ sb_value.SetSP(value_sp, use_dynamic);
}
else
{
@@ -619,8 +619,8 @@
if (var_sp)
{
- value_sp = frame->GetValueObjectForFrameVariable(var_sp, use_dynamic);
- sb_value.SetSP(value_sp);
+ value_sp = frame->GetValueObjectForFrameVariable(var_sp, eNoDynamicValues);
+ sb_value.SetSP(value_sp, use_dynamic);
}
}
else
@@ -697,8 +697,8 @@
variable_sp->GetScope() == value_type &&
variable_sp->GetName() == const_name)
{
- value_sp = frame->GetValueObjectForFrameVariable (variable_sp, use_dynamic);
- sb_value.SetSP (value_sp);
+ value_sp = frame->GetValueObjectForFrameVariable (variable_sp, eNoDynamicValues);
+ sb_value.SetSP (value_sp, use_dynamic);
break;
}
}
@@ -757,7 +757,7 @@
if (expr_var_sp)
{
value_sp = expr_var_sp->GetValueObject();
- sb_value.SetSP (value_sp);
+ sb_value.SetSP (value_sp, use_dynamic);
}
}
break;
@@ -939,7 +939,10 @@
if (in_scope_only && !variable_sp->IsInScope(frame))
continue;
- value_list.Append(frame->GetValueObjectForFrameVariable (variable_sp, use_dynamic));
+ ValueObjectSP valobj_sp(frame->GetValueObjectForFrameVariable (variable_sp, eNoDynamicValues));
+ SBValue value_sb;
+ value_sb.SetSP(valobj_sp,use_dynamic);
+ value_list.Append(value_sb);
}
}
}
@@ -1102,7 +1105,7 @@
frame,
expr_value_sp,
options.ref());
- expr_result.SetSP(expr_value_sp);
+ expr_result.SetSP(expr_value_sp,options.GetFetchDynamicValue());
#ifdef LLDB_CONFIGURATION_DEBUG
Host::SetCrashDescription (NULL);
#endif
Modified: lldb/branches/windows/source/API/SBProcess.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBProcess.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBProcess.cpp (original)
+++ lldb/branches/windows/source/API/SBProcess.cpp Thu Nov 1 02:04:04 2012
@@ -81,6 +81,29 @@
return Process::GetStaticBroadcasterClass().AsCString();
}
+const char *
+SBProcess::GetPluginName ()
+{
+ ProcessSP process_sp(GetSP());
+ if (process_sp)
+ {
+ return process_sp->GetPluginName();
+ }
+ return "<Unknown>";
+}
+
+const char *
+SBProcess::GetShortPluginName ()
+{
+ ProcessSP process_sp(GetSP());
+ if (process_sp)
+ {
+ return process_sp->GetShortPluginName();
+ }
+ return "<Unknown>";
+}
+
+
lldb::ProcessSP
SBProcess::GetSP() const
{
@@ -396,12 +419,6 @@
}
bool
-SBProcess::SetSelectedThreadByID (uint32_t tid)
-{
- return SetSelectedThreadByID ((lldb::tid_t)tid);
-}
-
-bool
SBProcess::SetSelectedThreadByID (lldb::tid_t tid)
{
LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
Modified: lldb/branches/windows/source/API/SBTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBTarget.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBTarget.cpp (original)
+++ lldb/branches/windows/source/API/SBTarget.cpp Thu Nov 1 02:04:04 2012
@@ -710,7 +710,7 @@
log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API);
if (log)
{
- log->Printf ("SBTarget(%p)::Launch (...) => SBProceess(%p)",
+ log->Printf ("SBTarget(%p)::Launch (...) => SBProcess(%p)",
target_sp.get(), process_sp.get());
}
@@ -810,7 +810,7 @@
log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API);
if (log)
{
- log->Printf ("SBTarget(%p)::Launch (...) => SBProceess(%p)",
+ log->Printf ("SBTarget(%p)::Launch (...) => SBProcess(%p)",
target_sp.get(), process_sp.get());
}
@@ -820,9 +820,17 @@
lldb::SBProcess
SBTarget::Attach (SBAttachInfo &sb_attach_info, SBError& error)
{
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+
SBProcess sb_process;
ProcessSP process_sp;
TargetSP target_sp(GetSP());
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::Attach (sb_attach_info, error)...", target_sp.get());
+ }
+
if (target_sp)
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
@@ -839,6 +847,11 @@
error.SetErrorString ("process attach is in progress");
else
error.SetErrorString ("a process is already being debugged");
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::Attach (...) => error %s",
+ target_sp.get(), error.GetCString());
+ }
return sb_process;
}
}
@@ -864,6 +877,11 @@
else
{
error.ref().SetErrorStringWithFormat("no process found with process ID %llu", attach_pid);
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::Attach (...) => error %s",
+ target_sp.get(), error.GetCString());
+ }
return sb_process;
}
}
@@ -887,6 +905,13 @@
{
error.SetErrorString ("SBTarget is invalid");
}
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::Attach (...) => SBProcess(%p)",
+ target_sp.get(), process_sp.get());
+ }
+
return sb_process;
}
@@ -911,9 +936,17 @@
SBError& error // An error explaining what went wrong if attach fails
)
{
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+
SBProcess sb_process;
ProcessSP process_sp;
TargetSP target_sp(GetSP());
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::AttachToProcessWithID (listener, pid=%lld, error)...", target_sp.get(), pid);
+ }
+
if (target_sp)
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
@@ -983,8 +1016,13 @@
{
error.SetErrorString ("SBTarget is invalid");
}
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::AttachToProcessWithID (...) => SBProcess(%p)",
+ target_sp.get(), process_sp.get());
+ }
return sb_process;
-
}
lldb::SBProcess
@@ -996,9 +1034,17 @@
SBError& error // An error explaining what went wrong if attach fails
)
{
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+
SBProcess sb_process;
ProcessSP process_sp;
TargetSP target_sp(GetSP());
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::AttachToProcessWithName (listener, name=%s, wait_for=%s, error)...", target_sp.get(), name, wait_for ? "true" : "false");
+ }
+
if (name && target_sp)
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
@@ -1059,8 +1105,13 @@
{
error.SetErrorString ("SBTarget is invalid");
}
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::AttachToPorcessWithName (...) => SBProcess(%p)",
+ target_sp.get(), process_sp.get());
+ }
return sb_process;
-
}
lldb::SBProcess
@@ -1072,9 +1123,17 @@
SBError& error
)
{
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+
SBProcess sb_process;
ProcessSP process_sp;
TargetSP target_sp(GetSP());
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::ConnectRemote (listener, url=%s, plugin_name=%s, error)...", target_sp.get(), url, plugin_name);
+ }
+
if (target_sp)
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
@@ -1098,6 +1157,12 @@
{
error.SetErrorString ("SBTarget is invalid");
}
+
+ if (log)
+ {
+ log->Printf ("SBTarget(%p)::ConnectRemote (...) => SBProcess(%p)",
+ target_sp.get(), process_sp.get());
+ }
return sb_process;
}
@@ -1718,7 +1783,9 @@
watch_type |= LLDB_WATCH_TYPE_WRITE;
// Target::CreateWatchpoint() is thread safe.
Error cw_error;
- watchpoint_sp = target_sp->CreateWatchpoint(addr, size, watch_type, cw_error);
+ // This API doesn't take in a type, so we can't figure out what it is.
+ ClangASTType *type = NULL;
+ watchpoint_sp = target_sp->CreateWatchpoint(addr, size, type, watch_type, cw_error);
error.SetError(cw_error);
sb_watchpoint.SetSP (watchpoint_sp);
}
Modified: lldb/branches/windows/source/API/SBType.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBType.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBType.cpp (original)
+++ lldb/branches/windows/source/API/SBType.cpp Thu Nov 1 02:04:04 2012
@@ -219,6 +219,51 @@
return SBType(ClangASTType(m_opaque_sp->GetASTContext(),qt.getNonReferenceType().getAsOpaquePtr()));
}
+bool
+SBType::IsFunctionType ()
+{
+ if (IsValid())
+ {
+ QualType qual_type(QualType::getFromOpaquePtr(m_opaque_sp->GetOpaqueQualType()));
+ const FunctionProtoType* func = dyn_cast<FunctionProtoType>(qual_type.getTypePtr());
+ return func != NULL;
+ }
+ return false;
+}
+
+lldb::SBType
+SBType::GetFunctionReturnType ()
+{
+ if (IsValid())
+ {
+ QualType qual_type(QualType::getFromOpaquePtr(m_opaque_sp->GetOpaqueQualType()));
+ const FunctionProtoType* func = dyn_cast<FunctionProtoType>(qual_type.getTypePtr());
+
+ if (func)
+ return SBType(ClangASTType(m_opaque_sp->GetASTContext(),
+ func->getResultType().getAsOpaquePtr()));
+ }
+ return lldb::SBType();
+}
+
+lldb::SBTypeList
+SBType::GetFunctionArgumentTypes ()
+{
+ SBTypeList sb_type_list;
+ if (IsValid())
+ {
+ QualType qual_type(QualType::getFromOpaquePtr(m_opaque_sp->GetOpaqueQualType()));
+ const FunctionProtoType* func = dyn_cast<FunctionProtoType>(qual_type.getTypePtr());
+ if (func)
+ {
+ const uint32_t num_args = func->getNumArgs();
+ for (uint32_t i=0; i<num_args; ++i)
+ sb_type_list.Append (SBType(ClangASTType(m_opaque_sp->GetASTContext(), func->getArgType(i).getAsOpaquePtr())));
+ }
+ }
+ return sb_type_list;
+}
+
lldb::SBType
SBType::GetUnqualifiedType()
{
Modified: lldb/branches/windows/source/API/SBValue.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/API/SBValue.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/API/SBValue.cpp (original)
+++ lldb/branches/windows/source/API/SBValue.cpp Thu Nov 1 02:04:04 2012
@@ -50,6 +50,98 @@
using namespace lldb;
using namespace lldb_private;
+namespace {
+ class ValueImpl
+ {
+ public:
+ ValueImpl ()
+ {
+ }
+
+ ValueImpl (lldb::ValueObjectSP opaque_sp,
+ lldb::DynamicValueType use_dynamic,
+ bool use_synthetic) :
+ m_opaque_sp(opaque_sp),
+ m_use_dynamic(use_dynamic),
+ m_use_synthetic(use_synthetic)
+ {
+ }
+
+ ValueImpl (const ValueImpl& rhs) :
+ m_opaque_sp(rhs.m_opaque_sp),
+ m_use_dynamic(rhs.m_use_dynamic),
+ m_use_synthetic(rhs.m_use_synthetic)
+ {
+ }
+
+ ValueImpl &
+ operator = (const ValueImpl &rhs)
+ {
+ if (this != &rhs)
+ {
+ m_opaque_sp = rhs.m_opaque_sp;
+ m_use_dynamic = rhs.m_use_dynamic;
+ m_use_synthetic = rhs.m_use_synthetic;
+ }
+ return *this;
+ }
+
+ bool
+ IsValid ()
+ {
+ return m_opaque_sp.get() != NULL;
+ }
+
+ lldb::ValueObjectSP
+ GetRootSP ()
+ {
+ return m_opaque_sp;
+ }
+
+ lldb::ValueObjectSP
+ GetSP ()
+ {
+ if (!m_opaque_sp)
+ return m_opaque_sp;
+ lldb::ValueObjectSP value_sp = m_opaque_sp;
+ if (value_sp->GetDynamicValue(m_use_dynamic))
+ value_sp = value_sp->GetDynamicValue(m_use_dynamic);
+ if (value_sp->GetSyntheticValue(m_use_synthetic))
+ value_sp = value_sp->GetSyntheticValue(m_use_synthetic);
+ return value_sp;
+ }
+
+ void
+ SetUseDynamic (lldb::DynamicValueType use_dynamic)
+ {
+ m_use_dynamic = use_dynamic;
+ }
+
+ void
+ SetUseSynthetic (bool use_synthetic)
+ {
+ m_use_synthetic = use_synthetic;
+ }
+
+ lldb::DynamicValueType
+ GetUseDynamic ()
+ {
+ return m_use_dynamic;
+ }
+
+ bool
+ GetUseSynthetic ()
+ {
+ return m_use_synthetic;
+ }
+
+ private:
+ lldb::ValueObjectSP m_opaque_sp;
+ lldb::DynamicValueType m_use_dynamic;
+ bool m_use_synthetic;
+ };
+}
+
SBValue::SBValue () :
m_opaque_sp ()
{
@@ -57,12 +149,12 @@
SBValue::SBValue (const lldb::ValueObjectSP &value_sp)
{
- SetSP(value_sp); // whenever setting the SP call SetSP() since it knows how to deal with synthetic values properly
+ SetSP(value_sp);
}
SBValue::SBValue(const SBValue &rhs)
{
- SetSP(rhs.m_opaque_sp); // whenever setting the SP call SetSP() since it knows how to deal with synthetic values properly
+ SetSP(rhs.m_opaque_sp);
}
SBValue &
@@ -70,7 +162,7 @@
{
if (this != &rhs)
{
- SetSP(rhs.m_opaque_sp); // whenever setting the SP call SetSP() since it knows how to deal with synthetic values properly
+ SetSP(rhs.m_opaque_sp);
}
return *this;
}
@@ -85,7 +177,7 @@
// If this function ever changes to anything that does more than just
// check if the opaque shared pointer is non NULL, then we need to update
// all "if (m_opaque_sp)" code in this file.
- return m_opaque_sp.get() != NULL;
+ return m_opaque_sp.get() != NULL && m_opaque_sp->GetRootSP().get() != NULL;
}
void
@@ -683,7 +775,7 @@
TypeImplSP type_sp (type.GetSP());
if (type.IsValid())
{
- sb_value = SBValue(value_sp->GetSyntheticChildAtOffset(offset, type_sp->GetClangASTType(), true));
+ sb_value.SetSP(value_sp->GetSyntheticChildAtOffset(offset, type_sp->GetClangASTType(), true),GetPreferDynamicValue(),GetPreferSyntheticValue());
new_value_sp = sb_value.GetSP();
if (new_value_sp)
new_value_sp->SetName(ConstString(name));
@@ -712,7 +804,7 @@
lldb::ValueObjectSP value_sp(GetSP());
TypeImplSP type_sp (type.GetSP());
if (value_sp && type_sp)
- sb_value.SetSP(value_sp->Cast(type_sp->GetClangASTType()));
+ sb_value.SetSP(value_sp->Cast(type_sp->GetClangASTType()),GetPreferDynamicValue(),GetPreferSyntheticValue());
return sb_value;
}
@@ -904,20 +996,12 @@
}
}
- if (child_sp)
- {
- if (use_dynamic != lldb::eNoDynamicValues)
- {
- lldb::ValueObjectSP dynamic_sp(child_sp->GetDynamicValue (use_dynamic));
- if (dynamic_sp)
- child_sp = dynamic_sp;
- }
- }
}
}
}
- SBValue sb_value (child_sp);
+ SBValue sb_value;
+ sb_value.SetSP (child_sp, use_dynamic, GetPreferSyntheticValue());
if (log)
log->Printf ("SBValue(%p)::GetChildAtIndex (%u) => SBValue(%p)", value_sp.get(), idx, value_sp.get());
@@ -993,20 +1077,12 @@
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
child_sp = value_sp->GetChildMemberWithName (str_name, true);
- if (use_dynamic_value != lldb::eNoDynamicValues)
- {
- if (child_sp)
- {
- lldb::ValueObjectSP dynamic_sp = child_sp->GetDynamicValue (use_dynamic_value);
- if (dynamic_sp)
- child_sp = dynamic_sp;
- }
- }
}
}
}
- SBValue sb_value (child_sp);
+ SBValue sb_value;
+ sb_value.SetSP(child_sp, use_dynamic_value, GetPreferSyntheticValue());
if (log)
log->Printf ("SBValue(%p)::GetChildMemberWithName (name=\"%s\") => SBValue(%p)", value_sp.get(), name, value_sp.get());
@@ -1017,74 +1093,87 @@
lldb::SBValue
SBValue::GetDynamicValue (lldb::DynamicValueType use_dynamic)
{
- lldb::ValueObjectSP value_sp(GetSP());
- if (value_sp)
+ SBValue value_sb;
+ if (IsValid())
{
- ProcessSP process_sp(value_sp->GetProcessSP());
- Process::StopLocker stop_locker;
- if (process_sp && !stop_locker.TryLock(&process_sp->GetRunLock()))
- {
- LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
- if (log)
- log->Printf ("SBValue(%p)::GetDynamicValue() => error: process is running", value_sp.get());
- }
- else
- {
- TargetSP target_sp(value_sp->GetTargetSP());
- if (target_sp)
- {
- Mutex::Locker api_locker (target_sp->GetAPIMutex());
- return SBValue (value_sp->GetDynamicValue(use_dynamic));
- }
- }
+ ValueImplSP proxy_sp(new ValueImpl(m_opaque_sp->GetRootSP(),use_dynamic,m_opaque_sp->GetUseSynthetic()));
+ value_sb.SetSP(proxy_sp);
}
-
- return SBValue();
+ return value_sb;
}
lldb::SBValue
SBValue::GetStaticValue ()
{
- lldb::ValueObjectSP value_sp(GetSP());
- if (value_sp)
+ SBValue value_sb;
+ if (IsValid())
{
- TargetSP target_sp(value_sp->GetTargetSP());
- if (target_sp)
- {
- Mutex::Locker api_locker (target_sp->GetAPIMutex());
- return SBValue(value_sp->GetStaticValue());
- }
+ ValueImplSP proxy_sp(new ValueImpl(m_opaque_sp->GetRootSP(),eNoDynamicValues,m_opaque_sp->GetUseSynthetic()));
+ value_sb.SetSP(proxy_sp);
}
-
- return SBValue();
+ return value_sb;
}
lldb::SBValue
SBValue::GetNonSyntheticValue ()
{
- SBValue sb_value;
+ SBValue value_sb;
+ if (IsValid())
+ {
+ ValueImplSP proxy_sp(new ValueImpl(m_opaque_sp->GetRootSP(),m_opaque_sp->GetUseDynamic(),false));
+ value_sb.SetSP(proxy_sp);
+ }
+ return value_sb;
+}
+
+lldb::DynamicValueType
+SBValue::GetPreferDynamicValue ()
+{
+ if (!IsValid())
+ return eNoDynamicValues;
+ return m_opaque_sp->GetUseDynamic();
+}
+
+void
+SBValue::SetPreferDynamicValue (lldb::DynamicValueType use_dynamic)
+{
+ if (IsValid())
+ return m_opaque_sp->SetUseDynamic (use_dynamic);
+}
+
+bool
+SBValue::GetPreferSyntheticValue ()
+{
+ if (!IsValid())
+ return false;
+ return m_opaque_sp->GetUseSynthetic();
+}
+
+void
+SBValue::SetPreferSyntheticValue (bool use_synthetic)
+{
+ if (IsValid())
+ return m_opaque_sp->SetUseSynthetic (use_synthetic);
+}
+
+bool
+SBValue::IsDynamic()
+{
lldb::ValueObjectSP value_sp(GetSP());
if (value_sp)
{
- if (value_sp->IsSynthetic())
+ TargetSP target_sp(value_sp->GetTargetSP());
+ if (target_sp)
{
- TargetSP target_sp(value_sp->GetTargetSP());
- if (target_sp)
- {
- Mutex::Locker api_locker (target_sp->GetAPIMutex());
- // deliberately breaking the rules here to optimize the case where we DO NOT want
- // the synthetic value to be returned to the user - if we did not do this, we would have to tell
- // the target to suppress the synthetic value, and then return the flag to its original value
- if (value_sp->GetNonSyntheticValue())
- sb_value.m_opaque_sp = value_sp->GetNonSyntheticValue();
- }
+ Mutex::Locker api_locker (target_sp->GetAPIMutex());
+ return value_sp->IsDynamic();
}
}
- return sb_value;
+ return false;
}
bool
-SBValue::IsDynamic()
+SBValue::IsSynthetic ()
{
lldb::ValueObjectSP value_sp(GetSP());
if (value_sp)
@@ -1093,7 +1182,7 @@
if (target_sp)
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
- return value_sp->IsDynamic();
+ return value_sp->IsSynthetic();
}
}
return false;
@@ -1126,7 +1215,8 @@
}
}
- SBValue sb_value (child_sp);
+ SBValue sb_value;
+ sb_value.SetSP(child_sp,GetPreferDynamicValue(),GetPreferSyntheticValue());
if (log)
log->Printf ("SBValue(%p)::GetValueForExpressionPath (expr_path=\"%s\") => SBValue(%p)", value_sp.get(), expr_path, value_sp.get());
@@ -1158,7 +1248,7 @@
Mutex::Locker api_locker (target_sp->GetAPIMutex());
Scalar scalar;
if (value_sp->ResolveValue (scalar))
- return scalar.GetRawBits64(fail_value);
+ return scalar.SLongLong(fail_value);
else
error.SetErrorString("could not get value");
}
@@ -1194,7 +1284,7 @@
Mutex::Locker api_locker (target_sp->GetAPIMutex());
Scalar scalar;
if (value_sp->ResolveValue (scalar))
- return scalar.GetRawBits64(fail_value);
+ return scalar.ULongLong(fail_value);
else
error.SetErrorString("could not get value");
}
@@ -1228,7 +1318,7 @@
Mutex::Locker api_locker (target_sp->GetAPIMutex());
Scalar scalar;
if (value_sp->ResolveValue (scalar))
- return scalar.GetRawBits64(fail_value);
+ return scalar.SLongLong(fail_value);
}
}
}
@@ -1257,13 +1347,27 @@
Mutex::Locker api_locker (target_sp->GetAPIMutex());
Scalar scalar;
if (value_sp->ResolveValue (scalar))
- return scalar.GetRawBits64(fail_value);
+ return scalar.ULongLong(fail_value);
}
}
}
return fail_value;
}
+bool
+SBValue::MightHaveChildren ()
+{
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
+ bool has_children = false;
+ lldb::ValueObjectSP value_sp(GetSP());
+ if (value_sp)
+ has_children = value_sp->MightHaveChildren();
+
+ if (log)
+ log->Printf ("SBValue(%p)::HasChildren() => %i", value_sp.get(), has_children);
+ return has_children;
+}
+
uint32_t
SBValue::GetNumChildren ()
{
@@ -1457,17 +1561,77 @@
lldb::ValueObjectSP
SBValue::GetSP () const
{
- return m_opaque_sp;
+ if (!m_opaque_sp || !m_opaque_sp->IsValid())
+ return ValueObjectSP();
+ return m_opaque_sp->GetSP();
+}
+
+void
+SBValue::SetSP (ValueImplSP impl_sp)
+{
+ m_opaque_sp = impl_sp;
}
void
SBValue::SetSP (const lldb::ValueObjectSP &sp)
{
- m_opaque_sp = sp;
- if (IsValid() && m_opaque_sp->HasSyntheticValue())
- m_opaque_sp = m_opaque_sp->GetSyntheticValue();
+ if (sp)
+ {
+ lldb::TargetSP target_sp(sp->GetTargetSP());
+ if (target_sp)
+ {
+ lldb::DynamicValueType use_dynamic = target_sp->GetPreferDynamicValue();
+ bool use_synthetic = target_sp->TargetProperties::GetEnableSyntheticValue();
+ m_opaque_sp = ValueImplSP(new ValueImpl(sp, use_dynamic, use_synthetic));
+ }
+ else
+ m_opaque_sp = ValueImplSP(new ValueImpl(sp,eNoDynamicValues,true));
+ }
+ else
+ m_opaque_sp = ValueImplSP(new ValueImpl(sp,eNoDynamicValues,false));
}
+void
+SBValue::SetSP (const lldb::ValueObjectSP &sp, lldb::DynamicValueType use_dynamic)
+{
+ if (sp)
+ {
+ lldb::TargetSP target_sp(sp->GetTargetSP());
+ if (target_sp)
+ {
+ bool use_synthetic = target_sp->TargetProperties::GetEnableSyntheticValue();
+ SetSP (sp, use_dynamic, use_synthetic);
+ }
+ else
+ SetSP (sp, use_dynamic, true);
+ }
+ else
+ SetSP (sp, use_dynamic, false);
+}
+
+void
+SBValue::SetSP (const lldb::ValueObjectSP &sp, bool use_synthetic)
+{
+ if (sp)
+ {
+ lldb::TargetSP target_sp(sp->GetTargetSP());
+ if (target_sp)
+ {
+ lldb::DynamicValueType use_dynamic = target_sp->GetPreferDynamicValue();
+ SetSP (sp, use_dynamic, use_synthetic);
+ }
+ else
+ SetSP (sp, eNoDynamicValues, use_synthetic);
+ }
+ else
+ SetSP (sp, eNoDynamicValues, use_synthetic);
+}
+
+void
+SBValue::SetSP (const lldb::ValueObjectSP &sp, lldb::DynamicValueType use_dynamic, bool use_synthetic)
+{
+ m_opaque_sp = ValueImplSP(new ValueImpl(sp,use_dynamic,use_synthetic));
+}
bool
SBValue::GetExpressionPath (SBStream &description)
@@ -1549,7 +1713,7 @@
{
Mutex::Locker api_locker (target_sp->GetAPIMutex());
Error error;
- sb_value = value_sp->AddressOf (error);
+ sb_value.SetSP(value_sp->AddressOf (error),GetPreferDynamicValue(), GetPreferSyntheticValue());
}
}
LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
@@ -1766,7 +1930,8 @@
watch_type |= LLDB_WATCH_TYPE_WRITE;
Error rc;
- WatchpointSP watchpoint_sp = target_sp->CreateWatchpoint(addr, byte_size, watch_type, rc);
+ ClangASTType type (value_sp->GetClangAST(), value_sp->GetClangType());
+ WatchpointSP watchpoint_sp = target_sp->CreateWatchpoint(addr, byte_size, &type, watch_type, rc);
error.SetError(rc);
if (watchpoint_sp)
@@ -1805,4 +1970,3 @@
sb_watchpoint = Dereference().Watch (resolve_location, read, write, error);
return sb_watchpoint;
}
-
Modified: lldb/branches/windows/source/Breakpoint/Watchpoint.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Breakpoint/Watchpoint.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Breakpoint/Watchpoint.cpp (original)
+++ lldb/branches/windows/source/Breakpoint/Watchpoint.cpp Thu Nov 1 02:04:04 2012
@@ -15,6 +15,10 @@
// Project includes
#include "lldb/Breakpoint/StoppointCallbackContext.h"
#include "lldb/Core/Stream.h"
+#include "lldb/Core/Value.h"
+#include "lldb/Core/ValueObject.h"
+#include "lldb/Core/ValueObjectMemory.h"
+#include "lldb/Symbol/ClangASTContext.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/ThreadSpec.h"
@@ -23,9 +27,9 @@
using namespace lldb;
using namespace lldb_private;
-Watchpoint::Watchpoint (lldb::addr_t addr, size_t size, bool hardware) :
+Watchpoint::Watchpoint (Target& target, lldb::addr_t addr, size_t size, const ClangASTType *type, bool hardware) :
StoppointLocation (0, addr, size, hardware),
- m_target(NULL),
+ m_target(target),
m_enabled(false),
m_is_hardware(hardware),
m_is_watch_variable(false),
@@ -39,13 +43,27 @@
m_false_alarms(0),
m_decl_str(),
m_watch_spec_str(),
- m_snapshot_old_str(),
- m_snapshot_new_str(),
- m_snapshot_old_val(0),
- m_snapshot_new_val(0),
+ m_type(),
m_error(),
m_options ()
{
+ if (type && type->IsValid())
+ m_type = *type;
+ else
+ {
+ // If we don't have a known type, then we force it to unsigned int of the right size.
+ ClangASTContext *ast_context = target.GetScratchClangASTContext();
+ clang_type_t clang_type = ast_context->GetBuiltinTypeForEncodingAndBitSize(eEncodingUint, 8 * size);
+ m_type.SetClangType(ast_context->getASTContext(), clang_type);
+ }
+
+ // Set the initial value of the watched variable:
+ if (m_target.GetProcessSP())
+ {
+ ExecutionContext exe_ctx;
+ m_target.GetProcessSP()->CalculateExecutionContext(exe_ctx);
+ CaptureWatchedValue (exe_ctx);
+ }
}
Watchpoint::~Watchpoint()
@@ -97,78 +115,6 @@
return;
}
-// Strip at most one character from the end of the string.
-static inline std::string
-RStripOnce(const std::string &str, const char c)
-{
- std::string res = str;
- size_t len = res.length();
- if (len && res.at(len - 1) == '\n')
- res.resize(len - 1);
- return res;
-}
-
-std::string
-Watchpoint::GetOldSnapshot() const
-{
- return m_snapshot_old_str;
-}
-
-void
-Watchpoint::SetOldSnapshot (const std::string &str)
-{
- m_snapshot_old_str = RStripOnce(str, '\n');
-}
-
-std::string
-Watchpoint::GetNewSnapshot() const
-{
- return m_snapshot_new_str;
-}
-
-void
-Watchpoint::SetNewSnapshot (const std::string &str)
-{
- m_snapshot_old_str = m_snapshot_new_str;
- m_snapshot_new_str = RStripOnce(str, '\n');
-}
-
-uint64_t
-Watchpoint::GetOldSnapshotVal() const
-{
- return m_snapshot_old_val;
-}
-
-void
-Watchpoint::SetOldSnapshotVal (uint64_t val)
-{
- m_snapshot_old_val = val;
- return;
-}
-
-uint64_t
-Watchpoint::GetNewSnapshotVal() const
-{
- return m_snapshot_new_val;
-}
-
-void
-Watchpoint::SetNewSnapshotVal (uint64_t val)
-{
- m_snapshot_old_val = m_snapshot_new_val;
- m_snapshot_new_val = val;
- return;
-}
-
-void
-Watchpoint::ClearSnapshots()
-{
- m_snapshot_old_str.clear();
- m_snapshot_new_str.clear();
- m_snapshot_old_val = 0;
- m_snapshot_new_val = 0;
-}
-
// Override default impl of StoppointLocation::IsHardware() since m_is_hardware
// member field is more accurate.
bool
@@ -189,6 +135,28 @@
m_is_watch_variable = val;
}
+bool
+Watchpoint::CaptureWatchedValue (const ExecutionContext &exe_ctx)
+{
+ ConstString watch_name("$__lldb__watch_value");
+ m_old_value_sp = m_new_value_sp;
+ Address watch_address(GetLoadAddress());
+ if (!m_type.IsValid())
+ {
+ // Don't know how to report new & old values, since we couldn't make a scalar type for this watchpoint.
+ // This works around an assert in ValueObjectMemory::Create.
+ // FIXME: This should not happen, but if it does in some case we care about,
+ // we can go grab the value raw and print it as unsigned.
+ return false;
+ }
+ m_new_value_sp = ValueObjectMemory::Create (exe_ctx.GetBestExecutionContextScope(), watch_name.AsCString(), watch_address, m_type);
+ m_new_value_sp = m_new_value_sp->CreateConstantValue(watch_name);
+ if (m_new_value_sp && m_new_value_sp->GetError().Success())
+ return true;
+ else
+ return false;
+}
+
void
Watchpoint::IncrementFalseAlarmsAndReviseHitCount()
{
@@ -247,19 +215,14 @@
s->Printf("\nWatchpoint %u hit:", GetID());
prefix = "";
}
-
- if (IsWatchVariable())
+
+ if (m_old_value_sp)
{
- if (!m_snapshot_old_str.empty())
- s->Printf("\n%sold value: %s", prefix, m_snapshot_old_str.c_str());
- if (!m_snapshot_new_str.empty())
- s->Printf("\n%snew value: %s", prefix, m_snapshot_new_str.c_str());
+ s->Printf("\n%sold value: %s", prefix, m_old_value_sp->GetValueAsCString());
}
- else
+ if (m_new_value_sp)
{
- uint32_t num_hex_digits = GetByteSize() * 2;
- s->Printf("\n%sold value: 0x%0*.*llx", prefix, num_hex_digits, num_hex_digits, m_snapshot_old_val);
- s->Printf("\n%snew value: 0x%0*.*llx", prefix, num_hex_digits, num_hex_digits, m_snapshot_new_val);
+ s->Printf("\n%snew value: %s", prefix, m_new_value_sp->GetValueAsCString());
}
}
@@ -345,7 +308,6 @@
// Don't clear the snapshots for now.
// Within StopInfo.cpp, we purposely do disable/enable watchpoint while performing watchpoint actions.
- //ClearSnapshots();
}
m_enabled = enabled;
}
Modified: lldb/branches/windows/source/Commands/CommandObjectBreakpointCommand.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Commands/CommandObjectBreakpointCommand.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Commands/CommandObjectBreakpointCommand.cpp (original)
+++ lldb/branches/windows/source/Commands/CommandObjectBreakpointCommand.cpp Thu Nov 1 02:04:04 2012
@@ -44,71 +44,86 @@
m_options (interpreter)
{
SetHelpLong (
-"\nGeneral information about entering breakpoint commands \n\
------------------------------------------------------- \n\
- \n\
-This command will cause you to be prompted to enter the command or set \n\
-of commands you wish to be executed when the specified breakpoint is \n\
-hit. You will be told to enter your command(s), and will see a '> ' \n\
-prompt. Because you can enter one or many commands to be executed when \n\
-a breakpoint is hit, you will continue to be prompted after each \n\
-new-line that you enter, until you enter the word 'DONE', which will \n\
-cause the commands you have entered to be stored with the breakpoint \n\
-and executed when the breakpoint is hit. \n\
- \n\
-Syntax checking is not necessarily done when breakpoint commands are \n\
-entered. An improperly written breakpoint command will attempt to get \n\
-executed when the breakpoint gets hit, and usually silently fail. If \n\
-your breakpoint command does not appear to be getting executed, go \n\
-back and check your syntax. \n\
- \n\
- \n\
-Special information about PYTHON breakpoint commands \n\
----------------------------------------------------- \n\
- \n\
-You may enter either one line of Python or multiple lines of Python \n\
-(including defining whole functions, if desired). If you enter a \n\
-single line of Python, that will be passed to the Python interpreter \n\
-'as is' when the breakpoint gets hit. If you enter function \n\
-definitions, they will be passed to the Python interpreter as soon as \n\
-you finish entering the breakpoint command, and they can be called \n\
-later (don't forget to add calls to them, if you want them called when \n\
-the breakpoint is hit). If you enter multiple lines of Python that \n\
-are not function definitions, they will be collected into a new, \n\
-automatically generated Python function, and a call to the newly \n\
-generated function will be attached to the breakpoint. \n\
- \n\
-This auto-generated function is passed in two arguments: \n\
- \n\
- frame: an SBFrame object representing the frame which hit the breakpoint. \n\
- From the frame you can get back to the thread and process. \n\
- bp_loc: the number of the breakpoint location that was hit. \n\
- This is useful since one breakpoint can have many locations. \n\
- \n\
-Important Note: Because loose Python code gets collected into functions, \n\
-if you want to access global variables in the 'loose' code, you need to \n\
-specify that they are global, using the 'global' keyword. Be sure to \n\
-use correct Python syntax, including indentation, when entering Python \n\
-breakpoint commands. \n\
- \n\
-As a third option, you can pass the name of an already existing Python function \n\
-and that function will be attached to the breakpoint. It will get passed the \n\
-frame and bp_loc arguments mentioned above. \n\
- \n\
-Example Python one-line breakpoint command: \n\
- \n\
-(lldb) breakpoint command add -s python 1 \n\
-Enter your Python command(s). Type 'DONE' to end. \n\
-> print \"Hit this breakpoint!\" \n\
-> DONE \n\
- \n\
-As a convenience, this also works for a short Python one-liner: \n\
-(lldb) breakpoint command add -s python 1 -o \"import time; print time.asctime()\" \n\
-(lldb) run \n\
-Launching '.../a.out' (x86_64) \n\
-(lldb) Fri Sep 10 12:17:45 2010 \n\
-Process 21778 Stopped \n\
-* thread #1: tid = 0x2e03, 0x0000000100000de8 a.out`c + 7 at main.c:39, stop reason = breakpoint 1.1, queue = com.apple.main-thread \n\
+"\nGeneral information about entering breakpoint commands\n\
+------------------------------------------------------\n\
+\n\
+This command will cause you to be prompted to enter the command or set of\n\
+commands you wish to be executed when the specified breakpoint is hit. You\n\
+will be told to enter your command(s), and will see a '> 'prompt. Because\n\
+you can enter one or many commands to be executed when a breakpoint is hit,\n\
+you will continue to be prompted after each new-line that you enter, until you\n\
+enter the word 'DONE', which will cause the commands you have entered to be\n\
+stored with the breakpoint and executed when the breakpoint is hit.\n\
+\n\
+Syntax checking is not necessarily done when breakpoint commands are entered.\n\
+An improperly written breakpoint command will attempt to get executed when the\n\
+breakpoint gets hit, and usually silently fail. If your breakpoint command does\n\
+not appear to be getting executed, go back and check your syntax.\n\
+\n\
+Special information about PYTHON breakpoint commands\n\
+----------------------------------------------------\n\
+\n\
+You may enter either one line of Python, multiple lines of Python (including\n\
+function definitions), or specify a Python function in a module that has already,\n\
+or will be imported. If you enter a single line of Python, that will be passed\n\
+to the Python interpreter 'as is' when the breakpoint gets hit. If you enter\n\
+function definitions, they will be passed to the Python interpreter as soon as\n\
+you finish entering the breakpoint command, and they can be called later (don't\n\
+forget to add calls to them, if you want them called when the breakpoint is\n\
+hit). If you enter multiple lines of Python that are not function definitions,\n\
+they will be collected into a new, automatically generated Python function, and\n\
+a call to the newly generated function will be attached to the breakpoint.\n\
+\n\
+\n\
+This auto-generated function is passed in three arguments:\n\
+\n\
+ frame: a lldb.SBFrame object for the frame which hit breakpoint.\n\
+ bp_loc: a lldb.SBBreakpointLocation object that represents the breakpoint\n\
+ location that was hit.\n\
+ dict: the python session dictionary hit.\n\
+\n\
+When specifying a python function with the --python-function option, you need\n\
+to supply the function name prepended by the module name. So if you import a\n\
+module named 'myutils' that contains a 'breakpoint_callback' function, you would\n\
+specify the option as:\n\
+\n\
+ --python-function myutils.breakpoint_callback\n\
+\n\
+The function itself must have the following prototype:\n\
+\n\
+def breakpoint_callback(frame, bp_loc, dict):\n\
+ # Your code goes here\n\
+\n\
+The arguments are the same as the 3 auto generation function arguments listed\n\
+above. Note that the global variable 'lldb.frame' will NOT be setup when this\n\
+function is called, so be sure to use the 'frame' argument. The 'frame' argument\n\
+can get you to the thread (frame.GetThread()), the thread can get you to the\n\
+process (thread.GetProcess()), and the process can get you back to the target\n\
+(process.GetTarget()).\n\
+\n\
+Important Note: Because loose Python code gets collected into functions, if you\n\
+want to access global variables in the 'loose' code, you need to specify that\n\
+they are global, using the 'global' keyword. Be sure to use correct Python\n\
+syntax, including indentation, when entering Python breakpoint commands.\n\
+\n\
+As a third option, you can pass the name of an already existing Python function\n\
+and that function will be attached to the breakpoint. It will get passed the\n\
+frame and bp_loc arguments mentioned above.\n\
+\n\
+Example Python one-line breakpoint command:\n\
+\n\
+(lldb) breakpoint command add -s python 1\n\
+Enter your Python command(s). Type 'DONE' to end.\n\
+> print \"Hit this breakpoint!\"\n\
+> DONE\n\
+\n\
+As a convenience, this also works for a short Python one-liner:\n\
+(lldb) breakpoint command add -s python 1 -o \"import time; print time.asctime()\"\n\
+(lldb) run\n\
+Launching '.../a.out' (x86_64)\n\
+(lldb) Fri Sep 10 12:17:45 2010\n\
+Process 21778 Stopped\n\
+* thread #1: tid = 0x2e03, 0x0000000100000de8 a.out`c + 7 at main.c:39, stop reason = breakpoint 1.1, queue = com.apple.main-thread\n\
36 \n\
37 int c(int val)\n\
38 {\n\
@@ -116,50 +131,50 @@
40 }\n\
41 \n\
42 int main (int argc, char const *argv[])\n\
-(lldb) \n\
- \n\
-Example multiple line Python breakpoint command, using function definition: \n\
- \n\
-(lldb) breakpoint command add -s python 1 \n\
-Enter your Python command(s). Type 'DONE' to end. \n\
-> def breakpoint_output (bp_no): \n\
-> out_string = \"Hit breakpoint number \" + repr (bp_no) \n\
-> print out_string \n\
-> return True \n\
-> breakpoint_output (1) \n\
-> DONE \n\
- \n\
- \n\
-Example multiple line Python breakpoint command, using 'loose' Python: \n\
- \n\
-(lldb) breakpoint command add -s p 1 \n\
-Enter your Python command(s). Type 'DONE' to end. \n\
-> global bp_count \n\
-> bp_count = bp_count + 1 \n\
-> print \"Hit this breakpoint \" + repr(bp_count) + \" times!\" \n\
-> DONE \n\
- \n\
-In this case, since there is a reference to a global variable, \n\
-'bp_count', you will also need to make sure 'bp_count' exists and is \n\
-initialized: \n\
- \n\
-(lldb) script \n\
->>> bp_count = 0 \n\
->>> quit() \n\
- \n\
-(lldb) \n\
- \n\
- \n\
-Final Note: If you get a warning that no breakpoint command was generated, \n\
-but you did not get any syntax errors, you probably forgot to add a call \n\
-to your functions. \n\
- \n\
-Special information about debugger command breakpoint commands \n\
--------------------------------------------------------------- \n\
- \n\
-You may enter any debugger command, exactly as you would at the \n\
-debugger prompt. You may enter as many debugger commands as you like, \n\
-but do NOT enter more than one command per line. \n" );
+(lldb)\n\
+\n\
+Example multiple line Python breakpoint command, using function definition:\n\
+\n\
+(lldb) breakpoint command add -s python 1\n\
+Enter your Python command(s). Type 'DONE' to end.\n\
+> def breakpoint_output (bp_no):\n\
+> out_string = \"Hit breakpoint number \" + repr (bp_no)\n\
+> print out_string\n\
+> return True\n\
+> breakpoint_output (1)\n\
+> DONE\n\
+\n\
+\n\
+Example multiple line Python breakpoint command, using 'loose' Python:\n\
+\n\
+(lldb) breakpoint command add -s p 1\n\
+Enter your Python command(s). Type 'DONE' to end.\n\
+> global bp_count\n\
+> bp_count = bp_count + 1\n\
+> print \"Hit this breakpoint \" + repr(bp_count) + \" times!\"\n\
+> DONE\n\
+\n\
+In this case, since there is a reference to a global variable,\n\
+'bp_count', you will also need to make sure 'bp_count' exists and is\n\
+initialized:\n\
+\n\
+(lldb) script\n\
+>>> bp_count = 0\n\
+>>> quit()\n\
+\n\
+(lldb)\n\
+\n\
+\n\
+Final Note: If you get a warning that no breakpoint command was generated, but\n\
+you did not get any syntax errors, you probably forgot to add a call to your\n\
+functions.\n\
+\n\
+Special information about debugger command breakpoint commands\n\
+--------------------------------------------------------------\n\
+\n\
+You may enter any debugger command, exactly as you would at the debugger prompt.\n\
+You may enter as many debugger commands as you like, but do NOT enter more than\n\
+one command per line.\n" );
CommandArgumentEntry arg;
CommandArgumentData bp_id_arg;
Modified: lldb/branches/windows/source/Commands/CommandObjectExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Commands/CommandObjectExpression.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Commands/CommandObjectExpression.cpp (original)
+++ lldb/branches/windows/source/Commands/CommandObjectExpression.cpp Thu Nov 1 02:04:04 2012
@@ -164,7 +164,7 @@
CommandObjectExpression::CommandObjectExpression (CommandInterpreter &interpreter) :
CommandObjectRaw (interpreter,
"expression",
- "Evaluate a C/ObjC/C++ expression in the current program context, using variables currently in scope.",
+ "Evaluate a C/ObjC/C++ expression in the current program context, using user defined variables and variables currently in scope.",
NULL,
eFlagProcessMustBePaused),
m_option_group (interpreter),
@@ -180,10 +180,18 @@
currently .25 seconds. If it doesn't return in that time, the evaluation will be interrupted\n\
and resumed with all threads running. You can use the -a option to disable retrying on all\n\
threads. You can use the -t option to set a shorter timeout.\n\
+\n\
+User defined variables:\n\
+ You can define your own variables for convenience or to be used in subsequent expressions.\n\
+ You define them the same way you would define variables in C. If the first character of \n\
+ your user defined variable is a $, then the variable's value will be available in future\n\
+ expressions, otherwise it will just be available in the current expression.\n\
+\n\
Examples: \n\
\n\
expr my_struct->a = my_array[3] \n\
expr -f bin -- (index * 8) + 5 \n\
+ expr unsigned int $foo = 5\n\
expr char c[] = \"foo\"; c[0]\n");
CommandArgumentEntry arg;
Modified: lldb/branches/windows/source/Commands/CommandObjectProcess.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Commands/CommandObjectProcess.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Commands/CommandObjectProcess.cpp (original)
+++ lldb/branches/windows/source/Commands/CommandObjectProcess.cpp Thu Nov 1 02:04:04 2012
@@ -314,13 +314,13 @@
//CommandObjectProcessLaunch::CommandOptions::g_option_table[] =
//{
//{ SET1 | SET2 | SET3, false, "stop-at-entry", 's', no_argument, NULL, 0, eArgTypeNone, "Stop at the entry point of the program when launching a process."},
-//{ SET1 , false, "stdin", 'i', required_argument, NULL, 0, eArgTypePath, "Redirect stdin for the process to <path>."},
-//{ SET1 , false, "stdout", 'o', required_argument, NULL, 0, eArgTypePath, "Redirect stdout for the process to <path>."},
-//{ SET1 , false, "stderr", 'e', required_argument, NULL, 0, eArgTypePath, "Redirect stderr for the process to <path>."},
+//{ SET1 , false, "stdin", 'i', required_argument, NULL, 0, eArgTypeDirectoryName, "Redirect stdin for the process to <path>."},
+//{ SET1 , false, "stdout", 'o', required_argument, NULL, 0, eArgTypeDirectoryName, "Redirect stdout for the process to <path>."},
+//{ SET1 , false, "stderr", 'e', required_argument, NULL, 0, eArgTypeDirectoryName, "Redirect stderr for the process to <path>."},
//{ SET1 | SET2 | SET3, false, "plugin", 'p', required_argument, NULL, 0, eArgTypePlugin, "Name of the process plugin you want to use."},
-//{ SET2 , false, "tty", 't', optional_argument, NULL, 0, eArgTypePath, "Start the process in a terminal. If <path> is specified, look for a terminal whose name contains <path>, else start the process in a new terminal."},
+//{ SET2 , false, "tty", 't', optional_argument, NULL, 0, eArgTypeDirectoryName, "Start the process in a terminal. If <path> is specified, look for a terminal whose name contains <path>, else start the process in a new terminal."},
//{ SET3, false, "no-stdio", 'n', no_argument, NULL, 0, eArgTypeNone, "Do not set up for terminal I/O to go to running process."},
-//{ SET1 | SET2 | SET3, false, "working-dir", 'w', required_argument, NULL, 0, eArgTypePath, "Set the current working directory to <path> when running the inferior."},
+//{ SET1 | SET2 | SET3, false, "working-dir", 'w', required_argument, NULL, 0, eArgTypeDirectoryName, "Set the current working directory to <path> when running the inferior."},
//{ 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL }
//};
//
Modified: lldb/branches/windows/source/Commands/CommandObjectTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Commands/CommandObjectTarget.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Commands/CommandObjectTarget.cpp (original)
+++ lldb/branches/windows/source/Commands/CommandObjectTarget.cpp Thu Nov 1 02:04:04 2012
@@ -155,7 +155,7 @@
m_option_group (interpreter),
m_arch_option (),
m_platform_options(true), // Do include the "--platform" option in the platform settings by passing true
- m_core_file (LLDB_OPT_SET_1, false, "core", 'c', 0, eArgTypePath, "Fullpath to a core file to use for this target.")
+ m_core_file (LLDB_OPT_SET_1, false, "core", 'c', 0, eArgTypeFilename, "Fullpath to a core file to use for this target.")
{
CommandArgumentEntry arg;
CommandArgumentData file_arg;
@@ -234,13 +234,6 @@
if (target_sp)
{
- if (file_path)
- {
- // Use exactly what the user typed as the first argument
- // when we exec or posix_spawn
- target_sp->SetArg0 (file_path);
- }
-
debugger.GetTargetList().SetSelectedTarget(target_sp.get());
if (core_file)
{
@@ -584,8 +577,8 @@
m_option_group (interpreter),
m_option_variable (false), // Don't include frame options
m_option_format (eFormatDefault),
- m_option_compile_units (LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypePath, "A basename or fullpath to a file that contains global variables. This option can be specified multiple times."),
- m_option_shared_libraries (LLDB_OPT_SET_1, false, "shlib",'s', 0, eArgTypePath, "A basename or fullpath to a shared library to use in the search for global variables. This option can be specified multiple times."),
+ m_option_compile_units (LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypeFilename, "A basename or fullpath to a file that contains global variables. This option can be specified multiple times."),
+ m_option_shared_libraries (LLDB_OPT_SET_1, false, "shlib",'s', 0, eArgTypeFilename, "A basename or fullpath to a shared library to use in the search for global variables. This option can be specified multiple times."),
m_varobj_options()
{
CommandArgumentEntry arg;
@@ -1159,7 +1152,7 @@
CommandArgumentData path_arg;
// Define the first (and only) variant of this arg.
- path_arg.arg_type = eArgTypePath;
+ path_arg.arg_type = eArgTypeDirectoryName;
path_arg.arg_repetition = eArgRepeatPlain;
// There is only one variant this argument could be; put it into the argument entry.
@@ -2556,7 +2549,7 @@
"Set the load addresses for one or more sections in a target module.",
"target modules load [--file <module> --uuid <uuid>] <sect-name> <address> [<sect-name> <address> ....]"),
m_option_group (interpreter),
- m_file_option (LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypePath, "Fullpath or basename for module to load."),
+ m_file_option (LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypeFilename, "Fullpath or basename for module to load."),
m_slide_option(LLDB_OPT_SET_1, false, "slide", 's', 0, eArgTypeOffset, "Set the load address for all sections to be the virtual address in the file plus the offset.", 0)
{
m_option_group.Append (&m_uuid_option_group, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
Modified: lldb/branches/windows/source/Commands/CommandObjectWatchpoint.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Commands/CommandObjectWatchpoint.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Commands/CommandObjectWatchpoint.cpp (original)
+++ lldb/branches/windows/source/Commands/CommandObjectWatchpoint.cpp Thu Nov 1 02:04:04 2012
@@ -1056,6 +1056,8 @@
valobj_sp = valobj_list.GetValueObjectAtIndex(0);
}
+ ClangASTType type;
+
if (valobj_sp) {
AddressType addr_type;
addr = valobj_sp->GetAddressOf(false, &addr_type);
@@ -1065,6 +1067,7 @@
size = m_option_watchpoint.watch_size == 0 ? valobj_sp->GetByteSize()
: m_option_watchpoint.watch_size;
}
+ type.SetClangType(valobj_sp->GetClangAST(), valobj_sp->GetClangType());
} else {
const char *error_cstr = error.AsCString(NULL);
if (error_cstr)
@@ -1078,7 +1081,7 @@
// Now it's time to create the watchpoint.
uint32_t watch_type = m_option_watchpoint.watch_type;
error.Clear();
- Watchpoint *wp = target->CreateWatchpoint(addr, size, watch_type, error).get();
+ Watchpoint *wp = target->CreateWatchpoint(addr, size, &type, watch_type, error).get();
if (wp) {
wp->SetWatchSpec(command.GetArgumentAtIndex(0));
wp->SetWatchVariable(true);
@@ -1088,9 +1091,6 @@
var_sp->GetDeclaration().DumpStopContext(&ss, true);
wp->SetDeclInfo(ss.GetString());
}
- StreamString ss;
- ValueObject::DumpValueObject(ss, valobj_sp.get());
- wp->SetNewSnapshot(ss.GetString());
output_stream.Printf("Watchpoint created: ");
wp->GetDescription(&output_stream, lldb::eDescriptionLevelFull);
output_stream.EOL();
@@ -1265,8 +1265,15 @@
// Now it's time to create the watchpoint.
uint32_t watch_type = m_option_watchpoint.watch_type;
+
+ // Fetch the type from the value object, the type of the watched object is the pointee type
+ /// of the expression, so convert to that if we found a valid type.
+ ClangASTType type(valobj_sp->GetClangAST(), valobj_sp->GetClangType());
+ if (type.IsValid())
+ type.SetClangType(type.GetASTContext(), type.GetPointeeType());
+
Error error;
- Watchpoint *wp = target->CreateWatchpoint(addr, size, watch_type, error).get();
+ Watchpoint *wp = target->CreateWatchpoint(addr, size, &type, watch_type, error).get();
if (wp) {
if (var_sp && var_sp->GetDeclaration().GetFile()) {
StreamString ss;
@@ -1275,11 +1282,6 @@
wp->SetDeclInfo(ss.GetString());
}
output_stream.Printf("Watchpoint created: ");
- uint64_t val = target->GetProcessSP()->ReadUnsignedIntegerFromMemory(addr, size, 0, error);
- if (error.Success())
- wp->SetNewSnapshotVal(val);
- else
- output_stream.Printf("watchpoint snapshot failed: %s", error.AsCString());
wp->GetDescription(&output_stream, lldb::eDescriptionLevelFull);
output_stream.EOL();
result.SetStatus(eReturnStatusSuccessFinishResult);
Modified: lldb/branches/windows/source/Core/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/CMakeLists.txt?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/CMakeLists.txt (original)
+++ lldb/branches/windows/source/Core/CMakeLists.txt Thu Nov 1 02:04:04 2012
@@ -64,6 +64,7 @@
UUID.cpp
Value.cpp
ValueObject.cpp
+ ValueObjectCast.cpp
ValueObjectChild.cpp
ValueObjectConstResult.cpp
ValueObjectConstResultChild.cpp
Modified: lldb/branches/windows/source/Core/CXXFormatterFunctions.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/CXXFormatterFunctions.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/CXXFormatterFunctions.cpp (original)
+++ lldb/branches/windows/source/Core/CXXFormatterFunctions.cpp Thu Nov 1 02:04:04 2012
@@ -19,6 +19,7 @@
#include "lldb/Core/ValueObject.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/Host/Endian.h"
+#include "lldb/Symbol/ClangASTContext.h"
#include "lldb/Target/ObjCLanguageRuntime.h"
#include "lldb/Target/Target.h"
@@ -686,6 +687,63 @@
return true;
}
+bool
+lldb_private::formatters::ObjCBOOLSummaryProvider (ValueObject& valobj, Stream& stream)
+{
+ const uint32_t type_info = ClangASTContext::GetTypeInfo(valobj.GetClangType(),
+ valobj.GetClangAST(),
+ NULL);
+
+ ValueObjectSP real_guy_sp = valobj.GetSP();
+
+ if (type_info & ClangASTContext::eTypeIsPointer)
+ {
+ Error err;
+ real_guy_sp = valobj.Dereference(err);
+ if (err.Fail() || !real_guy_sp)
+ return false;
+ }
+ else if (type_info & ClangASTContext::eTypeIsReference)
+ {
+ real_guy_sp = valobj.GetChildAtIndex(0, true);
+ if (!real_guy_sp)
+ return false;
+ }
+ uint64_t value = real_guy_sp->GetValueAsUnsigned(0);
+ if (value == 0)
+ {
+ stream.Printf("NO");
+ return true;
+ }
+ stream.Printf("YES");
+ return true;
+}
+
+template <bool is_sel_ptr>
+bool
+lldb_private::formatters::ObjCSELSummaryProvider (ValueObject& valobj, Stream& stream)
+{
+ lldb::addr_t data_address = LLDB_INVALID_ADDRESS;
+
+ if (is_sel_ptr)
+ data_address = valobj.GetValueAsUnsigned(LLDB_INVALID_ADDRESS);
+ else
+ data_address = valobj.GetAddressOf();
+
+ if (data_address == LLDB_INVALID_ADDRESS)
+ return false;
+
+ ExecutionContext exe_ctx(valobj.GetExecutionContextRef());
+
+ void* char_opaque_type = valobj.GetClangAST()->CharTy.getAsOpaquePtr();
+ ClangASTType charstar(valobj.GetClangAST(),ClangASTType::GetPointerType(valobj.GetClangAST(), char_opaque_type));
+
+ ValueObjectSP valobj_sp(ValueObject::CreateValueObjectFromAddress("text", data_address, exe_ctx, charstar));
+
+ stream.Printf("%s",valobj_sp->GetSummaryAsCString());
+ return true;
+}
+
lldb_private::formatters::NSArrayMSyntheticFrontEnd::NSArrayMSyntheticFrontEnd (lldb::ValueObjectSP valobj_sp) :
SyntheticChildrenFrontEnd(*valobj_sp.get()),
m_exe_ctx_ref(),
@@ -772,6 +830,14 @@
return false;
}
+bool
+lldb_private::formatters::NSArrayMSyntheticFrontEnd::MightHaveChildren ()
+{
+ if (!m_data_32 && !m_data_64)
+ Update ();
+ return CalculateNumChildren();
+}
+
static uint32_t
ExtractIndexFromString (const char* item_name)
{
@@ -881,6 +947,14 @@
return false;
}
+bool
+lldb_private::formatters::NSArrayISyntheticFrontEnd::MightHaveChildren ()
+{
+ if (!m_data_ptr)
+ Update ();
+ return CalculateNumChildren();
+}
+
lldb::ValueObjectSP
lldb_private::formatters::NSArrayISyntheticFrontEnd::GetChildAtIndex (uint32_t idx)
{
@@ -975,6 +1049,12 @@
return false;
}
+bool
+lldb_private::formatters::NSArrayCodeRunningSyntheticFrontEnd::MightHaveChildren ()
+{
+ return CalculateNumChildren() > 0;
+}
+
uint32_t
lldb_private::formatters::NSArrayCodeRunningSyntheticFrontEnd::GetIndexOfChildWithName (const ConstString &name)
{
@@ -1066,6 +1146,12 @@
return false;
}
+bool
+lldb_private::formatters::NSDictionaryCodeRunningSyntheticFrontEnd::MightHaveChildren ()
+{
+ return CalculateNumChildren() > 0;
+}
+
uint32_t
lldb_private::formatters::NSDictionaryCodeRunningSyntheticFrontEnd::GetIndexOfChildWithName (const ConstString &name)
{
@@ -1158,6 +1244,14 @@
return false;
}
+bool
+lldb_private::formatters::NSDictionaryISyntheticFrontEnd::MightHaveChildren ()
+{
+ if (!m_data_32 && !m_data_64)
+ Update ();
+ return CalculateNumChildren();
+}
+
lldb::ValueObjectSP
lldb_private::formatters::NSDictionaryISyntheticFrontEnd::GetChildAtIndex (uint32_t idx)
{
@@ -1299,6 +1393,14 @@
return false;
}
+bool
+lldb_private::formatters::NSDictionaryMSyntheticFrontEnd::MightHaveChildren ()
+{
+ if (!m_data_32 && !m_data_64)
+ Update ();
+ return CalculateNumChildren();
+}
+
lldb::ValueObjectSP
lldb_private::formatters::NSDictionaryMSyntheticFrontEnd::GetChildAtIndex (uint32_t idx)
{
@@ -1372,3 +1474,9 @@
template bool
lldb_private::formatters::NSDataSummaryProvider<false> (ValueObject&, Stream&) ;
+
+template bool
+lldb_private::formatters::ObjCSELSummaryProvider<true> (ValueObject&, Stream&) ;
+
+template bool
+lldb_private::formatters::ObjCSELSummaryProvider<false> (ValueObject&, Stream&) ;
Modified: lldb/branches/windows/source/Core/DataExtractor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/DataExtractor.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/DataExtractor.cpp (original)
+++ lldb/branches/windows/source/Core/DataExtractor.cpp Thu Nov 1 02:04:04 2012
@@ -11,6 +11,8 @@
#include <stddef.h>
#include <bitset>
+#include <limits>
+#include <sstream>
#include <string>
#include "llvm/ADT/APFloat.h"
@@ -715,10 +717,10 @@
{
if (bitfield_bit_offset > 0)
sval64 >>= bitfield_bit_offset;
- uint64_t bitfield_mask = ((1 << bitfield_bit_size) - 1);
+ uint64_t bitfield_mask = (((uint64_t)1) << bitfield_bit_size) - 1;
sval64 &= bitfield_mask;
// sign extend if needed
- if (sval64 & (1 << (bitfield_bit_size - 1)))
+ if (sval64 & (((uint64_t)1) << (bitfield_bit_size - 1)))
sval64 |= ~bitfield_mask;
}
return sval64;
@@ -1706,22 +1708,30 @@
break;
case eFormatFloat:
- if (sizeof(float) == item_byte_size)
- {
- s->Printf ("%g", GetFloat (&offset));
- }
- else if (sizeof(double) == item_byte_size)
- {
- s->Printf ("%lg", GetDouble(&offset));
- }
- else if (sizeof(long double) == item_byte_size)
- {
- s->Printf ("%Lg", GetLongDouble(&offset));
- }
- else
{
- s->Printf("error: unsupported byte size (%u) for float format", item_byte_size);
- return offset;
+ std::ostringstream ss;
+ switch (item_byte_size)
+ {
+ default:
+ s->Printf("error: unsupported byte size (%u) for float format", item_byte_size);
+ return offset;
+ case sizeof(float):
+ ss.precision(std::numeric_limits<float>::digits10);
+ ss << GetFloat(&offset);
+ break;
+ case sizeof(double):
+ ss.precision(std::numeric_limits<double>::digits10);
+ ss << GetDouble(&offset);
+ break;
+#ifndef _MSC_VER
+ case sizeof(long double):
+ ss.precision(std::numeric_limits<long double>::digits10);
+ ss << GetLongDouble(&offset);
+ break;
+#endif
+ }
+ ss.flush();
+ s->Printf("%s", ss.str().c_str());
}
break;
Modified: lldb/branches/windows/source/Core/Debugger.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/Debugger.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/Debugger.cpp (original)
+++ lldb/branches/windows/source/Core/Debugger.cpp Thu Nov 1 02:04:04 2012
@@ -22,6 +22,7 @@
#include "lldb/Core/FormatManager.h"
#include "lldb/Core/InputReader.h"
#include "lldb/Core/Module.h"
+#include "lldb/Core/PluginManager.h"
#include "lldb/Core/RegisterValue.h"
#include "lldb/Core/State.h"
#include "lldb/Core/StreamAsynchronousIO.h"
@@ -125,7 +126,8 @@
{ "term-width", OptionValue::eTypeSInt64 , true, 80 , NULL, NULL, "The maximum number of columns to use for displaying text." },
{ "thread-format", OptionValue::eTypeString , true, 0 , DEFAULT_THREAD_FORMAT, NULL, "The default thread format string to use when displaying thread information." },
{ "use-external-editor", OptionValue::eTypeBoolean, true, false, NULL, NULL, "Whether to use an external editor or not." },
-{ NULL, OptionValue::eTypeInvalid, true, 0 , NULL, NULL, NULL }
+
+ { NULL, OptionValue::eTypeInvalid, true, 0 , NULL, NULL, NULL }
};
enum
@@ -438,6 +440,8 @@
this);
}
}
+
+ PluginManager::DebuggerInitialize (*this);
}
DebuggerSP
@@ -677,7 +681,12 @@
if (out_file.IsValid() == false)
out_file.SetStream (stdout, false);
- GetCommandInterpreter().GetScriptInterpreter()->ResetOutputFileHandle (fh);
+ // do not create the ScriptInterpreter just for setting the output file handle
+ // as the constructor will know how to do the right thing on its own
+ const bool can_create = false;
+ ScriptInterpreter* script_interpreter = GetCommandInterpreter().GetScriptInterpreter(can_create);
+ if (script_interpreter)
+ script_interpreter->ResetOutputFileHandle (fh);
}
void
Modified: lldb/branches/windows/source/Core/Event.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/Event.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/Event.cpp (original)
+++ lldb/branches/windows/source/Core/Event.cpp Thu Nov 1 02:04:04 2012
@@ -52,7 +52,25 @@
void
Event::Dump (Stream *s) const
{
- s->Printf("%p Event: broadcaster = %p, type = 0x%8.8x, data = ", this, m_broadcaster, m_type);
+ if (m_broadcaster)
+ {
+ StreamString event_name;
+ if (m_broadcaster->GetEventNames (event_name, m_type, false))
+ s->Printf("%p Event: broadcaster = %p (%s), type = 0x%8.8x (%s), data = ",
+ this,
+ m_broadcaster,
+ m_broadcaster->GetBroadcasterName().GetCString(),
+ m_type,
+ event_name.GetString().c_str());
+ else
+ s->Printf("%p Event: broadcaster = %p (%s), type = 0x%8.8x, data = ",
+ this,
+ m_broadcaster,
+ m_broadcaster->GetBroadcasterName().GetCString(),
+ m_type);
+ }
+ else
+ s->Printf("%p Event: broadcaster = NULL, type = 0x%8.8x, data = ", this, m_type);
if (m_data_ap.get() == NULL)
s->Printf ("<NULL>");
Modified: lldb/branches/windows/source/Core/FormatManager.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/FormatManager.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/FormatManager.cpp (original)
+++ lldb/branches/windows/source/Core/FormatManager.cpp Thu Nov 1 02:04:04 2012
@@ -437,14 +437,20 @@
uint32_t reason_why;
ActiveCategoriesIterator begin, end = m_active_categories.end();
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES));
+
for (begin = m_active_categories.begin(); begin != end; begin++)
{
- lldb::TypeCategoryImplSP category = *begin;
+ lldb::TypeCategoryImplSP category_sp = *begin;
lldb::TypeSummaryImplSP current_format;
- if (!category->Get(valobj, current_format, use_dynamic, &reason_why))
+ if (log)
+ log->Printf("[CategoryMap::GetSummaryFormat] Trying to use category %s\n", category_sp->GetName());
+ if (!category_sp->Get(valobj, current_format, use_dynamic, &reason_why))
continue;
return current_format;
}
+ if (log)
+ log->Printf("[CategoryMap::GetSummaryFormat] nothing found - returning empty SP\n");
return lldb::TypeSummaryImplSP();
}
@@ -554,14 +560,20 @@
ActiveCategoriesIterator begin, end = m_active_categories.end();
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES));
+
for (begin = m_active_categories.begin(); begin != end; begin++)
{
- lldb::TypeCategoryImplSP category = *begin;
+ lldb::TypeCategoryImplSP category_sp = *begin;
lldb::SyntheticChildrenSP current_format;
- if (!category->Get(valobj, current_format, use_dynamic, &reason_why))
+ if (log)
+ log->Printf("[CategoryMap::GetSyntheticChildren] Trying to use category %s\n", category_sp->GetName());
+ if (!category_sp->Get(valobj, current_format, use_dynamic, &reason_why))
continue;
return current_format;
}
+ if (log)
+ log->Printf("[CategoryMap::GetSyntheticChildren] nothing found - returning empty SP\n");
return lldb::SyntheticChildrenSP();
}
#endif
@@ -935,35 +947,28 @@
TypeCategoryImpl::SharedPointer objc_category_sp = GetCategory(m_objc_category_name);
-#ifndef LLDB_DISABLE_PYTHON
- lldb::TypeSummaryImplSP ObjC_BOOL_summary(new ScriptSummaryFormat(objc_flags,
- "lldb.formatters.objc.objc.BOOL_SummaryProvider",
- ""));
+ lldb::TypeSummaryImplSP ObjC_BOOL_summary(new CXXFunctionSummaryFormat(objc_flags, lldb_private::formatters::ObjCBOOLSummaryProvider,""));
objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL"),
ObjC_BOOL_summary);
-
- lldb::TypeSummaryImplSP ObjC_BOOLRef_summary(new ScriptSummaryFormat(objc_flags,
- "lldb.formatters.objc.objc.BOOLRef_SummaryProvider",
- ""));
objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL &"),
- ObjC_BOOLRef_summary);
- lldb::TypeSummaryImplSP ObjC_BOOLPtr_summary(new ScriptSummaryFormat(objc_flags,
- "lldb.formatters.objc.objc.BOOLPtr_SummaryProvider",
- ""));
+ ObjC_BOOL_summary);
objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL *"),
- ObjC_BOOLPtr_summary);
+ ObjC_BOOL_summary);
+
-
// we need to skip pointers here since we are special casing a SEL* when retrieving its value
objc_flags.SetSkipPointers(true);
- AddScriptSummary(objc_category_sp, "lldb.formatters.objc.Selector.SEL_Summary", ConstString("SEL"), objc_flags);
- AddScriptSummary(objc_category_sp, "lldb.formatters.objc.Selector.SEL_Summary", ConstString("struct objc_selector"), objc_flags);
- AddScriptSummary(objc_category_sp, "lldb.formatters.objc.Selector.SEL_Summary", ConstString("objc_selector"), objc_flags);
- AddScriptSummary(objc_category_sp, "lldb.formatters.objc.Selector.SELPointer_Summary", ConstString("objc_selector *"), objc_flags);
+#ifndef LLDB_DISABLE_PYTHON
+ AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary", ConstString("SEL"), objc_flags);
+ AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary", ConstString("struct objc_selector"), objc_flags);
+ AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary", ConstString("objc_selector"), objc_flags);
+ AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<true>, "SEL summary", ConstString("objc_selector *"), objc_flags);
+
AddScriptSummary(objc_category_sp, "lldb.formatters.objc.Class.Class_Summary", ConstString("Class"), objc_flags);
- objc_flags.SetSkipPointers(false);
#endif // LLDB_DISABLE_PYTHON
+ objc_flags.SetSkipPointers(false);
+
TypeCategoryImpl::SharedPointer corefoundation_category_sp = GetCategory(m_corefoundation_category_name);
AddSummary(corefoundation_category_sp,
Modified: lldb/branches/windows/source/Core/Module.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/Module.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/Module.cpp (original)
+++ lldb/branches/windows/source/Core/Module.cpp Thu Nov 1 02:04:04 2012
@@ -696,7 +696,8 @@
std::string type_scope;
std::string type_basename;
const bool append = true;
- if (Type::GetTypeScopeAndBasename (type_name_cstr, type_scope, type_basename))
+ TypeClass type_class = eTypeClassAny;
+ if (Type::GetTypeScopeAndBasename (type_name_cstr, type_scope, type_basename, type_class))
{
// Check if "name" starts with "::" which means the qualified type starts
// from the root namespace and implies and exact match. The typenames we
@@ -711,14 +712,25 @@
ConstString type_basename_const_str (type_basename.c_str());
if (FindTypes_Impl(sc, type_basename_const_str, NULL, append, max_matches, types))
{
- types.RemoveMismatchedTypes (type_scope, type_basename, exact_match);
+ types.RemoveMismatchedTypes (type_scope, type_basename, type_class, exact_match);
num_matches = types.GetSize();
}
}
else
{
// The type is not in a namespace/class scope, just search for it by basename
- num_matches = FindTypes_Impl(sc, name, NULL, append, max_matches, types);
+ if (type_class != eTypeClassAny)
+ {
+ // The "type_name_cstr" will have been modified if we have a valid type class
+ // prefix (like "struct", "class", "union", "typedef" etc).
+ num_matches = FindTypes_Impl(sc, ConstString(type_name_cstr), NULL, append, max_matches, types);
+ types.RemoveMismatchedTypes (type_class);
+ num_matches = types.GetSize();
+ }
+ else
+ {
+ num_matches = FindTypes_Impl(sc, name, NULL, append, max_matches, types);
+ }
}
return num_matches;
Modified: lldb/branches/windows/source/Core/PluginManager.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/PluginManager.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/PluginManager.cpp (original)
+++ lldb/branches/windows/source/Core/PluginManager.cpp Thu Nov 1 02:04:04 2012
@@ -14,10 +14,12 @@
#include <string>
#include <vector>
+#include "lldb/Core/Debugger.h"
#include "lldb/Core/Error.h"
#include "lldb/Host/FileSpec.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/Mutex.h"
+#include "lldb/Interpreter/OptionValueProperties.h"
#include "llvm/ADT/StringRef.h"
@@ -436,13 +438,15 @@
DynamicLoaderInstance() :
name(),
description(),
- create_callback(NULL)
+ create_callback(NULL),
+ debugger_init_callback (NULL)
{
}
std::string name;
std::string description;
DynamicLoaderCreateInstance create_callback;
+ DebuggerInitializeCallback debugger_init_callback;
};
typedef std::vector<DynamicLoaderInstance> DynamicLoaderInstances;
@@ -468,7 +472,8 @@
(
const char *name,
const char *description,
- DynamicLoaderCreateInstance create_callback
+ DynamicLoaderCreateInstance create_callback,
+ DebuggerInitializeCallback debugger_init_callback
)
{
if (create_callback)
@@ -479,6 +484,7 @@
if (description && description[0])
instance.description = description;
instance.create_callback = create_callback;
+ instance.debugger_init_callback = debugger_init_callback;
Mutex::Locker locker (GetDynamicLoaderMutex ());
GetDynamicLoaderInstances ().push_back (instance);
}
@@ -1802,3 +1808,92 @@
return NULL;
}
+void
+PluginManager::DebuggerInitialize (Debugger &debugger)
+{
+ Mutex::Locker locker (GetDynamicLoaderMutex ());
+ DynamicLoaderInstances &instances = GetDynamicLoaderInstances ();
+
+ DynamicLoaderInstances::iterator pos, end = instances.end();
+ for (pos = instances.begin(); pos != end; ++ pos)
+ {
+ if (pos->debugger_init_callback)
+ pos->debugger_init_callback (debugger);
+ }
+}
+
+static lldb::OptionValuePropertiesSP
+GetDebuggerPropertyForPlugins (Debugger &debugger,
+ const ConstString &plugin_type_name,
+ const ConstString &plugin_type_desc,
+ bool can_create)
+{
+ lldb::OptionValuePropertiesSP parent_properties_sp (debugger.GetValueProperties());
+ if (parent_properties_sp)
+ {
+ static ConstString g_property_name("plugin");
+
+ OptionValuePropertiesSP plugin_properties_sp = parent_properties_sp->GetSubProperty (NULL, g_property_name);
+ if (!plugin_properties_sp && can_create)
+ {
+ plugin_properties_sp.reset (new OptionValueProperties (g_property_name));
+ parent_properties_sp->AppendProperty (g_property_name,
+ ConstString("Settings specify to plugins."),
+ true,
+ plugin_properties_sp);
+ }
+
+ if (plugin_properties_sp)
+ {
+ lldb::OptionValuePropertiesSP plugin_type_properties_sp = plugin_properties_sp->GetSubProperty (NULL, plugin_type_name);
+ if (!plugin_type_properties_sp && can_create)
+ {
+ plugin_type_properties_sp.reset (new OptionValueProperties (plugin_type_name));
+ plugin_properties_sp->AppendProperty (plugin_type_name,
+ plugin_type_desc,
+ true,
+ plugin_type_properties_sp);
+ }
+ return plugin_type_properties_sp;
+ }
+ }
+ return lldb::OptionValuePropertiesSP();
+}
+
+lldb::OptionValuePropertiesSP
+PluginManager::GetSettingForDynamicLoaderPlugin (Debugger &debugger, const ConstString &setting_name)
+{
+ lldb::OptionValuePropertiesSP properties_sp;
+ lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
+ ConstString("dynamic-loader"),
+ ConstString(), // not creating to so we don't need the description
+ false));
+ if (plugin_type_properties_sp)
+ properties_sp = plugin_type_properties_sp->GetSubProperty (NULL, setting_name);
+ return properties_sp;
+}
+
+bool
+PluginManager::CreateSettingForDynamicLoaderPlugin (Debugger &debugger,
+ const lldb::OptionValuePropertiesSP &properties_sp,
+ const ConstString &description,
+ bool is_global_property)
+{
+ if (properties_sp)
+ {
+ lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
+ ConstString("dynamic-loader"),
+ ConstString("Settings for dynamic loader plug-ins"),
+ true));
+ if (plugin_type_properties_sp)
+ {
+ plugin_type_properties_sp->AppendProperty (properties_sp->GetName(),
+ description,
+ is_global_property,
+ properties_sp);
+ return true;
+ }
+ }
+ return false;
+}
+
Modified: lldb/branches/windows/source/Core/UserSettingsController.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/UserSettingsController.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/UserSettingsController.cpp (original)
+++ lldb/branches/windows/source/Core/UserSettingsController.cpp Thu Nov 1 02:04:04 2012
@@ -95,3 +95,15 @@
}
return matching_properties.size();
}
+
+
+lldb::OptionValuePropertiesSP
+Properties::GetSubProperty (const ExecutionContext *exe_ctx,
+ const ConstString &name)
+{
+ OptionValuePropertiesSP properties_sp (GetValueProperties ());
+ if (properties_sp)
+ return properties_sp->GetSubProperty (exe_ctx, name);
+ return lldb::OptionValuePropertiesSP();
+}
+
Modified: lldb/branches/windows/source/Core/Value.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/Value.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/Value.cpp (original)
+++ lldb/branches/windows/source/Core/Value.cpp Thu Nov 1 02:04:04 2012
@@ -662,6 +662,7 @@
switch (value_type)
{
case eValueTypeScalar: return "scalar";
+ case eValueTypeVector: return "vector";
case eValueTypeFileAddress: return "file address";
case eValueTypeLoadAddress: return "load address";
case eValueTypeHostAddress: return "host address";
Modified: lldb/branches/windows/source/Core/ValueObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/ValueObject.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/ValueObject.cpp (original)
+++ lldb/branches/windows/source/Core/ValueObject.cpp Thu Nov 1 02:04:04 2012
@@ -24,6 +24,7 @@
#include "lldb/Core/Log.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/StreamString.h"
+#include "lldb/Core/ValueObjectCast.h"
#include "lldb/Core/ValueObjectChild.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/Core/ValueObjectDynamicValue.h"
@@ -276,10 +277,14 @@
}
void
-ValueObject::ResetCompleteTypeInfo ()
+ValueObject::ClearDynamicTypeInformation ()
{
m_did_calculate_complete_objc_class_type = false;
+ m_last_format_mgr_revision = 0;
m_override_type = ClangASTType();
+ SetValueFormat(lldb::TypeFormatImplSP());
+ SetSummaryFormat(lldb::TypeSummaryImplSP());
+ SetSyntheticChildren(lldb::SyntheticChildrenSP());
}
ClangASTType
@@ -417,6 +422,7 @@
break;
case Value::eValueTypeScalar:
+ case Value::eValueTypeVector:
if (m_value.GetContextType() == Value::eContextTypeRegisterInfo)
{
RegisterInfo *reg_info = m_value.GetRegisterInfo();
@@ -426,10 +432,10 @@
m_location_str = reg_info->name;
else if (reg_info->alt_name)
m_location_str = reg_info->alt_name;
- break;
+
+ m_location_str = (reg_info->encoding == lldb::eEncodingVector) ? "vector" : "scalar";
}
}
- m_location_str = "scalar";
break;
case Value::eValueTypeLoadAddress:
@@ -593,6 +599,30 @@
}
return m_children.GetChildrenCount();
}
+
+bool
+ValueObject::MightHaveChildren()
+{
+ bool has_children = false;
+ clang_type_t clang_type = GetClangType();
+ if (clang_type)
+ {
+ const uint32_t type_info = ClangASTContext::GetTypeInfo (clang_type,
+ GetClangAST(),
+ NULL);
+ if (type_info & (ClangASTContext::eTypeHasChildren |
+ ClangASTContext::eTypeIsPointer |
+ ClangASTContext::eTypeIsReference))
+ has_children = true;
+ }
+ else
+ {
+ has_children = GetNumChildren () > 0;
+ }
+ return has_children;
+}
+
+// Should only be called by ValueObject::GetNumChildren()
void
ValueObject::SetNumChildren (uint32_t num_children)
{
@@ -1266,7 +1296,7 @@
{
if (success)
*success = true;
- return scalar.GetRawBits64(fail_value);
+ return scalar.ULongLong(fail_value);
}
// fallthrough, otherwise...
}
@@ -1556,6 +1586,7 @@
switch (m_value.GetValueType())
{
case Value::eValueTypeScalar:
+ case Value::eValueTypeVector:
if (scalar_is_load_address)
{
if(address_type)
@@ -1592,6 +1623,7 @@
switch (m_value.GetValueType())
{
case Value::eValueTypeScalar:
+ case Value::eValueTypeVector:
address = m_value.GetScalar().ULongLong(LLDB_INVALID_ADDRESS);
break;
@@ -1653,7 +1685,7 @@
Process *process = exe_ctx.GetProcessPtr();
if (process)
{
- addr_t target_addr = m_value.GetScalar().GetRawBits64(LLDB_INVALID_ADDRESS);
+ addr_t target_addr = m_value.GetScalar().ULongLong(LLDB_INVALID_ADDRESS);
size_t bytes_written = process->WriteScalarToMemory (target_addr,
new_scalar,
byte_size,
@@ -1691,7 +1723,8 @@
break;
case Value::eValueTypeFileAddress:
case Value::eValueTypeScalar:
- break;
+ case Value::eValueTypeVector:
+ break;
}
}
else
@@ -2059,12 +2092,17 @@
return;
}
+ lldb::SyntheticChildrenSP current_synth_sp(m_synthetic_children_sp);
+
if (!UpdateFormatsIfNeeded(m_last_format_mgr_dynamic) && m_synthetic_value)
return;
if (m_synthetic_children_sp.get() == NULL)
return;
+ if (current_synth_sp == m_synthetic_children_sp && m_synthetic_value)
+ return;
+
m_synthetic_value = new ValueObjectSynthetic(*this, m_synthetic_children_sp);
}
@@ -2079,7 +2117,10 @@
ExecutionContext exe_ctx (GetExecutionContextRef());
Process *process = exe_ctx.GetProcessPtr();
if (process && process->IsPossibleDynamicValue(*this))
+ {
+ ClearDynamicTypeInformation ();
m_dynamic_value = new ValueObjectDynamicValue (*this, use_dynamic);
+ }
}
}
Modified: lldb/branches/windows/source/Core/ValueObjectDynamicValue.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/ValueObjectDynamicValue.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/ValueObjectDynamicValue.cpp (original)
+++ lldb/branches/windows/source/Core/ValueObjectDynamicValue.cpp Thu Nov 1 02:04:04 2012
@@ -20,6 +20,7 @@
#include "lldb/Core/Value.h"
#include "lldb/Core/ValueObject.h"
+#include "lldb/Symbol/ClangASTType.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolContext.h"
#include "lldb/Symbol/Type.h"
@@ -32,112 +33,8 @@
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
-
using namespace lldb_private;
-lldb::ValueObjectSP
-ValueObjectCast::Create (ValueObject &parent,
- const ConstString &name,
- const ClangASTType &cast_type)
-{
- ValueObjectCast *cast_valobj_ptr = new ValueObjectCast (parent, name, cast_type);
- return cast_valobj_ptr->GetSP();
-}
-
-ValueObjectCast::ValueObjectCast
-(
- ValueObject &parent,
- const ConstString &name,
- const ClangASTType &cast_type
-) :
- ValueObject(parent),
- m_cast_type (cast_type)
-{
- SetName (name);
- m_value.SetContext (Value::eContextTypeClangType, cast_type.GetOpaqueQualType());
-}
-
-ValueObjectCast::~ValueObjectCast()
-{
-}
-
-lldb::clang_type_t
-ValueObjectCast::GetClangTypeImpl ()
-{
- return m_cast_type.GetOpaqueQualType();
-}
-
-uint32_t
-ValueObjectCast::CalculateNumChildren()
-{
- return ClangASTContext::GetNumChildren (GetClangAST (), GetClangType(), true);
-}
-
-clang::ASTContext *
-ValueObjectCast::GetClangASTImpl ()
-{
- return m_cast_type.GetASTContext();
-}
-
-size_t
-ValueObjectCast::GetByteSize()
-{
- return m_value.GetValueByteSize(GetClangAST(), NULL);
-}
-
-lldb::ValueType
-ValueObjectCast::GetValueType() const
-{
- // Let our parent answer global, local, argument, etc...
- return m_parent->GetValueType();
-}
-
-bool
-ValueObjectCast::UpdateValue ()
-{
- SetValueIsValid (false);
- m_error.Clear();
-
- if (m_parent->UpdateValueIfNeeded(false))
- {
- Value old_value(m_value);
- m_update_point.SetUpdated();
- m_value = m_parent->GetValue();
- m_value.SetContext (Value::eContextTypeClangType, GetClangType());
- SetAddressTypeOfChildren(m_parent->GetAddressTypeOfChildren());
- if (ClangASTContext::IsAggregateType (GetClangType()))
- {
- // this value object represents an aggregate type whose
- // children have values, but this object does not. So we
- // say we are changed if our location has changed.
- SetValueDidChange (m_value.GetValueType() != old_value.GetValueType() || m_value.GetScalar() != old_value.GetScalar());
- }
- ExecutionContext exe_ctx (GetExecutionContextRef());
- m_error = m_value.GetValueAsData(&exe_ctx, GetClangAST(), m_data, 0, GetModule().get());
- SetValueDidChange (m_parent->GetValueDidChange());
- return true;
- }
-
- // The dynamic value failed to get an error, pass the error along
- if (m_error.Success() && m_parent->GetError().Fail())
- m_error = m_parent->GetError();
- SetValueIsValid (false);
- return false;
-}
-
-
-
-bool
-ValueObjectCast::IsInScope ()
-{
- return m_parent->IsInScope();
-}
-
-//----------------------------------------------------------------------
-
-
-
-
ValueObjectDynamicValue::ValueObjectDynamicValue (ValueObject &parent, lldb::DynamicValueType use_dynamic) :
ValueObject(parent),
m_address (),
@@ -290,29 +187,24 @@
lldb::LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES));
+ bool has_changed_type = false;
+
if (!m_type_sp)
{
m_type_sp = dynamic_type_sp;
- ResetCompleteTypeInfo ();
- if (log)
- log->Printf("[%s %p] now has a dynamic type %s",
- GetName().GetCString(),
- this,
- GetTypeName().AsCString(""));
+ has_changed_type = true;
}
else if (dynamic_type_sp != m_type_sp)
{
// We are another type, we need to tear down our children...
m_type_sp = dynamic_type_sp;
SetValueDidChange (true);
- ResetCompleteTypeInfo ();
- if (log)
- log->Printf("[%s %p] has a new dynamic type %s",
- GetName().GetCString(),
- this,
- GetTypeName().AsCString(""));
+ has_changed_type = true;
}
+ if (has_changed_type)
+ ClearDynamicTypeInformation ();
+
if (!m_address.IsValid() || m_address != dynamic_address)
{
if (m_address.IsValid())
@@ -341,6 +233,12 @@
// because we aren't pointing to the LOCATION that stores the pointer to us, we're pointing to us...
m_value.SetValueType(Value::eValueTypeScalar);
+ if (has_changed_type && log)
+ log->Printf("[%s %p] has a new dynamic type %s",
+ GetName().GetCString(),
+ this,
+ GetTypeName().GetCString());
+
if (m_address.IsValid() && m_type_sp)
{
// The variable value is in the Scalar value inside the m_value.
Modified: lldb/branches/windows/source/Core/ValueObjectSyntheticFilter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/ValueObjectSyntheticFilter.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/ValueObjectSyntheticFilter.cpp (original)
+++ lldb/branches/windows/source/Core/ValueObjectSyntheticFilter.cpp Thu Nov 1 02:04:04 2012
@@ -45,6 +45,12 @@
}
bool
+ MightHaveChildren ()
+ {
+ return true;
+ }
+
+ bool
Update()
{
return false;
@@ -58,7 +64,8 @@
m_children_byindex(),
m_name_toindex(),
m_synthetic_children_count(UINT32_MAX),
- m_parent_type_name(parent.GetTypeName())
+ m_parent_type_name(parent.GetTypeName()),
+ m_might_have_children(eLazyBoolCalculate)
{
#ifdef LLDB_CONFIGURATION_DEBUG
std::string new_name(parent.GetName().AsCString());
@@ -67,6 +74,7 @@
#else
SetName(parent.GetName());
#endif
+ CopyParentData();
CreateSynthFilter();
}
@@ -95,6 +103,15 @@
return (m_synthetic_children_count = m_synth_filter_ap->CalculateNumChildren());
}
+bool
+ValueObjectSynthetic::MightHaveChildren()
+{
+ if (m_might_have_children == eLazyBoolCalculate)
+ m_might_have_children = (m_synth_filter_ap->MightHaveChildren() ? eLazyBoolYes : eLazyBoolNo);
+ return (m_might_have_children == eLazyBoolNo ? false : true);
+}
+
+
clang::ASTContext *
ValueObjectSynthetic::GetClangASTImpl ()
{
@@ -155,8 +172,11 @@
// that they need to come back to us asking for children
m_children_count_valid = false;
m_synthetic_children_count = UINT32_MAX;
+ m_might_have_children = eLazyBoolCalculate;
}
+ CopyParentData();
+
SetValueIsValid(true);
return true;
}
@@ -230,3 +250,11 @@
{
return m_parent->GetSP();
}
+
+void
+ValueObjectSynthetic::CopyParentData ()
+{
+ m_value = m_parent->GetValue();
+ ExecutionContext exe_ctx (GetExecutionContextRef());
+ m_error = m_value.GetValueAsData (&exe_ctx, GetClangAST(), m_data, 0, GetModule().get());
+}
Modified: lldb/branches/windows/source/Core/ValueObjectVariable.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Core/ValueObjectVariable.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Core/ValueObjectVariable.cpp (original)
+++ lldb/branches/windows/source/Core/ValueObjectVariable.cpp Thu Nov 1 02:04:04 2012
@@ -176,6 +176,7 @@
break;
case Value::eValueTypeLoadAddress:
case Value::eValueTypeScalar:
+ case Value::eValueTypeVector:
SetAddressTypeOfChildren(eAddressTypeLoad);
break;
}
Modified: lldb/branches/windows/source/Expression/ASTResultSynthesizer.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Expression/ASTResultSynthesizer.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Expression/ASTResultSynthesizer.cpp (original)
+++ lldb/branches/windows/source/Expression/ASTResultSynthesizer.cpp Thu Nov 1 02:04:04 2012
@@ -269,7 +269,7 @@
if (!implicit_cast)
break;
- if (!implicit_cast->getCastKind() == CK_LValueToRValue)
+ if (implicit_cast->getCastKind() != CK_LValueToRValue)
break;
last_expr = implicit_cast->getSubExpr();
Modified: lldb/branches/windows/source/Expression/ClangExpressionDeclMap.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Expression/ClangExpressionDeclMap.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Expression/ClangExpressionDeclMap.cpp (original)
+++ lldb/branches/windows/source/Expression/ClangExpressionDeclMap.cpp Thu Nov 1 02:04:04 2012
@@ -1083,8 +1083,13 @@
Value ret;
ret.SetContext(Value::eContextTypeRegisterInfo, reg_info);
- if (!reg_value.GetScalarValue(ret.GetScalar()))
- return Value();
+ if (reg_info->encoding == eEncodingVector)
+ {
+ if (ret.SetVectorBytes((uint8_t *)reg_value.GetBytes(), reg_value.GetByteSize(), reg_value.GetByteOrder()))
+ ret.SetScalarFromVector();
+ }
+ else if (!reg_value.GetScalarValue(ret.GetScalar()))
+ return Value();
return ret;
}
@@ -2465,34 +2470,83 @@
clang::CXXMethodDecl *method_decl = llvm::dyn_cast<clang::CXXMethodDecl>(decl_context);
- if (!method_decl)
- return;
-
- clang::CXXRecordDecl *class_decl = method_decl->getParent();
-
- QualType class_qual_type(class_decl->getTypeForDecl(), 0);
-
- TypeFromUser class_user_type (class_qual_type.getAsOpaquePtr(),
- &class_decl->getASTContext());
-
- if (log)
+ if (method_decl)
{
- ASTDumper ast_dumper(class_qual_type);
- log->Printf(" CEDM::FEVD[%u] Adding type for $__lldb_class: %s", current_id, ast_dumper.GetCString());
- }
-
- AddOneType(context, class_user_type, current_id, true);
- if (method_decl->isInstance())
- {
- // self is a pointer to the object
+ clang::CXXRecordDecl *class_decl = method_decl->getParent();
- QualType class_pointer_type = method_decl->getASTContext().getPointerType(class_qual_type);
+ QualType class_qual_type(class_decl->getTypeForDecl(), 0);
- TypeFromUser self_user_type(class_pointer_type.getAsOpaquePtr(),
- &method_decl->getASTContext());
+ TypeFromUser class_user_type (class_qual_type.getAsOpaquePtr(),
+ &class_decl->getASTContext());
- m_struct_vars->m_object_pointer_type = self_user_type;
+ if (log)
+ {
+ ASTDumper ast_dumper(class_qual_type);
+ log->Printf(" CEDM::FEVD[%u] Adding type for $__lldb_class: %s", current_id, ast_dumper.GetCString());
+ }
+
+ AddOneType(context, class_user_type, current_id, true);
+
+ if (method_decl->isInstance())
+ {
+ // self is a pointer to the object
+
+ QualType class_pointer_type = method_decl->getASTContext().getPointerType(class_qual_type);
+
+ TypeFromUser self_user_type(class_pointer_type.getAsOpaquePtr(),
+ &method_decl->getASTContext());
+
+ m_struct_vars->m_object_pointer_type = self_user_type;
+ }
+ }
+ else
+ {
+ // This branch will get hit if we are executing code in the context of a function that
+ // claims to have an object pointer (through DW_AT_object_pointer?) but is not formally a
+ // method of the class. In that case, just look up the "this" variable in the the current
+ // scope and use its type.
+ // FIXME: This code is formally correct, but clang doesn't currently emit DW_AT_object_pointer
+ // for C++ so it hasn't actually been tested.
+
+ VariableList *vars = frame->GetVariableList(false);
+
+ lldb::VariableSP this_var = vars->FindVariable(ConstString("this"));
+
+ if (this_var &&
+ this_var->IsInScope(frame) &&
+ this_var->LocationIsValidForFrame (frame))
+ {
+ Type *this_type = this_var->GetType();
+
+ if (!this_type)
+ return;
+
+ QualType this_qual_type = QualType::getFromOpaquePtr(this_type->GetClangFullType());
+ const PointerType *class_pointer_type = this_qual_type->getAs<PointerType>();
+
+ if (class_pointer_type)
+ {
+ QualType class_type = class_pointer_type->getPointeeType();
+
+ if (log)
+ {
+ ASTDumper ast_dumper(this_type->GetClangFullType());
+ log->Printf(" FEVD[%u] Adding type for $__lldb_objc_class: %s", current_id, ast_dumper.GetCString());
+ }
+
+ TypeFromUser class_user_type (class_type.getAsOpaquePtr(),
+ this_type->GetClangAST());
+ AddOneType(context, class_user_type, current_id, false);
+
+
+ TypeFromUser this_user_type(this_type->GetClangFullType(),
+ this_type->GetClangAST());
+
+ m_struct_vars->m_object_pointer_type = this_user_type;
+ return;
+ }
+ }
}
return;
@@ -2524,65 +2578,96 @@
clang::ObjCMethodDecl *method_decl = llvm::dyn_cast<clang::ObjCMethodDecl>(decl_context);
- if (!method_decl)
- return;
-
- ObjCInterfaceDecl* self_interface = method_decl->getClassInterface();
-
- if (!self_interface)
- return;
-
- const clang::Type *interface_type = self_interface->getTypeForDecl();
-
- TypeFromUser class_user_type(QualType(interface_type, 0).getAsOpaquePtr(),
- &method_decl->getASTContext());
-
- if (log)
+ if (method_decl)
{
- ASTDumper ast_dumper(interface_type);
- log->Printf(" FEVD[%u] Adding type for $__lldb_objc_class: %s", current_id, ast_dumper.GetCString());
- }
-
- AddOneType(context, class_user_type, current_id, false);
-
-#if 0
- VariableList *vars = frame->GetVariableList(false);
-
- lldb::VariableSP self_var = vars->FindVariable(ConstString("self"));
-
- if (self_var &&
- self_var->IsInScope(frame) &&
- self_var->LocationIsValidForFrame (frame)) {
- Type *self_type = self_var->GetType();
+
+ ObjCInterfaceDecl* self_interface = method_decl->getClassInterface();
- if (!self_type)
+ if (!self_interface)
return;
- TypeFromUser self_user_type(self_type->GetClangFullType(),
- self_type->GetClangAST());
- }
-#endif
-
- if (method_decl->isInstanceMethod())
- {
- // self is a pointer to the object
+ const clang::Type *interface_type = self_interface->getTypeForDecl();
+
+ TypeFromUser class_user_type(QualType(interface_type, 0).getAsOpaquePtr(),
+ &method_decl->getASTContext());
- QualType class_pointer_type = method_decl->getASTContext().getObjCObjectPointerType(QualType(interface_type, 0));
-
- TypeFromUser self_user_type(class_pointer_type.getAsOpaquePtr(),
- &method_decl->getASTContext());
-
- m_struct_vars->m_object_pointer_type = self_user_type;
+ if (log)
+ {
+ ASTDumper ast_dumper(interface_type);
+ log->Printf(" FEVD[%u] Adding type for $__lldb_objc_class: %s", current_id, ast_dumper.GetCString());
+ }
+
+ AddOneType(context, class_user_type, current_id, false);
+
+ if (method_decl->isInstanceMethod())
+ {
+ // self is a pointer to the object
+
+ QualType class_pointer_type = method_decl->getASTContext().getObjCObjectPointerType(QualType(interface_type, 0));
+
+ TypeFromUser self_user_type(class_pointer_type.getAsOpaquePtr(),
+ &method_decl->getASTContext());
+
+ m_struct_vars->m_object_pointer_type = self_user_type;
+ }
+ else
+ {
+ // self is a Class pointer
+ QualType class_type = method_decl->getASTContext().getObjCClassType();
+
+ TypeFromUser self_user_type(class_type.getAsOpaquePtr(),
+ &method_decl->getASTContext());
+
+ m_struct_vars->m_object_pointer_type = self_user_type;
+ }
+
+ return;
}
else
{
- // self is a Class pointer
- QualType class_type = method_decl->getASTContext().getObjCClassType();
+ // This branch will get hit if we are executing code in the context of a function that
+ // claims to have an object pointer (through DW_AT_object_pointer?) but is not formally a
+ // method of the class. In that case, just look up the "self" variable in the the current
+ // scope and use its type.
+
+ VariableList *vars = frame->GetVariableList(false);
- TypeFromUser self_user_type(class_type.getAsOpaquePtr(),
- &method_decl->getASTContext());
+ lldb::VariableSP self_var = vars->FindVariable(ConstString("self"));
- m_struct_vars->m_object_pointer_type = self_user_type;
+ if (self_var &&
+ self_var->IsInScope(frame) &&
+ self_var->LocationIsValidForFrame (frame))
+ {
+ Type *self_type = self_var->GetType();
+
+ if (!self_type)
+ return;
+
+ QualType self_qual_type = QualType::getFromOpaquePtr(self_type->GetClangFullType());
+ const ObjCObjectPointerType *class_pointer_type = self_qual_type->getAs<ObjCObjectPointerType>();
+
+ if (class_pointer_type)
+ {
+ QualType class_type = class_pointer_type->getPointeeType();
+
+ if (log)
+ {
+ ASTDumper ast_dumper(self_type->GetClangFullType());
+ log->Printf(" FEVD[%u] Adding type for $__lldb_objc_class: %s", current_id, ast_dumper.GetCString());
+ }
+
+ TypeFromUser class_user_type (class_type.getAsOpaquePtr(),
+ self_type->GetClangAST());
+ AddOneType(context, class_user_type, current_id, false);
+
+
+ TypeFromUser self_user_type(self_type->GetClangFullType(),
+ self_type->GetClangAST());
+
+ m_struct_vars->m_object_pointer_type = self_user_type;
+ return;
+ }
+ }
}
return;
@@ -2661,7 +2746,8 @@
{
valobj = frame->GetValueForVariableExpressionPath(name_unique_cstr,
eNoDynamicValues,
- StackFrame::eExpressionPathOptionCheckPtrVsMember,
+ StackFrame::eExpressionPathOptionCheckPtrVsMember
+ | StackFrame::eExpressionPathOptionsAllowDirectIVarAccess,
var,
err);
Modified: lldb/branches/windows/source/Expression/ClangExpressionParser.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Expression/ClangExpressionParser.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Expression/ClangExpressionParser.cpp (original)
+++ lldb/branches/windows/source/Expression/ClangExpressionParser.cpp Thu Nov 1 02:04:04 2012
@@ -53,7 +53,7 @@
#include "llvm/Support/Debug.h"
#include "llvm/Support/TargetSelect.h"
-#if !defined(__APPLE__)
+#if defined(__FreeBSD__)
#define USE_STANDARD_JIT
#endif
@@ -465,13 +465,13 @@
func_end = LLDB_INVALID_ADDRESS;
lldb::LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
- std::auto_ptr<llvm::ExecutionEngine> execution_engine;
+ std::auto_ptr<llvm::ExecutionEngine> execution_engine_ap;
Error err;
- llvm::Module *module = m_code_generator->ReleaseModule();
+ std::auto_ptr<llvm::Module> module_ap (m_code_generator->ReleaseModule());
- if (!module)
+ if (!module_ap.get())
{
err.SetErrorToGenericError();
err.SetErrorString("IR doesn't contain a module");
@@ -482,7 +482,7 @@
std::string function_name;
- if (!FindFunctionInModule(function_name, module, m_expr.FunctionName()))
+ if (!FindFunctionInModule(function_name, module_ap.get(), m_expr.FunctionName()))
{
err.SetErrorToGenericError();
err.SetErrorStringWithFormat("Couldn't find %s() in the module", m_expr.FunctionName());
@@ -511,7 +511,7 @@
error_stream,
function_name.c_str());
- bool ir_can_run = ir_for_target.runOnModule(*module);
+ bool ir_can_run = ir_for_target.runOnModule(*module_ap);
Error &interpreter_error(ir_for_target.getInterpreterError());
@@ -572,7 +572,7 @@
IRDynamicChecks ir_dynamic_checks(*process->GetDynamicCheckers(), function_name.c_str());
- if (!ir_dynamic_checks.runOnModule(*module))
+ if (!ir_dynamic_checks.runOnModule(*module_ap))
{
err.SetErrorToGenericError();
err.SetErrorString("Couldn't add dynamic checks to the expression");
@@ -592,14 +592,15 @@
std::string s;
raw_string_ostream oss(s);
- module->print(oss, NULL);
+ module_ap->print(oss, NULL);
oss.flush();
log->Printf ("Module being sent to JIT: \n%s", s.c_str());
}
-
- EngineBuilder builder(module);
+ llvm::Triple triple(module_ap->getTargetTriple());
+ llvm::Function *function = module_ap->getFunction (function_name.c_str());
+ EngineBuilder builder(module_ap.release());
builder.setEngineKind(EngineKind::JIT)
.setErrorStr(&error_string)
.setRelocationModel(llvm::Reloc::PIC_)
@@ -609,7 +610,6 @@
.setCodeModel(CodeModel::Small)
.setUseMCJIT(true);
- llvm::Triple triple(module->getTargetTriple());
StringRef mArch;
StringRef mCPU;
SmallVector<std::string, 0> mAttrs;
@@ -619,22 +619,21 @@
mCPU,
mAttrs);
- execution_engine.reset(builder.create(target_machine));
+ execution_engine_ap.reset(builder.create(target_machine));
- if (!execution_engine.get())
+ if (!execution_engine_ap.get())
{
err.SetErrorToGenericError();
err.SetErrorStringWithFormat("Couldn't JIT the function: %s", error_string.c_str());
return err;
}
- execution_engine->DisableLazyCompilation();
+ execution_engine_ap->DisableLazyCompilation();
- llvm::Function *function = module->getFunction (function_name.c_str());
// We don't actually need the function pointer here, this just forces it to get resolved.
- void *fun_ptr = execution_engine->getPointerToFunction(function);
+ void *fun_ptr = execution_engine_ap->getPointerToFunction(function);
// Errors usually cause failures in the JIT, but if we're lucky we get here.
@@ -664,7 +663,7 @@
}
jit_memory_manager->CommitAllocations(*process);
- jit_memory_manager->ReportAllocations(*execution_engine);
+ jit_memory_manager->ReportAllocations(*execution_engine_ap);
jit_memory_manager->WriteData(*process);
std::vector<JittedFunction>::iterator pos, end = m_jitted_functions.end();
@@ -699,8 +698,6 @@
}
}
- execution_engine.reset();
-
err.Clear();
return err;
}
Added: lldb/branches/windows/source/Expression/ClangExpressionParser.cpp.orig
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Expression/ClangExpressionParser.cpp.orig?rev=167218&view=auto
==============================================================================
--- lldb/branches/windows/source/Expression/ClangExpressionParser.cpp.orig (added)
+++ lldb/branches/windows/source/Expression/ClangExpressionParser.cpp.orig Thu Nov 1 02:04:04 2012
@@ -0,0 +1,842 @@
+//===-- ClangExpressionParser.cpp -------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/Expression/ClangExpressionParser.h"
+
+#include "lldb/Core/ArchSpec.h"
+#include "lldb/Core/DataBufferHeap.h"
+#include "lldb/Core/Debugger.h"
+#include "lldb/Core/Disassembler.h"
+#include "lldb/Core/Stream.h"
+#include "lldb/Core/StreamString.h"
+#include "lldb/Expression/ClangASTSource.h"
+#include "lldb/Expression/ClangExpression.h"
+#include "lldb/Expression/ClangExpressionDeclMap.h"
+#include "lldb/Expression/IRDynamicChecks.h"
+#include "lldb/Expression/RecordingMemoryManager.h"
+#include "lldb/Target/ExecutionContext.h"
+#include "lldb/Target/ObjCLanguageRuntime.h"
+#include "lldb/Target/Process.h"
+#include "lldb/Target/Target.h"
+
+#include "clang/AST/ASTContext.h"
+#include "clang/AST/ExternalASTSource.h"
+#include "clang/Basic/FileManager.h"
+#include "clang/Basic/TargetInfo.h"
+#include "clang/Basic/Version.h"
+#include "clang/CodeGen/CodeGenAction.h"
+#include "clang/CodeGen/ModuleBuilder.h"
+#include "clang/Driver/CC1Options.h"
+#include "clang/Driver/OptTable.h"
+#include "clang/Frontend/CompilerInstance.h"
+#include "clang/Frontend/CompilerInvocation.h"
+#include "clang/Frontend/FrontendActions.h"
+#include "clang/Frontend/FrontendDiagnostic.h"
+#include "clang/Frontend/FrontendPluginRegistry.h"
+#include "clang/Frontend/TextDiagnosticBuffer.h"
+#include "clang/Frontend/TextDiagnosticPrinter.h"
+#include "clang/Lex/Preprocessor.h"
+#include "clang/Parse/ParseAST.h"
+<<<<<<< .working
+#include "clang/Basic/Version.h"
+#if CLANG_VERSION_MAJOR > 3 || (CLANG_VERSION_MAJOR == 3 && CLANG_VERSION_MINOR >= 2)
+#include "clang/Rewrite/Frontend/FrontendActions.h"
+#else
+#include "clang/Rewrite/FrontendActions.h"
+=======
+#include "clang/Rewrite/Frontend/FrontendActions.h"
+>>>>>>> .merge-right.r164814
+#endif
+#include "clang/Sema/SemaConsumer.h"
+#include "clang/StaticAnalyzer/Frontend/FrontendActions.h"
+
+#include "llvm/ADT/StringRef.h"
+#include "llvm/ExecutionEngine/ExecutionEngine.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/TargetSelect.h"
+
+#if !defined(__APPLE__)
+#define USE_STANDARD_JIT
+#endif
+
+#if defined (USE_STANDARD_JIT)
+#include "llvm/ExecutionEngine/JIT.h"
+#else
+#include "llvm/ExecutionEngine/MCJIT.h"
+#endif
+#include "llvm/LLVMContext.h"
+#include "llvm/Module.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/DynamicLibrary.h"
+#include "llvm/Support/Host.h"
+#include "llvm/Support/Signals.h"
+
+using namespace clang;
+using namespace llvm;
+using namespace lldb_private;
+
+//===----------------------------------------------------------------------===//
+// Utility Methods for Clang
+//===----------------------------------------------------------------------===//
+
+std::string GetBuiltinIncludePath(const char *Argv0) {
+ llvm::sys::Path P =
+ llvm::sys::Path::GetMainExecutable(Argv0,
+ (void*)(intptr_t) GetBuiltinIncludePath);
+
+ if (!P.isEmpty()) {
+ P.eraseComponent(); // Remove /clang from foo/bin/clang
+ P.eraseComponent(); // Remove /bin from foo/bin
+
+ // Get foo/lib/clang/<version>/include
+ P.appendComponent("lib");
+ P.appendComponent("clang");
+ P.appendComponent(CLANG_VERSION_STRING);
+ P.appendComponent("include");
+ }
+
+ return P.str();
+}
+
+
+//===----------------------------------------------------------------------===//
+// Main driver for Clang
+//===----------------------------------------------------------------------===//
+
+static void LLVMErrorHandler(void *UserData, const std::string &Message) {
+ DiagnosticsEngine &Diags = *static_cast<DiagnosticsEngine*>(UserData);
+
+ Diags.Report(diag::err_fe_error_backend) << Message;
+
+ // We cannot recover from llvm errors.
+ assert(0);
+}
+
+static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) {
+ using namespace clang::frontend;
+
+ switch (CI.getFrontendOpts().ProgramAction) {
+ default:
+ llvm_unreachable("Invalid program action!");
+
+ case ASTDump: return new ASTDumpAction();
+ case ASTPrint: return new ASTPrintAction();
+ case ASTDumpXML: return new ASTDumpXMLAction();
+ case ASTView: return new ASTViewAction();
+ case DumpRawTokens: return new DumpRawTokensAction();
+ case DumpTokens: return new DumpTokensAction();
+ case EmitAssembly: return new EmitAssemblyAction();
+ case EmitBC: return new EmitBCAction();
+ case EmitHTML: return new HTMLPrintAction();
+ case EmitLLVM: return new EmitLLVMAction();
+ case EmitLLVMOnly: return new EmitLLVMOnlyAction();
+ case EmitCodeGenOnly: return new EmitCodeGenOnlyAction();
+ case EmitObj: return new EmitObjAction();
+ case FixIt: return new FixItAction();
+ case GeneratePCH: return new GeneratePCHAction();
+ case GeneratePTH: return new GeneratePTHAction();
+ case InitOnly: return new InitOnlyAction();
+ case ParseSyntaxOnly: return new SyntaxOnlyAction();
+
+ case PluginAction: {
+ for (FrontendPluginRegistry::iterator it =
+ FrontendPluginRegistry::begin(), ie = FrontendPluginRegistry::end();
+ it != ie; ++it) {
+ if (it->getName() == CI.getFrontendOpts().ActionName) {
+ llvm::OwningPtr<PluginASTAction> P(it->instantiate());
+ if (!P->ParseArgs(CI, CI.getFrontendOpts().PluginArgs))
+ return 0;
+ return P.take();
+ }
+ }
+
+ CI.getDiagnostics().Report(diag::err_fe_invalid_plugin_name)
+ << CI.getFrontendOpts().ActionName;
+ return 0;
+ }
+
+ case PrintDeclContext: return new DeclContextPrintAction();
+ case PrintPreamble: return new PrintPreambleAction();
+ case PrintPreprocessedInput: return new PrintPreprocessedAction();
+ case RewriteMacros: return new RewriteMacrosAction();
+ case RewriteObjC: return new RewriteObjCAction();
+ case RewriteTest: return new RewriteTestAction();
+ //case RunAnalysis: return new AnalysisAction();
+ case RunPreprocessorOnly: return new PreprocessOnlyAction();
+ }
+}
+
+static FrontendAction *CreateFrontendAction(CompilerInstance &CI) {
+ // Create the underlying action.
+ FrontendAction *Act = CreateFrontendBaseAction(CI);
+ if (!Act)
+ return 0;
+
+ // If there are any AST files to merge, create a frontend action
+ // adaptor to perform the merge.
+ if (!CI.getFrontendOpts().ASTMergeFiles.empty())
+ Act = new ASTMergeAction(Act, CI.getFrontendOpts().ASTMergeFiles);
+
+ return Act;
+}
+
+//===----------------------------------------------------------------------===//
+// Implementation of ClangExpressionParser
+//===----------------------------------------------------------------------===//
+
+ClangExpressionParser::ClangExpressionParser (ExecutionContextScope *exe_scope,
+ ClangExpression &expr) :
+ m_expr (expr),
+ m_compiler (),
+ m_code_generator (NULL),
+ m_jitted_functions ()
+{
+ // Initialize targets first, so that --version shows registered targets.
+ static struct InitializeLLVM {
+ InitializeLLVM() {
+ llvm::InitializeAllTargets();
+ llvm::InitializeAllAsmPrinters();
+ llvm::InitializeAllTargetMCs();
+ llvm::InitializeAllDisassemblers();
+
+ llvm::DisablePrettyStackTrace = true;
+ }
+ } InitializeLLVM;
+
+ // 1. Create a new compiler instance.
+ m_compiler.reset(new CompilerInstance());
+
+ // 2. Install the target.
+
+ lldb::TargetSP target_sp;
+ if (exe_scope)
+ target_sp = exe_scope->CalculateTarget();
+
+ // TODO: figure out what to really do when we don't have a valid target.
+ // Sometimes this will be ok to just use the host target triple (when we
+ // evaluate say "2+3", but other expressions like breakpoint conditions
+ // and other things that _are_ target specific really shouldn't just be
+ // using the host triple. This needs to be fixed in a better way.
+ if (target_sp && target_sp->GetArchitecture().IsValid())
+ {
+ std::string triple = target_sp->GetArchitecture().GetTriple().str();
+
+ int dash_count = 0;
+ for (size_t i = 0; i < triple.size(); ++i)
+ {
+ if (triple[i] == '-')
+ dash_count++;
+ if (dash_count == 3)
+ {
+ triple.resize(i);
+ break;
+ }
+ }
+
+ m_compiler->getTargetOpts().Triple = triple;
+ }
+ else
+ {
+ m_compiler->getTargetOpts().Triple = llvm::sys::getDefaultTargetTriple();
+ }
+
+ if (m_compiler->getTargetOpts().Triple.find("ios") != std::string::npos)
+ m_compiler->getTargetOpts().ABI = "apcs-gnu";
+
+ m_compiler->createDiagnostics(0, 0);
+
+ // Create the target instance.
+ m_compiler->setTarget(TargetInfo::CreateTargetInfo(m_compiler->getDiagnostics(),
+ m_compiler->getTargetOpts()));
+
+ assert (m_compiler->hasTarget());
+
+ // 3. Set options.
+
+ lldb::LanguageType language = expr.Language();
+
+ switch (language)
+ {
+ case lldb::eLanguageTypeC:
+ break;
+ case lldb::eLanguageTypeObjC:
+ m_compiler->getLangOpts().ObjC1 = true;
+ m_compiler->getLangOpts().ObjC2 = true;
+ break;
+ case lldb::eLanguageTypeC_plus_plus:
+ m_compiler->getLangOpts().CPlusPlus = true;
+ m_compiler->getLangOpts().CPlusPlus0x = true;
+ break;
+ case lldb::eLanguageTypeObjC_plus_plus:
+ default:
+ m_compiler->getLangOpts().ObjC1 = true;
+ m_compiler->getLangOpts().ObjC2 = true;
+ m_compiler->getLangOpts().CPlusPlus = true;
+ m_compiler->getLangOpts().CPlusPlus0x = true;
+ break;
+ }
+
+ m_compiler->getLangOpts().DebuggerSupport = true; // Features specifically for debugger clients
+ if (expr.DesiredResultType() == ClangExpression::eResultTypeId)
+ m_compiler->getLangOpts().DebuggerCastResultToId = true;
+
+ // Spell checking is a nice feature, but it ends up completing a
+ // lot of types that we didn't strictly speaking need to complete.
+ // As a result, we spend a long time parsing and importing debug
+ // information.
+ m_compiler->getLangOpts().SpellChecking = false;
+
+ lldb::ProcessSP process_sp;
+ if (exe_scope)
+ process_sp = exe_scope->CalculateProcess();
+
+ if (process_sp && m_compiler->getLangOpts().ObjC1)
+ {
+ if (process_sp->GetObjCLanguageRuntime())
+ {
+ if (process_sp->GetObjCLanguageRuntime()->GetRuntimeVersion() == eAppleObjC_V2)
+<<<<<<< .working
+ {
+#if CLANG_MAJOR_VERSION == 3 && CLANG_MINOR_VERSION < 2
+ m_compiler->getLangOpts().ObjCNonFragileABI = true; // NOT i386
+ m_compiler->getLangOpts().ObjCNonFragileABI2 = true; // NOT i386
+#endif
+ }
+=======
+ m_compiler->getLangOpts().ObjCRuntime.set(ObjCRuntime::MacOSX, VersionTuple(10, 7));
+ else
+ m_compiler->getLangOpts().ObjCRuntime.set(ObjCRuntime::FragileMacOSX, VersionTuple(10, 7));
+>>>>>>> .merge-right.r164814
+
+ if (process_sp->GetObjCLanguageRuntime()->HasNewLiteralsAndIndexing())
+ m_compiler->getLangOpts().DebuggerObjCLiteral = true;
+ }
+ }
+
+ m_compiler->getLangOpts().ThreadsafeStatics = false;
+ m_compiler->getLangOpts().AccessControl = false; // Debuggers get universal access
+ m_compiler->getLangOpts().DollarIdents = true; // $ indicates a persistent variable name
+
+ // Set CodeGen options
+ m_compiler->getCodeGenOpts().EmitDeclMetadata = true;
+ m_compiler->getCodeGenOpts().InstrumentFunctions = false;
+
+ // Disable some warnings.
+ m_compiler->getDiagnosticOpts().Warnings.push_back("no-unused-value");
+
+ // Inform the target of the language options
+ //
+ // FIXME: We shouldn't need to do this, the target should be immutable once
+ // created. This complexity should be lifted elsewhere.
+ m_compiler->getTarget().setForcedLangOptions(m_compiler->getLangOpts());
+
+ // 4. Set up the diagnostic buffer for reporting errors
+
+ m_compiler->getDiagnostics().setClient(new clang::TextDiagnosticBuffer);
+
+ // 5. Set up the source management objects inside the compiler
+
+ clang::FileSystemOptions file_system_options;
+ m_file_manager.reset(new clang::FileManager(file_system_options));
+
+ if (!m_compiler->hasSourceManager())
+ m_compiler->createSourceManager(*m_file_manager.get());
+
+ m_compiler->createFileManager();
+ m_compiler->createPreprocessor();
+
+ // 6. Most of this we get from the CompilerInstance, but we
+ // also want to give the context an ExternalASTSource.
+ m_selector_table.reset(new SelectorTable());
+ m_builtin_context.reset(new Builtin::Context());
+
+ std::auto_ptr<clang::ASTContext> ast_context(new ASTContext(m_compiler->getLangOpts(),
+ m_compiler->getSourceManager(),
+ &m_compiler->getTarget(),
+ m_compiler->getPreprocessor().getIdentifierTable(),
+ *m_selector_table.get(),
+ *m_builtin_context.get(),
+ 0));
+
+ ClangExpressionDeclMap *decl_map = m_expr.DeclMap();
+
+ if (decl_map)
+ {
+ llvm::OwningPtr<clang::ExternalASTSource> ast_source(decl_map->CreateProxy());
+ decl_map->InstallASTContext(ast_context.get());
+ ast_context->setExternalSource(ast_source);
+ }
+
+ m_compiler->setASTContext(ast_context.release());
+
+ std::string module_name("$__lldb_module");
+
+ m_llvm_context.reset(new LLVMContext());
+ m_code_generator.reset(CreateLLVMCodeGen(m_compiler->getDiagnostics(),
+ module_name,
+ m_compiler->getCodeGenOpts(),
+ *m_llvm_context));
+}
+
+ClangExpressionParser::~ClangExpressionParser()
+{
+}
+
+unsigned
+ClangExpressionParser::Parse (Stream &stream)
+{
+ TextDiagnosticBuffer *diag_buf = static_cast<TextDiagnosticBuffer*>(m_compiler->getDiagnostics().getClient());
+
+ diag_buf->FlushDiagnostics (m_compiler->getDiagnostics());
+
+ MemoryBuffer *memory_buffer = MemoryBuffer::getMemBufferCopy(m_expr.Text(), __FUNCTION__);
+ m_compiler->getSourceManager().createMainFileIDForMemBuffer (memory_buffer);
+
+ diag_buf->BeginSourceFile(m_compiler->getLangOpts(), &m_compiler->getPreprocessor());
+
+ ASTConsumer *ast_transformer = m_expr.ASTTransformer(m_code_generator.get());
+
+ if (ast_transformer)
+ ParseAST(m_compiler->getPreprocessor(), ast_transformer, m_compiler->getASTContext());
+ else
+ ParseAST(m_compiler->getPreprocessor(), m_code_generator.get(), m_compiler->getASTContext());
+
+ diag_buf->EndSourceFile();
+
+ TextDiagnosticBuffer::const_iterator diag_iterator;
+
+ int num_errors = 0;
+
+ for (diag_iterator = diag_buf->warn_begin();
+ diag_iterator != diag_buf->warn_end();
+ ++diag_iterator)
+ stream.Printf("warning: %s\n", (*diag_iterator).second.c_str());
+
+ num_errors = 0;
+
+ for (diag_iterator = diag_buf->err_begin();
+ diag_iterator != diag_buf->err_end();
+ ++diag_iterator)
+ {
+ num_errors++;
+ stream.Printf("error: %s\n", (*diag_iterator).second.c_str());
+ }
+
+ for (diag_iterator = diag_buf->note_begin();
+ diag_iterator != diag_buf->note_end();
+ ++diag_iterator)
+ stream.Printf("note: %s\n", (*diag_iterator).second.c_str());
+
+ if (!num_errors)
+ {
+ if (m_expr.DeclMap() && !m_expr.DeclMap()->ResolveUnknownTypes())
+ {
+ stream.Printf("error: Couldn't infer the type of a variable\n");
+ num_errors++;
+ }
+ }
+
+ return num_errors;
+}
+
+static bool FindFunctionInModule (std::string &mangled_name,
+ llvm::Module *module,
+ const char *orig_name)
+{
+ for (llvm::Module::iterator fi = module->getFunctionList().begin(), fe = module->getFunctionList().end();
+ fi != fe;
+ ++fi)
+ {
+ if (fi->getName().str().find(orig_name) != std::string::npos)
+ {
+ mangled_name = fi->getName().str();
+ return true;
+ }
+ }
+
+ return false;
+}
+
+Error
+ClangExpressionParser::PrepareForExecution (lldb::addr_t &func_allocation_addr,
+ lldb::addr_t &func_addr,
+ lldb::addr_t &func_end,
+ ExecutionContext &exe_ctx,
+ IRForTarget::StaticDataAllocator *data_allocator,
+ bool &evaluated_statically,
+ lldb::ClangExpressionVariableSP &const_result,
+ ExecutionPolicy execution_policy)
+{
+ func_allocation_addr = LLDB_INVALID_ADDRESS;
+ func_addr = LLDB_INVALID_ADDRESS;
+ func_end = LLDB_INVALID_ADDRESS;
+ lldb::LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
+
+ std::auto_ptr<llvm::ExecutionEngine> execution_engine;
+
+ Error err;
+
+ llvm::Module *module = m_code_generator->ReleaseModule();
+
+ if (!module)
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorString("IR doesn't contain a module");
+ return err;
+ }
+
+ // Find the actual name of the function (it's often mangled somehow)
+
+ std::string function_name;
+
+ if (!FindFunctionInModule(function_name, module, m_expr.FunctionName()))
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorStringWithFormat("Couldn't find %s() in the module", m_expr.FunctionName());
+ return err;
+ }
+ else
+ {
+ if (log)
+ log->Printf("Found function %s for %s", function_name.c_str(), m_expr.FunctionName());
+ }
+
+ ClangExpressionDeclMap *decl_map = m_expr.DeclMap(); // result can be NULL
+
+ if (decl_map)
+ {
+ Stream *error_stream = NULL;
+ Target *target = exe_ctx.GetTargetPtr();
+ if (target)
+ error_stream = &target->GetDebugger().GetErrorStream();
+
+ IRForTarget ir_for_target(decl_map,
+ m_expr.NeedsVariableResolution(),
+ execution_policy,
+ const_result,
+ data_allocator,
+ error_stream,
+ function_name.c_str());
+
+ bool ir_can_run = ir_for_target.runOnModule(*module);
+
+ Error &interpreter_error(ir_for_target.getInterpreterError());
+
+ if (execution_policy != eExecutionPolicyAlways && interpreter_error.Success())
+ {
+ if (const_result)
+ const_result->TransferAddress();
+ evaluated_statically = true;
+ err.Clear();
+ return err;
+ }
+
+ Process *process = exe_ctx.GetProcessPtr();
+
+ if (!process || execution_policy == eExecutionPolicyNever)
+ {
+ err.SetErrorToGenericError();
+ if (execution_policy == eExecutionPolicyAlways)
+ err.SetErrorString("Execution needed to run in the target, but the target can't be run");
+ else
+ err.SetErrorStringWithFormat("Interpreting the expression locally failed: %s", interpreter_error.AsCString());
+
+ return err;
+ }
+ else if (!ir_can_run)
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorString("The expression could not be prepared to run in the target");
+
+ return err;
+ }
+
+ if (execution_policy != eExecutionPolicyNever &&
+ m_expr.NeedsValidation() &&
+ process)
+ {
+ if (!process->GetDynamicCheckers())
+ {
+ DynamicCheckerFunctions *dynamic_checkers = new DynamicCheckerFunctions();
+
+ StreamString install_errors;
+
+ if (!dynamic_checkers->Install(install_errors, exe_ctx))
+ {
+ if (install_errors.GetString().empty())
+ err.SetErrorString ("couldn't install checkers, unknown error");
+ else
+ err.SetErrorString (install_errors.GetString().c_str());
+
+ return err;
+ }
+
+ process->SetDynamicCheckers(dynamic_checkers);
+
+ if (log)
+ log->Printf("== [ClangUserExpression::Evaluate] Finished installing dynamic checkers ==");
+ }
+
+ IRDynamicChecks ir_dynamic_checks(*process->GetDynamicCheckers(), function_name.c_str());
+
+ if (!ir_dynamic_checks.runOnModule(*module))
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorString("Couldn't add dynamic checks to the expression");
+ return err;
+ }
+ }
+ }
+
+ // llvm will own this pointer when llvm::ExecutionEngine::createJIT is called
+ // below so we don't need to free it.
+ RecordingMemoryManager *jit_memory_manager = new RecordingMemoryManager();
+
+ std::string error_string;
+
+ if (log)
+ {
+ std::string s;
+ raw_string_ostream oss(s);
+
+ module->print(oss, NULL);
+
+ oss.flush();
+
+ log->Printf ("Module being sent to JIT: \n%s", s.c_str());
+ }
+
+ EngineBuilder builder(module);
+ builder.setEngineKind(EngineKind::JIT)
+ .setErrorStr(&error_string)
+ .setRelocationModel(llvm::Reloc::PIC_)
+ .setJITMemoryManager(jit_memory_manager)
+ .setOptLevel(CodeGenOpt::Less)
+ .setAllocateGVsWithCode(true)
+ .setCodeModel(CodeModel::Small)
+ .setUseMCJIT(true);
+
+ llvm::Triple triple(module->getTargetTriple());
+ StringRef mArch;
+ StringRef mCPU;
+ SmallVector<std::string, 0> mAttrs;
+
+ TargetMachine *target_machine = builder.selectTarget(triple,
+ mArch,
+ mCPU,
+ mAttrs);
+
+ execution_engine.reset(builder.create(target_machine));
+
+ if (!execution_engine.get())
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorStringWithFormat("Couldn't JIT the function: %s", error_string.c_str());
+ return err;
+ }
+
+ execution_engine->DisableLazyCompilation();
+
+ llvm::Function *function = module->getFunction (function_name.c_str());
+
+ // We don't actually need the function pointer here, this just forces it to get resolved.
+
+ void *fun_ptr = execution_engine->getPointerToFunction(function);
+
+ // Errors usually cause failures in the JIT, but if we're lucky we get here.
+
+ if (!function)
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorStringWithFormat("Couldn't find '%s' in the JITted module", function_name.c_str());
+ return err;
+ }
+
+ if (!fun_ptr)
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorStringWithFormat("'%s' was in the JITted module but wasn't lowered", function_name.c_str());
+ return err;
+ }
+
+ m_jitted_functions.push_back (ClangExpressionParser::JittedFunction(function_name.c_str(), (lldb::addr_t)fun_ptr));
+
+
+ Process *process = exe_ctx.GetProcessPtr();
+ if (process == NULL)
+ {
+ err.SetErrorToGenericError();
+ err.SetErrorString("Couldn't write the JIT compiled code into the target because there is no target");
+ return err;
+ }
+
+ jit_memory_manager->CommitAllocations(*process);
+ jit_memory_manager->ReportAllocations(*execution_engine);
+ jit_memory_manager->WriteData(*process);
+
+ std::vector<JittedFunction>::iterator pos, end = m_jitted_functions.end();
+
+ for (pos = m_jitted_functions.begin(); pos != end; pos++)
+ {
+ (*pos).m_remote_addr = jit_memory_manager->GetRemoteAddressForLocal ((*pos).m_local_addr);
+
+ if (!(*pos).m_name.compare(function_name.c_str()))
+ {
+ RecordingMemoryManager::AddrRange func_range = jit_memory_manager->GetRemoteRangeForLocal((*pos).m_local_addr);
+ func_end = func_range.first + func_range.second;
+ func_addr = (*pos).m_remote_addr;
+ }
+ }
+
+ if (log)
+ {
+ log->Printf("Code can be run in the target.");
+
+ StreamString disassembly_stream;
+
+ Error err = DisassembleFunction(disassembly_stream, exe_ctx, jit_memory_manager);
+
+ if (!err.Success())
+ {
+ log->Printf("Couldn't disassemble function : %s", err.AsCString("unknown error"));
+ }
+ else
+ {
+ log->Printf("Function disassembly:\n%s", disassembly_stream.GetData());
+ }
+ }
+
+ execution_engine.reset();
+
+ err.Clear();
+ return err;
+}
+
+Error
+ClangExpressionParser::DisassembleFunction (Stream &stream, ExecutionContext &exe_ctx, RecordingMemoryManager *jit_memory_manager)
+{
+ lldb::LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
+
+ const char *name = m_expr.FunctionName();
+
+ Error ret;
+
+ ret.Clear();
+
+ lldb::addr_t func_local_addr = LLDB_INVALID_ADDRESS;
+ lldb::addr_t func_remote_addr = LLDB_INVALID_ADDRESS;
+
+ std::vector<JittedFunction>::iterator pos, end = m_jitted_functions.end();
+
+ for (pos = m_jitted_functions.begin(); pos < end; pos++)
+ {
+ if (strstr(pos->m_name.c_str(), name))
+ {
+ func_local_addr = pos->m_local_addr;
+ func_remote_addr = pos->m_remote_addr;
+ }
+ }
+
+ if (func_local_addr == LLDB_INVALID_ADDRESS)
+ {
+ ret.SetErrorToGenericError();
+ ret.SetErrorStringWithFormat("Couldn't find function %s for disassembly", name);
+ return ret;
+ }
+
+ if (log)
+ log->Printf("Found function, has local address 0x%llx and remote address 0x%llx", (uint64_t)func_local_addr, (uint64_t)func_remote_addr);
+
+ std::pair <lldb::addr_t, lldb::addr_t> func_range;
+
+ func_range = jit_memory_manager->GetRemoteRangeForLocal(func_local_addr);
+
+ if (func_range.first == 0 && func_range.second == 0)
+ {
+ ret.SetErrorToGenericError();
+ ret.SetErrorStringWithFormat("Couldn't find code range for function %s", name);
+ return ret;
+ }
+
+ if (log)
+ log->Printf("Function's code range is [0x%llx+0x%llx]", func_range.first, func_range.second);
+
+ Target *target = exe_ctx.GetTargetPtr();
+ if (!target)
+ {
+ ret.SetErrorToGenericError();
+ ret.SetErrorString("Couldn't find the target");
+ }
+
+ lldb::DataBufferSP buffer_sp(new DataBufferHeap(func_range.second, 0));
+
+ Process *process = exe_ctx.GetProcessPtr();
+ Error err;
+ process->ReadMemory(func_remote_addr, buffer_sp->GetBytes(), buffer_sp->GetByteSize(), err);
+
+ if (!err.Success())
+ {
+ ret.SetErrorToGenericError();
+ ret.SetErrorStringWithFormat("Couldn't read from process: %s", err.AsCString("unknown error"));
+ return ret;
+ }
+
+ ArchSpec arch(target->GetArchitecture());
+
+ lldb::DisassemblerSP disassembler = Disassembler::FindPlugin(arch, NULL);
+
+ if (!disassembler)
+ {
+ ret.SetErrorToGenericError();
+ ret.SetErrorStringWithFormat("Unable to find disassembler plug-in for %s architecture.", arch.GetArchitectureName());
+ return ret;
+ }
+
+ if (!process)
+ {
+ ret.SetErrorToGenericError();
+ ret.SetErrorString("Couldn't find the process");
+ return ret;
+ }
+
+ DataExtractor extractor(buffer_sp,
+ process->GetByteOrder(),
+ target->GetArchitecture().GetAddressByteSize());
+
+ if (log)
+ {
+ log->Printf("Function data has contents:");
+ extractor.PutToLog (log.get(),
+ 0,
+ extractor.GetByteSize(),
+ func_remote_addr,
+ 16,
+ DataExtractor::TypeUInt8);
+ }
+
+ disassembler->DecodeInstructions (Address (func_remote_addr), extractor, 0, UINT32_MAX, false);
+
+ InstructionList &instruction_list = disassembler->GetInstructionList();
+ const uint32_t max_opcode_byte_size = instruction_list.GetMaxOpcocdeByteSize();
+ for (uint32_t instruction_index = 0, num_instructions = instruction_list.GetSize();
+ instruction_index < num_instructions;
+ ++instruction_index)
+ {
+ Instruction *instruction = instruction_list.GetInstructionAtIndex(instruction_index).get();
+ instruction->Dump (&stream,
+ max_opcode_byte_size,
+ true,
+ true,
+ &exe_ctx);
+ stream.PutChar('\n');
+ }
+
+ return ret;
+}
Modified: lldb/branches/windows/source/Expression/ClangUserExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Expression/ClangUserExpression.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Expression/ClangUserExpression.cpp (original)
+++ lldb/branches/windows/source/Expression/ClangUserExpression.cpp Thu Nov 1 02:04:04 2012
@@ -31,6 +31,10 @@
#include "lldb/Expression/ExpressionSourceCode.h"
#include "lldb/Host/Host.h"
#include "lldb/Symbol/Block.h"
+#include "lldb/Symbol/ClangASTContext.h"
+#include "lldb/Symbol/Function.h"
+#include "lldb/Symbol/Type.h"
+#include "lldb/Symbol/ClangExternalASTSourceCommon.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/Process.h"
@@ -192,6 +196,29 @@
m_static_method = true;
}
}
+ else if (clang::FunctionDecl *function_decl = llvm::dyn_cast<clang::FunctionDecl>(decl_context))
+ {
+ // We might also have a function that said in the debug information that it captured an
+ // object pointer. The best way to deal with getting to the ivars at present it by pretending
+ // that this is a method of a class in whatever runtime the debug info says the object pointer
+ // belongs to. Do that here.
+
+ ClangASTMetadata *metadata = ClangASTContext::GetMetadata (&decl_context->getParentASTContext(), (uintptr_t) function_decl);
+ if (metadata && metadata->HasObjectPtr())
+ {
+ lldb::LanguageType language = metadata->GetObjectPtrLanguage();
+ if (language == lldb::eLanguageTypeC_plus_plus)
+ {
+ m_cplusplus = true;
+ m_needs_object_ptr = true;
+ }
+ else if (language == lldb::eLanguageTypeObjC)
+ {
+ m_objectivec = true;
+ m_needs_object_ptr = true;
+ }
+ }
+ }
}
// This is a really nasty hack, meant to fix Objective-C expressions of the form
Modified: lldb/branches/windows/source/Expression/IRInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Expression/IRInterpreter.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Expression/IRInterpreter.cpp (original)
+++ lldb/branches/windows/source/Expression/IRInterpreter.cpp Thu Nov 1 02:04:04 2012
@@ -676,7 +676,11 @@
if (bare_register)
indirect_variable = false;
- Memory::Region data_region = m_memory.Malloc(value->getType());
+ lldb_private::RegisterInfo *reg_info = resolved_value.GetRegisterInfo();
+ Memory::Region data_region = (reg_info->encoding == lldb::eEncodingVector) ?
+ m_memory.Malloc(reg_info->byte_size, m_target_data.getPrefTypeAlignment(value->getType())) :
+ m_memory.Malloc(value->getType());
+
data_region.m_allocation->m_origin = resolved_value;
Memory::Region ref_region = m_memory.Malloc(value->getType());
Memory::Region pointer_region;
Modified: lldb/branches/windows/source/Host/common/File.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Host/common/File.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Host/common/File.cpp (original)
+++ lldb/branches/windows/source/Host/common/File.cpp Thu Nov 1 02:04:04 2012
@@ -373,7 +373,7 @@
Error error;
if (DescriptorIsValid())
{
- offset = ::lseek (m_descriptor, offset, SEEK_CUR);
+ offset = ::lseek (m_descriptor, offset, SEEK_END);
if (offset == -1)
error.SetErrorToErrno();
Modified: lldb/branches/windows/source/Host/macosx/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Host/macosx/Symbols.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Host/macosx/Symbols.cpp (original)
+++ lldb/branches/windows/source/Host/macosx/Symbols.cpp Thu Nov 1 02:04:04 2012
@@ -11,6 +11,7 @@
// C Includes
#include <dirent.h>
+#include <pwd.h>
#include "llvm/Support/MachO.h"
// C++ Includes
@@ -696,12 +697,27 @@
if (!g_dsym_for_uuid_exe_exists)
{
- dsym_for_uuid_exe_spec.SetFile("~rc/bin/dsymForUUID", true);
+ dsym_for_uuid_exe_spec.SetFile("/usr/local/bin/dsymForUUID", false);
g_dsym_for_uuid_exe_exists = dsym_for_uuid_exe_spec.Exists();
if (!g_dsym_for_uuid_exe_exists)
{
- dsym_for_uuid_exe_spec.SetFile("/usr/local/bin/dsymForUUID", false);
- g_dsym_for_uuid_exe_exists = dsym_for_uuid_exe_spec.Exists();
+ int bufsize;
+ if ((bufsize = sysconf(_SC_GETPW_R_SIZE_MAX)) != -1)
+ {
+ char buffer[bufsize];
+ struct passwd pwd;
+ struct passwd *tilde_rc = NULL;
+ // we are a library so we need to use the reentrant version of getpwnam()
+ if (getpwnam_r ("rc", &pwd, buffer, bufsize, &tilde_rc) == 0
+ && tilde_rc
+ && tilde_rc->pw_dir)
+ {
+ std::string dsymforuuid_path(tilde_rc->pw_dir);
+ dsymforuuid_path += "/bin/dsymForUUID";
+ dsym_for_uuid_exe_spec.SetFile(dsymforuuid_path.c_str(), false);
+ g_dsym_for_uuid_exe_exists = dsym_for_uuid_exe_spec.Exists();
+ }
+ }
}
}
if (!g_dsym_for_uuid_exe_exists && g_dbgshell_command != NULL)
Modified: lldb/branches/windows/source/Interpreter/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/CMakeLists.txt?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/CMakeLists.txt (original)
+++ lldb/branches/windows/source/Interpreter/CMakeLists.txt Thu Nov 1 02:04:04 2012
@@ -13,6 +13,7 @@
OptionGroupFormat.cpp
OptionGroupOutputFile.cpp
OptionGroupPlatform.cpp
+ OptionGroupString.cpp
OptionGroupUInt64.cpp
OptionGroupUUID.cpp
OptionGroupValueObjectDisplay.cpp
Modified: lldb/branches/windows/source/Interpreter/CommandInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/CommandInterpreter.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/CommandInterpreter.cpp (original)
+++ lldb/branches/windows/source/Interpreter/CommandInterpreter.cpp Thu Nov 1 02:04:04 2012
@@ -42,23 +42,28 @@
#include "../Commands/CommandObjectVersion.h"
#include "../Commands/CommandObjectWatchpoint.h"
-#include "lldb/Interpreter/Args.h"
-#include "lldb/Interpreter/Options.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/InputReader.h"
+#include "lldb/Core/Log.h"
#include "lldb/Core/Stream.h"
#include "lldb/Core/Timer.h"
+
#include "lldb/Host/Host.h"
-#include "lldb/Target/Process.h"
-#include "lldb/Target/Thread.h"
-#include "lldb/Target/TargetList.h"
-#include "lldb/Utility/CleanUp.h"
+#include "lldb/Interpreter/Args.h"
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Interpreter/CommandInterpreter.h"
+#include "lldb/Interpreter/Options.h"
#include "lldb/Interpreter/ScriptInterpreterNone.h"
#include "lldb/Interpreter/ScriptInterpreterPython.h"
+
+#include "lldb/Target/Process.h"
+#include "lldb/Target/Thread.h"
+#include "lldb/Target/TargetList.h"
+
+#include "lldb/Utility/CleanUp.h"
+
using namespace lldb;
using namespace lldb_private;
@@ -519,8 +524,8 @@
std::auto_ptr<CommandObjectRegexCommand>
connect_gdb_remote_cmd_ap(new CommandObjectRegexCommand (*this,
"gdb-remote",
- "Connect to a remote GDB server.",
- "gdb-remote [<host>:<port>]\ngdb-remote [<port>]", 2));
+ "Connect to a remote GDB server. If no hostname is provided, localhost is assumed.",
+ "gdb-remote [<hostname>:]<portnum>", 2));
if (connect_gdb_remote_cmd_ap.get())
{
if (connect_gdb_remote_cmd_ap->AddRegexCommand("^([^:]+:[[:digit:]]+)$", "process connect --plugin gdb-remote connect://%1") &&
@@ -534,8 +539,8 @@
std::auto_ptr<CommandObjectRegexCommand>
connect_kdp_remote_cmd_ap(new CommandObjectRegexCommand (*this,
"kdp-remote",
- "Connect to a remote KDP server.",
- "kdp-remote [<host>]\nkdp-remote [<host>:<port>]", 2));
+ "Connect to a remote KDP server. udp port 41139 is the default port number.",
+ "kdp-remote <hostname>[:<portnum>]", 2));
if (connect_kdp_remote_cmd_ap.get())
{
if (connect_kdp_remote_cmd_ap->AddRegexCommand("^([^:]+:[[:digit:]]+)$", "process connect --plugin kdp-remote udp://%1") &&
@@ -2549,8 +2554,14 @@
}
ScriptInterpreter *
-CommandInterpreter::GetScriptInterpreter ()
+CommandInterpreter::GetScriptInterpreter (bool can_create)
{
+ if (m_script_interpreter_ap.get() != NULL)
+ return m_script_interpreter_ap.get();
+
+ if (!can_create)
+ return NULL;
+
// <rdar://problem/11751427>
// we need to protect the initialization of the script interpreter
// otherwise we could end up with two threads both trying to create
@@ -2561,8 +2572,9 @@
static Mutex g_interpreter_mutex(Mutex::eMutexTypeRecursive);
Mutex::Locker interpreter_lock(g_interpreter_mutex);
- if (m_script_interpreter_ap.get() != NULL)
- return m_script_interpreter_ap.get();
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_OBJECT));
+ if (log)
+ log->Printf("Initializing the ScriptInterpreter now\n");
lldb::ScriptLanguage script_lang = GetDebugger().GetScriptLanguage();
switch (script_lang)
Modified: lldb/branches/windows/source/Interpreter/CommandObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/CommandObject.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/CommandObject.cpp (original)
+++ lldb/branches/windows/source/Interpreter/CommandObject.cpp Thu Nov 1 02:04:04 2012
@@ -744,6 +744,33 @@
}
static const char *
+LanguageTypeHelpTextCallback ()
+{
+ static char* help_text_ptr = NULL;
+
+ if (help_text_ptr)
+ return help_text_ptr;
+
+ StreamString sstr;
+ sstr << "One of the following languages:\n";
+
+ for (LanguageType l = eLanguageTypeUnknown; l < eNumLanguageTypes; l = (LanguageType)((int)l + 1))
+ {
+ sstr << " " << LanguageRuntime::GetNameForLanguageType(l) << "\n";
+ }
+
+ sstr.Flush();
+
+ std::string data = sstr.GetString();
+
+ help_text_ptr = new char[data.length()+1];
+
+ data.copy(help_text_ptr, data.length());
+
+ return help_text_ptr;
+}
+
+static const char *
SummaryStringHelpTextCallback()
{
return
@@ -925,6 +952,7 @@
{ eArgTypeClassName, "class-name", CommandCompletions::eNoCompletion, { NULL, false }, "Then name of a class from the debug information in the program." },
{ eArgTypeCommandName, "cmd-name", CommandCompletions::eNoCompletion, { NULL, false }, "A debugger command (may be multiple words), without any options or arguments." },
{ eArgTypeCount, "count", CommandCompletions::eNoCompletion, { NULL, false }, "An unsigned integer." },
+ { eArgTypeDirectoryName, "directory", CommandCompletions::eDiskDirectoryCompletion, { NULL, false }, "A directory name." },
{ eArgTypeEndAddress, "end-address", CommandCompletions::eNoCompletion, { NULL, false }, "Help text goes here." },
{ eArgTypeExpression, "expr", CommandCompletions::eNoCompletion, { NULL, false }, "Help text goes here." },
{ eArgTypeExpressionPath, "expr-path", CommandCompletions::eNoCompletion, { ExprPathHelpTextCallback, true }, NULL },
@@ -937,7 +965,7 @@
{ eArgTypeFunctionOrSymbol, "function-or-symbol", CommandCompletions::eNoCompletion, { NULL, false }, "The name of a function or symbol." },
{ eArgTypeGDBFormat, "gdb-format", CommandCompletions::eNoCompletion, { GDBFormatHelpTextCallback, true }, NULL },
{ eArgTypeIndex, "index", CommandCompletions::eNoCompletion, { NULL, false }, "An index into a list." },
- { eArgTypeLanguage, "language", CommandCompletions::eNoCompletion, { NULL, false }, "A source language name." },
+ { eArgTypeLanguage, "language", CommandCompletions::eNoCompletion, { LanguageTypeHelpTextCallback, true }, NULL },
{ eArgTypeLineNum, "linenum", CommandCompletions::eNoCompletion, { NULL, false }, "Line number in a source file." },
{ eArgTypeLogCategory, "log-category", CommandCompletions::eNoCompletion, { NULL, false }, "The name of a category within a log channel, e.g. all (try \"log list\" to see a list of all channels and their categories." },
{ eArgTypeLogChannel, "log-channel", CommandCompletions::eNoCompletion, { NULL, false }, "The name of a log channel, e.g. process.gdb-remote (try \"log list\" to see a list of all channels and their categories)." },
@@ -949,7 +977,6 @@
{ eArgTypeOffset, "offset", CommandCompletions::eNoCompletion, { NULL, false }, "Help text goes here." },
{ eArgTypeOldPathPrefix, "old-path-prefix", CommandCompletions::eNoCompletion, { NULL, false }, "Help text goes here." },
{ eArgTypeOneLiner, "one-line-command", CommandCompletions::eNoCompletion, { NULL, false }, "A command that is entered as a single line of text." },
- { eArgTypePath, "path", CommandCompletions::eNoCompletion, { NULL, false }, "Help text goes here." },
{ eArgTypePid, "pid", CommandCompletions::eNoCompletion, { NULL, false }, "The process ID number." },
{ eArgTypePlugin, "plugin", CommandCompletions::eNoCompletion, { NULL, false }, "Help text goes here." },
{ eArgTypeProcessName, "process-name", CommandCompletions::eNoCompletion, { NULL, false }, "The name of the process." },
Modified: lldb/branches/windows/source/Interpreter/CommandObjectScript.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/CommandObjectScript.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/CommandObjectScript.cpp (original)
+++ lldb/branches/windows/source/Interpreter/CommandObjectScript.cpp Thu Nov 1 02:04:04 2012
@@ -68,7 +68,7 @@
}
// We can do better when reporting the status of one-liner script execution.
- if (script_interpreter->ExecuteOneLine (command, &result, true))
+ if (script_interpreter->ExecuteOneLine (command, &result))
result.SetStatus(eReturnStatusSuccessFinishNoResult);
else
result.SetStatus(eReturnStatusFailed);
Modified: lldb/branches/windows/source/Interpreter/OptionGroupOutputFile.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/OptionGroupOutputFile.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/OptionGroupOutputFile.cpp (original)
+++ lldb/branches/windows/source/Interpreter/OptionGroupOutputFile.cpp Thu Nov 1 02:04:04 2012
@@ -31,7 +31,7 @@
static OptionDefinition
g_option_table[] =
{
- { LLDB_OPT_SET_1 , false, "outfile", 'o', required_argument, NULL, 0, eArgTypePath , "Specify a path for capturing command output."},
+ { LLDB_OPT_SET_1 , false, "outfile", 'o', required_argument, NULL, 0, eArgTypeFilename , "Specify a path for capturing command output."},
{ LLDB_OPT_SET_1 , false, "append-outfile" , 'A', no_argument, NULL, 0, eArgTypeNone , "Append to the the file specified with '--outfile <path>'."},
};
Modified: lldb/branches/windows/source/Interpreter/OptionValueProperties.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/OptionValueProperties.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/OptionValueProperties.cpp (original)
+++ lldb/branches/windows/source/Interpreter/OptionValueProperties.cpp Thu Nov 1 02:04:04 2012
@@ -741,4 +741,19 @@
}
}
+lldb::OptionValuePropertiesSP
+OptionValueProperties::GetSubProperty (const ExecutionContext *exe_ctx,
+ const ConstString &name)
+{
+ lldb::OptionValueSP option_value_sp(GetValueForKey(exe_ctx, name, false));
+ if (option_value_sp)
+ {
+ OptionValueProperties *ov_properties = option_value_sp->GetAsProperties ();
+ if (ov_properties)
+ return ov_properties->shared_from_this();
+ }
+ return lldb::OptionValuePropertiesSP();
+}
+
+
Modified: lldb/branches/windows/source/Interpreter/ScriptInterpreterNone.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/ScriptInterpreterNone.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/ScriptInterpreterNone.cpp (original)
+++ lldb/branches/windows/source/Interpreter/ScriptInterpreterNone.cpp Thu Nov 1 02:04:04 2012
@@ -26,7 +26,7 @@
}
bool
-ScriptInterpreterNone::ExecuteOneLine (const char *command, CommandReturnObject *, bool enable_io, bool set_lldb_globals)
+ScriptInterpreterNone::ExecuteOneLine (const char *command, CommandReturnObject *, const ExecuteScriptOptions&)
{
m_interpreter.GetDebugger().GetErrorStream().PutCString ("error: there is no embedded script interpreter in this mode.\n");
return false;
Modified: lldb/branches/windows/source/Interpreter/ScriptInterpreterPython.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Interpreter/ScriptInterpreterPython.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Interpreter/ScriptInterpreterPython.cpp (original)
+++ lldb/branches/windows/source/Interpreter/ScriptInterpreterPython.cpp Thu Nov 1 02:04:04 2012
@@ -53,6 +53,7 @@
static ScriptInterpreter::SWIGPythonGetIndexOfChildWithName g_swig_get_index_child = NULL;
static ScriptInterpreter::SWIGPythonCastPyObjectToSBValue g_swig_cast_to_sbvalue = NULL;
static ScriptInterpreter::SWIGPythonUpdateSynthProviderInstance g_swig_update_provider = NULL;
+static ScriptInterpreter::SWIGPythonMightHaveChildrenSynthProviderInstance g_swig_mighthavechildren_provider = NULL;
static ScriptInterpreter::SWIGPythonCallCommand g_swig_call_command = NULL;
static ScriptInterpreter::SWIGPythonCallModuleInit g_swig_call_module_init = NULL;
static ScriptInterpreter::SWIGPythonCreateOSPlugin g_swig_create_os_plugin = NULL;
@@ -99,11 +100,12 @@
);
-extern "C" uint32_t LLDBSwigPython_CalculateNumChildren (void *implementor);
-extern "C" void* LLDBSwigPython_GetChildAtIndex (void *implementor, uint32_t idx);
-extern "C" int LLDBSwigPython_GetIndexOfChildWithName (void *implementor, const char* child_name);
-extern "C" void* LLDBSWIGPython_CastPyObjectToSBValue (void* data);
-extern "C" bool LLDBSwigPython_UpdateSynthProviderInstance (void* implementor);
+extern "C" uint32_t LLDBSwigPython_CalculateNumChildren (void *implementor);
+extern "C" void* LLDBSwigPython_GetChildAtIndex (void *implementor, uint32_t idx);
+extern "C" int LLDBSwigPython_GetIndexOfChildWithName (void *implementor, const char* child_name);
+extern "C" void* LLDBSWIGPython_CastPyObjectToSBValue (void* data);
+extern "C" bool LLDBSwigPython_UpdateSynthProviderInstance (void* implementor);
+extern "C" bool LLDBSwigPython_MightHaveChildrenSynthProviderInstance (void* implementor);
extern "C" bool LLDBSwigPythonCallCommand
(
@@ -197,24 +199,6 @@
DoFreeLock();
}
-class ForceDisableSyntheticChildren
-{
-public:
- ForceDisableSyntheticChildren (Target* target) :
- m_target(target)
- {
- m_old_value = target->GetSuppressSyntheticValue();
- target->SetSuppressSyntheticValue(true);
- }
- ~ForceDisableSyntheticChildren ()
- {
- m_target->SetSuppressSyntheticValue(m_old_value);
- }
-private:
- Target* m_target;
- bool m_old_value;
-};
-
ScriptInterpreterPython::PythonInputReaderManager::PythonInputReaderManager (ScriptInterpreterPython *interpreter) :
m_interpreter(interpreter),
m_debugger_sp(),
@@ -500,8 +484,7 @@
// WARNING: temporary code that loads Cocoa formatters - this should be done on a per-platform basis rather than loading the whole set
// and letting the individual formatter classes exploit APIs to check whether they can/cannot do their task
run_string.Clear();
- //run_string.Printf ("run_one_line (%s, 'from lldb.formatters import *; from lldb.formatters.objc import *; from lldb.formatters.cpp import *')", m_dictionary_name.c_str());
- run_string.Printf ("run_one_line (%s, 'import lldb.runtime.objc, lldb.formatters, lldb.formatters.objc, lldb.formatters.cpp')", m_dictionary_name.c_str());
+ run_string.Printf ("run_one_line (%s, 'import lldb.runtime.objc, lldb.formatters, lldb.formatters.objc, lldb.formatters.cpp, pydoc')", m_dictionary_name.c_str());
PyRun_SimpleString (run_string.GetData());
int new_count = Debugger::TestDebuggerRefCount();
@@ -510,7 +493,7 @@
Debugger::Terminate();
run_string.Clear();
- run_string.Printf ("run_one_line (%s, 'lldb.debugger_unique_id = %llu')", m_dictionary_name.c_str(),
+ run_string.Printf ("run_one_line (%s, 'lldb.debugger_unique_id = %llu; pydoc.pager = pydoc.plainpager')", m_dictionary_name.c_str(),
interpreter.GetDebugger().GetID());
PyRun_SimpleString (run_string.GetData());
@@ -518,6 +501,11 @@
{
m_new_sysout = PyFile_FromFile (m_dbg_stdout, (char *) "", (char *) "w", _check_and_flush);
}
+
+ // get the output file handle from the debugger (if any)
+ File& out_file = interpreter.GetDebugger().GetOutputFile();
+ if (out_file.IsValid())
+ ResetOutputFileHandle(out_file.GetStream());
}
ScriptInterpreterPython::~ScriptInterpreterPython ()
@@ -721,7 +709,7 @@
}
bool
-ScriptInterpreterPython::ExecuteOneLine (const char *command, CommandReturnObject *result, bool enable_io, bool set_lldb_globals)
+ScriptInterpreterPython::ExecuteOneLine (const char *command, CommandReturnObject *result, const ExecuteScriptOptions &options)
{
if (!m_valid_session)
return false;
@@ -732,8 +720,8 @@
// method to pass the command string directly down to Python.
Locker locker(this,
- ScriptInterpreterPython::Locker::AcquireLock | (set_lldb_globals ? ScriptInterpreterPython::Locker::InitSession : 0),
- ScriptInterpreterPython::Locker::FreeAcquiredLock | (set_lldb_globals ? ScriptInterpreterPython::Locker::TearDownSession : 0));
+ ScriptInterpreterPython::Locker::AcquireLock | (options.GetSetLLDBGlobals() ? ScriptInterpreterPython::Locker::InitSession : 0),
+ ScriptInterpreterPython::Locker::FreeAcquiredLock | (options.GetSetLLDBGlobals() ? ScriptInterpreterPython::Locker::TearDownSession : 0));
bool success = false;
@@ -776,7 +764,7 @@
{
PyObject *pvalue = NULL;
{ // scope for PythonInputReaderManager
- PythonInputReaderManager py_input(enable_io ? this : NULL);
+ PythonInputReaderManager py_input(options.GetEnableIO() ? this : NULL);
pvalue = PyObject_CallObject (pfunc, pargs);
}
Py_DECREF (pargs);
@@ -785,7 +773,7 @@
Py_DECREF (pvalue);
success = true;
}
- else if (PyErr_Occurred ())
+ else if (options.GetMaskoutErrors() && PyErr_Occurred ())
{
PyErr_Print();
PyErr_Clear();
@@ -1000,13 +988,12 @@
ScriptInterpreterPython::ExecuteOneLineWithReturn (const char *in_string,
ScriptInterpreter::ScriptReturnType return_type,
void *ret_value,
- bool enable_io,
- bool set_lldb_globals)
+ const ExecuteScriptOptions &options)
{
Locker locker(this,
- ScriptInterpreterPython::Locker::AcquireLock | (set_lldb_globals ? ScriptInterpreterPython::Locker::InitSession : 0),
- ScriptInterpreterPython::Locker::FreeAcquiredLock | (set_lldb_globals ? ScriptInterpreterPython::Locker::TearDownSession : 0));
+ ScriptInterpreterPython::Locker::AcquireLock | (options.GetSetLLDBGlobals() ? ScriptInterpreterPython::Locker::InitSession : 0),
+ ScriptInterpreterPython::Locker::FreeAcquiredLock | (options.GetSetLLDBGlobals() ? ScriptInterpreterPython::Locker::TearDownSession : 0));
PyObject *py_return = NULL;
PyObject *mainmod = PyImport_AddModule ("__main__");
@@ -1038,7 +1025,7 @@
if (in_string != NULL)
{
{ // scope for PythonInputReaderManager
- PythonInputReaderManager py_input(enable_io ? this : NULL);
+ PythonInputReaderManager py_input(options.GetEnableIO() ? this : NULL);
py_return = PyRun_String (in_string, Py_eval_input, globals, locals);
if (py_return == NULL)
{
@@ -1156,23 +1143,26 @@
py_error = PyErr_Occurred();
if (py_error != NULL)
{
- if (PyErr_GivenExceptionMatches (py_error, PyExc_SyntaxError))
- PyErr_Print ();
- PyErr_Clear();
ret_success = false;
+ if (options.GetMaskoutErrors())
+ {
+ if (PyErr_GivenExceptionMatches (py_error, PyExc_SyntaxError))
+ PyErr_Print ();
+ PyErr_Clear();
+ }
}
return ret_success;
}
bool
-ScriptInterpreterPython::ExecuteMultipleLines (const char *in_string, bool enable_io, bool set_lldb_globals)
+ScriptInterpreterPython::ExecuteMultipleLines (const char *in_string, const ExecuteScriptOptions &options)
{
Locker locker(this,
- ScriptInterpreterPython::Locker::AcquireLock | (set_lldb_globals ? ScriptInterpreterPython::Locker::InitSession : 0),
- ScriptInterpreterPython::Locker::FreeAcquiredLock | (set_lldb_globals ? ScriptInterpreterPython::Locker::TearDownSession : 0));
+ ScriptInterpreterPython::Locker::AcquireLock | (options.GetSetLLDBGlobals() ? ScriptInterpreterPython::Locker::InitSession : 0),
+ ScriptInterpreterPython::Locker::FreeAcquiredLock | (options.GetSetLLDBGlobals() ? ScriptInterpreterPython::Locker::TearDownSession : 0));
bool success = false;
PyObject *py_return = NULL;
@@ -1209,7 +1199,7 @@
if (compiled_code)
{
{ // scope for PythonInputReaderManager
- PythonInputReaderManager py_input(enable_io ? this : NULL);
+ PythonInputReaderManager py_input(options.GetEnableIO() ? this : NULL);
py_return = PyEval_EvalCode (compiled_code, globals, locals);
}
if (py_return != NULL)
@@ -1226,10 +1216,13 @@
py_error = PyErr_Occurred ();
if (py_error != NULL)
{
- if (PyErr_GivenExceptionMatches (py_error, PyExc_SyntaxError))
- PyErr_Print ();
- PyErr_Clear();
success = false;
+ if (options.GetMaskoutErrors())
+ {
+ if (PyErr_GivenExceptionMatches (py_error, PyExc_SyntaxError))
+ PyErr_Print ();
+ PyErr_Clear();
+ }
}
return success;
@@ -1567,7 +1560,7 @@
// Convert StringList to one long, newline delimited, const char *.
std::string function_def_string(function_def.CopyList());
- return ExecuteMultipleLines (function_def_string.c_str(), false);
+ return ExecuteMultipleLines (function_def_string.c_str(), ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false));
}
bool
@@ -1933,10 +1926,9 @@
{
Locker py_lock(this);
- ForceDisableSyntheticChildren no_synthetics(target);
- ret_val = g_swig_synthetic_script (class_name,
- python_interpreter->m_dictionary_name.c_str(),
- valobj);
+ ret_val = g_swig_synthetic_script (class_name,
+ python_interpreter->m_dictionary_name.c_str(),
+ valobj);
}
return MakeScriptObject(ret_val);
@@ -2275,8 +2267,7 @@
{
Locker py_lock(this);
- ForceDisableSyntheticChildren no_synthetics(GetCommandInterpreter().GetDebugger().GetSelectedTarget().get());
- ret_val = g_swig_calc_children (implementor);
+ ret_val = g_swig_calc_children (implementor);
}
return ret_val;
@@ -2302,8 +2293,7 @@
{
Locker py_lock(this);
- ForceDisableSyntheticChildren no_synthetics(GetCommandInterpreter().GetDebugger().GetSelectedTarget().get());
- child_ptr = g_swig_get_child_index (implementor,idx);
+ child_ptr = g_swig_get_child_index (implementor,idx);
if (child_ptr != NULL && child_ptr != Py_None)
{
value_sb = (lldb::SBValue*)g_swig_cast_to_sbvalue(child_ptr);
@@ -2339,8 +2329,7 @@
{
Locker py_lock(this);
- ForceDisableSyntheticChildren no_synthetics(GetCommandInterpreter().GetDebugger().GetSelectedTarget().get());
- ret_val = g_swig_get_index_child (implementor, child_name);
+ ret_val = g_swig_get_index_child (implementor, child_name);
}
return ret_val;
@@ -2364,8 +2353,31 @@
{
Locker py_lock(this);
- ForceDisableSyntheticChildren no_synthetics(GetCommandInterpreter().GetDebugger().GetSelectedTarget().get());
- ret_val = g_swig_update_provider (implementor);
+ ret_val = g_swig_update_provider (implementor);
+ }
+
+ return ret_val;
+}
+
+bool
+ScriptInterpreterPython::MightHaveChildrenSynthProviderInstance (const lldb::ScriptInterpreterObjectSP& implementor_sp)
+{
+ bool ret_val = false;
+
+ if (!implementor_sp)
+ return ret_val;
+
+ void* implementor = implementor_sp->GetObject();
+
+ if (!implementor)
+ return ret_val;
+
+ if (!g_swig_mighthavechildren_provider)
+ return ret_val;
+
+ {
+ Locker py_lock(this);
+ ret_val = g_swig_mighthavechildren_provider (implementor);
}
return ret_val;
@@ -2415,7 +2427,7 @@
command_stream.Printf("if not (sys.path.__contains__('%s')):\n sys.path.append('%s');\n\n",
directory,
directory);
- bool syspath_retval = ExecuteMultipleLines(command_stream.GetData(), false, false);
+ bool syspath_retval = ExecuteMultipleLines(command_stream.GetData(), ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false).SetSetLLDBGlobals(false));
if (!syspath_retval)
{
error.SetErrorString("Python sys.path handling failed");
@@ -2438,8 +2450,7 @@
bool was_imported = (ExecuteOneLineWithReturn(command_stream.GetData(),
ScriptInterpreterPython::eScriptReturnTypeInt,
&refcount,
- false,
- false) && refcount > 0);
+ ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false).SetSetLLDBGlobals(false)) && refcount > 0);
if (was_imported == true && can_reload == false)
{
error.SetErrorString("module already imported");
@@ -2449,13 +2460,43 @@
// now actually do the import
command_stream.Clear();
command_stream.Printf("import %s",basename.c_str());
- bool import_retval = ExecuteOneLine(command_stream.GetData(), NULL, false, false);
- if (!import_retval)
+ bool import_retval = ExecuteMultipleLines(command_stream.GetData(), ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false).SetSetLLDBGlobals(false).SetMaskoutErrors(false));
+ PyObject* py_error = PyErr_Occurred(); // per Python docs: "you do not need to Py_DECREF()" the return of this function
+
+ if (py_error || !import_retval) // check for failure of the import
{
- error.SetErrorString("Python import statement failed");
+ if (py_error) // if we have a Python error..
+ {
+ if (PyErr_GivenExceptionMatches (py_error, PyExc_ImportError)) // and it is an ImportError
+ {
+ PyObject *type,*value,*traceback;
+ PyErr_Fetch (&type,&value,&traceback);
+
+ if (value && value != Py_None)
+ error.SetErrorString(PyString_AsString(PyObject_Str(value)));
+ else
+ error.SetErrorString("ImportError raised by imported module");
+
+ Py_XDECREF(type);
+ Py_XDECREF(value);
+ Py_XDECREF(traceback);
+ }
+ else // any other error
+ {
+ error.SetErrorString("Python raised an error while importing module");
+ }
+ }
+ else // we failed but have no error to explain why
+ {
+ error.SetErrorString("unknown error while importing module");
+ }
+
+ // anyway, clear the error indicator and return false
+ PyErr_Clear();
return false;
}
+ // if we are here, everything worked
// call __lldb_init_module(debugger,dict)
if (!g_swig_call_module_init (basename,
m_dictionary_name.c_str(),
@@ -2562,7 +2603,7 @@
if (ExecuteOneLineWithReturn (command.c_str(),
ScriptInterpreter::eScriptReturnTypeCharStrOrNone,
- &result_ptr, false))
+ &result_ptr, ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false) /*.SetSetLLDBGlobals(false)*/))
{
if (result_ptr)
dest.assign(result_ptr);
@@ -2590,6 +2631,7 @@
g_swig_get_index_child = LLDBSwigPython_GetIndexOfChildWithName;
g_swig_cast_to_sbvalue = LLDBSWIGPython_CastPyObjectToSBValue;
g_swig_update_provider = LLDBSwigPython_UpdateSynthProviderInstance;
+ g_swig_mighthavechildren_provider = LLDBSwigPython_MightHaveChildrenSynthProviderInstance;
g_swig_call_command = LLDBSwigPythonCallCommand;
g_swig_call_module_init = LLDBSwigPythonCallModuleInit;
g_swig_create_os_plugin = LLDBSWIGPythonCreateOSPlugin;
Modified: lldb/branches/windows/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp (original)
+++ lldb/branches/windows/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp Thu Nov 1 02:04:04 2012
@@ -628,6 +628,8 @@
// All other registers are the same.
unwind_plan.SetSourceName ("arm at-func-entry default");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
+
return true;
}
@@ -651,9 +653,30 @@
unwind_plan.AppendRow (row);
unwind_plan.SetSourceName ("arm-apple-ios default unwind plan");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
+ unwind_plan.SetUnwindPlanValidAtAllInstructions (eLazyBoolNo);
+
return true;
}
+// ARMv7 on iOS general purpose reg rules:
+// r0-r3 not preserved (used for argument passing)
+// r4-r6 preserved
+// r7 preserved (frame pointer)
+// r8 preserved
+// r9 not preserved (usable as volatile scratch register with iOS 3.x and later)
+// r10-r11 preserved
+// r12 not presrved
+// r13 preserved (stack pointer)
+// r14 not preserved (link register)
+// r15 preserved (pc)
+// cpsr not preserved (different rules for different bits)
+
+// ARMv7 on iOS floating point rules:
+// d0-d7 not preserved (aka s0-s15, q0-q3)
+// d8-d15 preserved (aka s16-s31, q4-q7)
+// d16-d31 not preserved (aka q8-q15)
+
bool
ABIMacOSX_arm::RegisterIsVolatile (const RegisterInfo *reg_info)
{
@@ -691,28 +714,28 @@
switch (name[1])
{
case '0':
- return name[2] == '\0'; // d0
+ return name[2] == '\0'; // d0 is volatile
case '1':
switch (name[2])
{
case '\0':
- return true; // d1;
+ return true; // d1 is volatile
case '6':
case '7':
case '8':
case '9':
- return name[3] == '\0'; // d16 - d19
+ return name[3] == '\0'; // d16 - d19 are volatile
default:
break;
}
break;
-
+
case '2':
switch (name[2])
{
case '\0':
- return true; // d2;
+ return true; // d2 is volatile
case '0':
case '1':
case '2':
@@ -723,7 +746,7 @@
case '7':
case '8':
case '9':
- return name[3] == '\0'; // d20 - d29
+ return name[3] == '\0'; // d20 - d29 are volatile
default:
break;
}
@@ -733,10 +756,62 @@
switch (name[2])
{
case '\0':
- return true; // d3;
+ return true; // d3 is volatile
+ case '0':
+ case '1':
+ return name[3] == '\0'; // d30 - d31 are volatile
+ default:
+ break;
+ }
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ return name[2] == '\0'; // d4 - d7 are volatile
+
+ default:
+ break;
+ }
+ }
+ else if (name[0] == 's')
+ {
+ switch (name[1])
+ {
+ case '0':
+ return name[2] == '\0'; // s0 is volatile
+
+ case '1':
+ switch (name[2])
+ {
+ case '\0':
+ return true; // s1 is volatile
case '0':
case '1':
- return name[3] == '\0'; // d30 - d31
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ return name[3] == '\0'; // s10 - s15 are volatile
+ default:
+ break;
+ }
+ break;
+
+ case '2':
+ switch (name[2])
+ {
+ case '\0':
+ return true; // s2 is volatile
+ default:
+ break;
+ }
+ break;
+
+ case '3':
+ switch (name[2])
+ {
+ case '\0':
+ return true; // s3 is volatile
default:
break;
}
@@ -744,7 +819,9 @@
case '5':
case '6':
case '7':
- return name[2] == '\0'; // d4 - d7
+ case '8':
+ case '9':
+ return name[2] == '\0'; // s4 - s9 are volatile
default:
break;
Modified: lldb/branches/windows/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp (original)
+++ lldb/branches/windows/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp Thu Nov 1 02:04:04 2012
@@ -894,6 +894,7 @@
row->SetRegisterLocationToAtCFAPlusOffset(pc_reg_num, -4, false);
unwind_plan.AppendRow (row);
unwind_plan.SetSourceName ("i386 at-func-entry default");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
return true;
}
@@ -919,6 +920,8 @@
unwind_plan.AppendRow (row);
unwind_plan.SetSourceName ("i386 default unwind plan");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
+ unwind_plan.SetUnwindPlanValidAtAllInstructions (eLazyBoolNo);
return true;
}
Modified: lldb/branches/windows/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp (original)
+++ lldb/branches/windows/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp Thu Nov 1 02:04:04 2012
@@ -1088,6 +1088,7 @@
row->SetRegisterLocationToAtCFAPlusOffset(pc_reg_num, -8, false);
unwind_plan.AppendRow (row);
unwind_plan.SetSourceName ("x86_64 at-func-entry default");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
return true;
}
@@ -1139,6 +1140,8 @@
unwind_plan.AppendRow (row);
unwind_plan.SetSourceName ("x86_64 default unwind plan");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
+ unwind_plan.SetUnwindPlanValidAtAllInstructions (eLazyBoolNo);
return true;
}
Modified: lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp (original)
+++ lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp Thu Nov 1 02:04:04 2012
@@ -39,6 +39,60 @@
using namespace lldb;
using namespace lldb_private;
+static PropertyDefinition
+g_properties[] =
+{
+ { "load-kexts" , OptionValue::eTypeBoolean, true, true, NULL, NULL, "Automatically loads kext images when attaching to a kernel." },
+ { NULL , OptionValue::eTypeInvalid, false, 0 , NULL, NULL, NULL }
+};
+
+enum {
+ ePropertyLoadKexts
+};
+
+class DynamicLoaderDarwinKernelProperties : public Properties
+{
+public:
+
+ static ConstString &
+ GetSettingName ()
+ {
+ static ConstString g_setting_name("darwin-kernel");
+ return g_setting_name;
+ }
+
+ DynamicLoaderDarwinKernelProperties() :
+ Properties ()
+ {
+ m_collection_sp.reset (new OptionValueProperties(GetSettingName()));
+ m_collection_sp->Initialize(g_properties);
+ }
+
+ virtual
+ ~DynamicLoaderDarwinKernelProperties()
+ {
+ }
+
+ bool
+ GetLoadKexts() const
+ {
+ const uint32_t idx = ePropertyLoadKexts;
+ return m_collection_sp->GetPropertyAtIndexAsBoolean (NULL, idx, g_properties[idx].default_uint_value != 0);
+ }
+
+};
+
+typedef STD_SHARED_PTR(DynamicLoaderDarwinKernelProperties) DynamicLoaderDarwinKernelPropertiesSP;
+
+static const DynamicLoaderDarwinKernelPropertiesSP &
+GetGlobalProperties()
+{
+ static DynamicLoaderDarwinKernelPropertiesSP g_settings_sp;
+ if (!g_settings_sp)
+ g_settings_sp.reset (new DynamicLoaderDarwinKernelProperties ());
+ return g_settings_sp;
+}
+
//----------------------------------------------------------------------
// Create an instance of this class. This function is filled into
// the plugin info class that gets handed out by the plugin factory and
@@ -190,7 +244,7 @@
ModuleSP memory_module_sp;
// If this is a kext and the user asked us to ignore kexts, don't try to load it.
- if (kernel_image == false && target.GetDisableKextLoading() == true)
+ if (kernel_image == false && GetGlobalProperties()->GetLoadKexts() == false)
{
return false;
}
@@ -872,7 +926,8 @@
{
PluginManager::RegisterPlugin (GetPluginNameStatic(),
GetPluginDescriptionStatic(),
- CreateInstance);
+ CreateInstance,
+ DebuggerInitialize);
}
void
@@ -881,11 +936,23 @@
PluginManager::UnregisterPlugin (CreateInstance);
}
+void
+DynamicLoaderDarwinKernel::DebuggerInitialize (lldb_private::Debugger &debugger)
+{
+ if (!PluginManager::GetSettingForDynamicLoaderPlugin (debugger, DynamicLoaderDarwinKernelProperties::GetSettingName()))
+ {
+ const bool is_global_setting = true;
+ PluginManager::CreateSettingForDynamicLoaderPlugin (debugger,
+ GetGlobalProperties()->GetValueProperties(),
+ ConstString ("Properties for the DynamicLoaderDarwinKernel plug-in."),
+ is_global_setting);
+ }
+}
const char *
DynamicLoaderDarwinKernel::GetPluginNameStatic()
{
- return "dynamic-loader.macosx-kernel";
+ return "dynamic-loader.darwin-kernel";
}
const char *
Modified: lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h (original)
+++ lldb/branches/windows/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h Thu Nov 1 02:04:04 2012
@@ -47,6 +47,9 @@
static lldb_private::DynamicLoader *
CreateInstance (lldb_private::Process *process, bool force);
+ static void
+ DebuggerInitialize (lldb_private::Debugger &debugger);
+
DynamicLoaderDarwinKernel (lldb_private::Process *process);
virtual
Modified: lldb/branches/windows/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp (original)
+++ lldb/branches/windows/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp Thu Nov 1 02:04:04 2012
@@ -1596,6 +1596,8 @@
// For now, just turn this off.
// bool orig_is_resolver = (current_symbol->GetFlags() & MACH_O_N_SYMBOL_RESOLVER) == MACH_O_N_SYMBOL_RESOLVER;
+ // FIXME: Actually that isn't true, the N_SYMBOL_RESOLVER bit is only valid in .o files. You can't use
+ // the symbol flags to tell whether something is a symbol resolver in a linked image.
bool orig_is_resolver = false;
if (num_original_symbols > 0)
Modified: lldb/branches/windows/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp (original)
+++ lldb/branches/windows/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp Thu Nov 1 02:04:04 2012
@@ -12781,7 +12781,7 @@
{ 0xfea00f00, 0xec000a00, ARMvAll, eEncodingT2, VFPv2v3, eSize32, &EmulateInstructionARM::EmulateVSTM, "vstm{mode}<c> <Rn>{!}, <list>"},
{ 0xff300f00, 0xed000b00, ARMvAll, eEncodingT1, VFPv2_ABOVE, eSize32, &EmulateInstructionARM::EmulateVSTR, "vstr<c> <Dd>, [<Rn>{,#+/-<imm>}]"},
{ 0xff300f00, 0xed000a00, ARMvAll, eEncodingT2, VFPv2v3, eSize32, &EmulateInstructionARM::EmulateVSTR, "vstr<c> <Sd>, [<Rn>{,#+/-<imm>}]"},
- { 0xffb00000, 0xfa000000, ARMvAll, eEncodingT1, AdvancedSIMD, eSize32, &EmulateInstructionARM::EmulateVST1Multiple, "vst1<c>.<size> <list>, [<Rn>{@<align>}], <Rm>"},
+ { 0xffb00000, 0xf9000000, ARMvAll, eEncodingT1, AdvancedSIMD, eSize32, &EmulateInstructionARM::EmulateVST1Multiple, "vst1<c>.<size> <list>, [<Rn>{@<align>}], <Rm>"},
{ 0xffb00300, 0xf9800000, ARMvAll, eEncodingT1, AdvancedSIMD, eSize32, &EmulateInstructionARM::EmulateVST1Single, "vst1<c>.<size> <list>, [<Rn>{@<align>}], <Rm>"},
//----------------------------------------------------------------------
@@ -13613,9 +13613,7 @@
// All other registers are the same.
unwind_plan.SetSourceName ("EmulateInstructionARM");
+ unwind_plan.SetSourcedFromCompiler (eLazyBoolNo);
+ unwind_plan.SetUnwindPlanValidAtAllInstructions (eLazyBoolYes);
return true;
}
-
-
-
-
Modified: lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp (original)
+++ lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp Thu Nov 1 02:04:04 2012
@@ -40,8 +40,16 @@
static const char *pluginDesc = "Apple Objective C Language Runtime - Version 1";
static const char *pluginShort = "language.apple.objc.v1";
+
+AppleObjCRuntimeV1::AppleObjCRuntimeV1(Process *process) :
+ AppleObjCRuntime (process),
+ m_hash_signature (),
+ m_isa_hash_table_ptr (LLDB_INVALID_ADDRESS)
+{
+}
+
bool
-AppleObjCRuntimeV1::GetDynamicTypeAndAddress (ValueObject &in_value,
+AppleObjCRuntimeV1::GetDynamicTypeAndAddress (ValueObject &in_value,
lldb::DynamicValueType use_dynamic,
TypeAndOrName &class_type_or_name,
Address &address)
@@ -70,6 +78,7 @@
return NULL;
}
+
void
AppleObjCRuntimeV1::Initialize()
{
@@ -188,11 +197,8 @@
AppleObjCRuntimeV1::ClassDescriptorV1::ClassDescriptorV1 (ValueObject &isa_pointer)
{
- ObjCISA ptr_value = isa_pointer.GetValueAsUnsigned(0);
-
- lldb::ProcessSP process_sp = isa_pointer.GetProcessSP();
-
- Initialize (ptr_value,process_sp);
+ Initialize (isa_pointer.GetValueAsUnsigned(0),
+ isa_pointer.GetProcessSP());
}
AppleObjCRuntimeV1::ClassDescriptorV1::ClassDescriptorV1 (ObjCISA isa, lldb::ProcessSP process_sp)
@@ -288,62 +294,99 @@
return ObjCLanguageRuntime::ClassDescriptorSP(new AppleObjCRuntimeV1::ClassDescriptorV1(m_parent_isa,process_sp));
}
-bool
-AppleObjCRuntimeV1::UpdateISAToDescriptorMap_Impl()
+lldb::addr_t
+AppleObjCRuntimeV1::GetISAHashTablePointer ()
{
- lldb::LogSP log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
-
- Process *process_ptr = GetProcess();
-
- if (!process_ptr)
- return false;
-
- ProcessSP process_sp = process_ptr->shared_from_this();
-
- ModuleSP objc_module_sp(GetObjCModule());
-
- if (!objc_module_sp)
- return false;
-
- uint32_t isa_count = 0;
-
- static ConstString g_objc_debug_class_hash("_objc_debug_class_hash");
+ if (m_isa_hash_table_ptr == LLDB_INVALID_ADDRESS)
+ {
+ ModuleSP objc_module_sp(GetObjCModule());
+
+ if (!objc_module_sp)
+ return LLDB_INVALID_ADDRESS;
+
+ static ConstString g_objc_debug_class_hash("_objc_debug_class_hash");
+
+ const Symbol *symbol = objc_module_sp->FindFirstSymbolWithNameAndType(g_objc_debug_class_hash, lldb::eSymbolTypeData);
+ if (symbol)
+ {
+ Process *process = GetProcess();
+ if (process)
+ {
+
+ lldb::addr_t objc_debug_class_hash_addr = symbol->GetAddress().GetLoadAddress(&process->GetTarget());
+
+ if (objc_debug_class_hash_addr != LLDB_INVALID_ADDRESS)
+ {
+ Error error;
+ lldb::addr_t objc_debug_class_hash_ptr = process->ReadPointerFromMemory(objc_debug_class_hash_addr, error);
+ if (objc_debug_class_hash_ptr != 0 &&
+ objc_debug_class_hash_ptr != LLDB_INVALID_ADDRESS)
+ {
+ m_isa_hash_table_ptr = objc_debug_class_hash_ptr;
+ }
+ }
+ }
+ }
+ }
+ return m_isa_hash_table_ptr;
+}
+
+void
+AppleObjCRuntimeV1::UpdateISAToDescriptorMapIfNeeded()
+{
+ // TODO: implement HashTableSignature...
+ Process *process = GetProcess();
- const Symbol *symbol = objc_module_sp->FindFirstSymbolWithNameAndType(g_objc_debug_class_hash, lldb::eSymbolTypeData);
- if (symbol)
+ if (process)
{
- lldb::addr_t objc_debug_class_hash_addr = symbol->GetAddress().GetLoadAddress(&process_sp->GetTarget());
+ // Update the process stop ID that indicates the last time we updated the
+ // map, wether it was successful or not.
+ m_isa_to_descriptor_cache_stop_id = process->GetStopID();
+
+
+ lldb::LogSP log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
+
+ ProcessSP process_sp = process->shared_from_this();
- if (objc_debug_class_hash_addr != LLDB_INVALID_ADDRESS)
+ ModuleSP objc_module_sp(GetObjCModule());
+
+ if (!objc_module_sp)
+ return;
+
+ uint32_t isa_count = 0;
+
+ lldb::addr_t hash_table_ptr = GetISAHashTablePointer ();
+ if (hash_table_ptr != LLDB_INVALID_ADDRESS)
{
+ // Read the NXHashTable struct:
+ //
+ // typedef struct {
+ // const NXHashTablePrototype *prototype;
+ // unsigned count;
+ // unsigned nbBuckets;
+ // void *buckets;
+ // const void *info;
+ // } NXHashTable;
+
Error error;
- lldb::addr_t objc_debug_class_hash_ptr = process_sp->ReadPointerFromMemory(objc_debug_class_hash_addr, error);
- if (error.Success() && objc_debug_class_hash_ptr != 0 && objc_debug_class_hash_ptr != LLDB_INVALID_ADDRESS)
+ DataBufferHeap buffer(1024, 0);
+ if (process->ReadMemory(hash_table_ptr, buffer.GetBytes(), 20, error) == 20)
{
- // Read the NXHashTable struct:
- //
- // typedef struct {
- // const NXHashTablePrototype *prototype;
- // unsigned count;
- // unsigned nbBuckets;
- // void *buckets;
- // const void *info;
- // } NXHashTable;
-
- DataBufferHeap buffer(1024, 0);
- if (process_sp->ReadMemory(objc_debug_class_hash_ptr, buffer.GetBytes(), 20, error) == 20)
+ const uint32_t addr_size = m_process->GetAddressByteSize();
+ const ByteOrder byte_order = m_process->GetByteOrder();
+ DataExtractor data (buffer.GetBytes(), buffer.GetByteSize(), byte_order, addr_size);
+ uint32_t offset = addr_size; // Skip prototype
+ const uint32_t count = data.GetU32(&offset);
+ const uint32_t num_buckets = data.GetU32(&offset);
+ const addr_t buckets_ptr = data.GetPointer(&offset);
+ if (m_hash_signature.NeedsUpdate (count, num_buckets, buckets_ptr))
{
- const uint32_t addr_size = m_process->GetAddressByteSize();
- const ByteOrder byte_order = m_process->GetByteOrder();
- DataExtractor data (buffer.GetBytes(), buffer.GetByteSize(), byte_order, addr_size);
- uint32_t offset = addr_size + 4; // Skip prototype
- const uint32_t num_buckets = data.GetU32(&offset);
- const addr_t buckets_ptr = data.GetPointer(&offset);
-
+ m_hash_signature.UpdateSignature (count, num_buckets, buckets_ptr);
+
const uint32_t data_size = num_buckets * 2 * sizeof(uint32_t);
buffer.SetByteSize(data_size);
- if (process_sp->ReadMemory(buckets_ptr, buffer.GetBytes(), data_size, error) == data_size)
+ if (process->ReadMemory(buckets_ptr, buffer.GetBytes(), data_size, error) == data_size)
{
data.SetData(buffer.GetBytes(), buffer.GetByteSize(), byte_order);
offset = 0;
@@ -403,9 +446,11 @@
}
}
}
- }
+ }
+ }
+ else
+ {
+ m_isa_to_descriptor_cache_stop_id = UINT32_MAX;
}
-
- return isa_count > 0;
}
Modified: lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h (original)
+++ lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h Thu Nov 1 02:04:04 2012
@@ -123,17 +123,58 @@
return eAppleObjC_V1;
}
- virtual bool
- UpdateISAToDescriptorMap_Impl();
+ virtual void
+ UpdateISAToDescriptorMapIfNeeded();
protected:
virtual lldb::BreakpointResolverSP
CreateExceptionResolver (Breakpoint *bkpt, bool catch_bp, bool throw_bp);
-
+
+
+ class HashTableSignature
+ {
+ public:
+ HashTableSignature () :
+ m_count (0),
+ m_num_buckets (0),
+ m_buckets_ptr (LLDB_INVALID_ADDRESS)
+ {
+ }
+
+ bool
+ NeedsUpdate (uint32_t count,
+ uint32_t num_buckets,
+ lldb::addr_t buckets_ptr)
+ {
+ return m_count != count ||
+ m_num_buckets != num_buckets ||
+ m_buckets_ptr != buckets_ptr ;
+ }
+
+ void
+ UpdateSignature (uint32_t count,
+ uint32_t num_buckets,
+ lldb::addr_t buckets_ptr)
+ {
+ m_count = count;
+ m_num_buckets = num_buckets;
+ m_buckets_ptr = buckets_ptr;
+ }
+
+ protected:
+ uint32_t m_count;
+ uint32_t m_num_buckets;
+ lldb::addr_t m_buckets_ptr;
+ };
+
+
+ lldb::addr_t
+ GetISAHashTablePointer ();
+
+ HashTableSignature m_hash_signature;
+ lldb::addr_t m_isa_hash_table_ptr;
private:
- AppleObjCRuntimeV1(Process *process) :
- lldb_private::AppleObjCRuntime (process)
- { } // Call CreateInstance instead.
+ AppleObjCRuntimeV1(Process *process);
};
} // namespace lldb_private
Modified: lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp (original)
+++ lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp Thu Nov 1 02:04:04 2012
@@ -106,9 +106,15 @@
AppleObjCRuntimeV2::AppleObjCRuntimeV2 (Process *process,
const ModuleSP &objc_module_sp) :
AppleObjCRuntime (process),
- m_get_class_name_args(LLDB_INVALID_ADDRESS),
- m_get_class_name_args_mutex(Mutex::eMutexTypeNormal),
- m_process_wp (process->shared_from_this())
+ m_get_class_name_function (),
+ m_get_class_name_code (),
+ m_get_class_name_args (LLDB_INVALID_ADDRESS),
+ m_get_class_name_args_mutex (Mutex::eMutexTypeNormal),
+ m_type_vendor_ap (),
+ m_isa_hash_table_ptr (LLDB_INVALID_ADDRESS),
+ m_hash_signature (),
+ m_has_object_getClass (false),
+ m_loaded_objc_opt (false)
{
static const ConstString g_gdb_object_getClass("gdb_object_getClass");
m_has_object_getClass = (objc_module_sp->FindFirstSymbolWithNameAndType(g_gdb_object_getClass, eSymbolTypeCode) != NULL);
@@ -259,152 +265,31 @@
if (CouldHaveDynamicValue (in_value))
{
// First job, pull out the address at 0 offset from the object That will be the ISA pointer.
- Error error;
- const addr_t object_ptr = in_value.GetPointerValue();
- const addr_t isa_addr = m_process->ReadPointerFromMemory (object_ptr, error);
-
- if (error.Fail())
- return false;
-
- address.SetRawAddress(object_ptr);
-
- // First check the cache...
- SymbolContext sc;
- class_type_or_name = LookupInClassNameCache (isa_addr);
-
- if (!class_type_or_name.IsEmpty())
+ ClassDescriptorSP objc_class_sp (GetNonKVOClassDescriptor (in_value));
+ if (objc_class_sp)
{
- if (class_type_or_name.GetTypeSP())
- return true;
- else
- return false;
- }
+ const addr_t object_ptr = in_value.GetPointerValue();
+ address.SetRawAddress(object_ptr);
- // We don't have the object cached, so make sure the class
- // address is readable, otherwise this is not a good object:
- m_process->ReadPointerFromMemory (isa_addr, error);
-
- if (error.Fail())
- return false;
-
- const char *class_name = NULL;
- Address isa_address;
- Target &target = m_process->GetTarget();
- target.GetSectionLoadList().ResolveLoadAddress (isa_addr, isa_address);
-
- if (isa_address.IsValid())
- {
- // If the ISA pointer points to one of the sections in the binary, then see if we can
- // get the class name from the symbols.
-
- SectionSP section_sp (isa_address.GetSection());
-
- if (section_sp)
- {
- // If this points to a section that we know about, then this is
- // some static class or nothing. See if it is in the right section
- // and if its name is the right form.
- ConstString section_name = section_sp->GetName();
- static ConstString g_objc_class_section_name ("__objc_data");
- if (section_name == g_objc_class_section_name)
- {
- isa_address.CalculateSymbolContext(&sc, eSymbolContextModule | eSymbolContextSymbol);
- if (sc.symbol)
- {
- if (sc.symbol->GetType() == eSymbolTypeObjCClass)
- class_name = sc.symbol->GetName().GetCString();
- else if (sc.symbol->GetType() == eSymbolTypeObjCMetaClass)
- {
- // FIXME: Meta-classes can't have dynamic types...
- return false;
- }
- }
- }
- }
- }
-
- char class_buffer[1024];
- if (class_name == NULL && use_dynamic == eDynamicCanRunTarget)
- {
- // If the class address didn't point into the binary, or
- // it points into the right section but there wasn't a symbol
- // there, try to look it up by calling the class method in the target.
-
- ExecutionContext exe_ctx (in_value.GetExecutionContextRef());
-
- Thread *thread_to_use = exe_ctx.GetThreadPtr();
-
- if (thread_to_use == NULL)
- thread_to_use = m_process->GetThreadList().GetSelectedThread().get();
-
- if (thread_to_use == NULL)
- return false;
-
- if (!RunFunctionToFindClassName (object_ptr, thread_to_use, class_buffer, 1024))
- return false;
-
- class_name = class_buffer;
-
- }
-
- if (class_name && class_name[0])
- {
- class_type_or_name.SetName (class_name);
-
- TypeList class_types;
- const bool exact_match = true;
- uint32_t num_matches = target.GetImages().FindTypes (sc,
- class_type_or_name.GetName(),
- exact_match,
- UINT32_MAX,
- class_types);
- if (num_matches == 1)
- {
- class_type_or_name.SetTypeSP (class_types.GetTypeAtIndex(0));
- return true;
- }
+ ConstString class_name (objc_class_sp->GetClassName());
+ class_type_or_name.SetName(class_name);
+ TypeSP type_sp (objc_class_sp->GetType());
+ if (type_sp)
+ class_type_or_name.SetTypeSP (type_sp);
else
{
- for (size_t i = 0; i < num_matches; i++)
+ type_sp = LookupInCompleteClassCache (class_name);
+ if (type_sp)
{
- TypeSP this_type(class_types.GetTypeAtIndex(i));
- if (this_type)
- {
- // Only consider "real" ObjC classes. For now this means avoiding
- // the Type objects that are made up from the OBJC_CLASS_$_<NAME> symbols.
- // we don't want to use them since they are empty and useless.
- if (this_type->IsRealObjCClass())
- {
- // There can only be one type with a given name,
- // so we've just found duplicate definitions, and this
- // one will do as well as any other.
- // We don't consider something to have a dynamic type if
- // it is the same as the static type. So compare against
- // the value we were handed:
-
- clang::ASTContext *in_ast_ctx = in_value.GetClangAST ();
- clang::ASTContext *this_ast_ctx = this_type->GetClangAST ();
- if (in_ast_ctx != this_ast_ctx
- || !ClangASTContext::AreTypesSame (in_ast_ctx,
- in_value.GetClangType(),
- this_type->GetClangFullType()))
- {
- class_type_or_name.SetTypeSP (this_type);
- }
- break;
- }
- }
+ objc_class_sp->SetType (type_sp);
+ class_type_or_name.SetTypeSP (type_sp);
}
}
- AddToClassNameCache (isa_addr, class_type_or_name);
- if (class_type_or_name.GetTypeSP())
+ if (type_sp)
return true;
- else
- return false;
}
- }
-
+ }
return false;
}
@@ -591,32 +476,65 @@
class RemoteNXMapTable
{
public:
- RemoteNXMapTable (lldb::ProcessSP process_sp,
- lldb::addr_t load_addr) :
- m_process_sp(process_sp),
- m_end_iterator(*this, -1),
- m_load_addr(load_addr),
- m_map_pair_size(m_process_sp->GetAddressByteSize() * 2),
- m_NXMAPNOTAKEY(m_process_sp->GetAddressByteSize() == 8 ? UINT64_MAX : UINT32_MAX)
+
+ RemoteNXMapTable () :
+ m_count (0),
+ m_num_buckets_minus_one (0),
+ m_buckets_ptr (LLDB_INVALID_ADDRESS),
+ m_process (NULL),
+ m_end_iterator (*this, -1),
+ m_load_addr (LLDB_INVALID_ADDRESS),
+ m_map_pair_size (0),
+ m_invalid_key (0)
{
- lldb::addr_t cursor = load_addr;
-
+ }
+
+ bool
+ ParseHeader (Process* process, lldb::addr_t load_addr)
+ {
+ m_process = process;
+ m_load_addr = load_addr;
+ m_map_pair_size = m_process->GetAddressByteSize() * 2;
+ m_invalid_key = m_process->GetAddressByteSize() == 8 ? UINT64_MAX : UINT32_MAX;
Error err;
- // const struct +NXMapTablePrototype *prototype;
- m_prototype_ptr = m_process_sp->ReadPointerFromMemory(cursor, err);
- cursor += m_process_sp->GetAddressByteSize();
+ // This currently holds true for all platforms we support, but we might
+ // need to change this to use get the actualy byte size of "unsigned"
+ // from the target AST...
+ const uint32_t unsigned_byte_size = sizeof(uint32_t);
+ // Skip the prototype as we don't need it (const struct +NXMapTablePrototype *prototype)
+
+ bool success = true;
+ if (load_addr == LLDB_INVALID_ADDRESS)
+ success = false;
+ else
+ {
+ lldb::addr_t cursor = load_addr + m_process->GetAddressByteSize();
+
+ // unsigned count;
+ m_count = m_process->ReadUnsignedIntegerFromMemory(cursor, unsigned_byte_size, 0, err);
+ if (m_count)
+ {
+ cursor += unsigned_byte_size;
+
+ // unsigned nbBucketsMinusOne;
+ m_num_buckets_minus_one = m_process->ReadUnsignedIntegerFromMemory(cursor, unsigned_byte_size, 0, err);
+ cursor += unsigned_byte_size;
+
+ // void *buckets;
+ m_buckets_ptr = m_process->ReadPointerFromMemory(cursor, err);
- // unsigned count;
- m_count = m_process_sp->ReadUnsignedIntegerFromMemory(cursor, sizeof(unsigned), 0, err);
- cursor += sizeof(unsigned);
-
- // unsigned nbBucketsMinusOne;
- m_nbBucketsMinusOne = m_process_sp->ReadUnsignedIntegerFromMemory(cursor, sizeof(unsigned), 0, err);
- cursor += sizeof(unsigned);
+ success = m_count > 0 && m_buckets_ptr != LLDB_INVALID_ADDRESS;
+ }
+ }
- // void *buckets;
- m_buckets_ptr = m_process_sp->ReadPointerFromMemory(cursor, err);
+ if (!success)
+ {
+ m_count = 0;
+ m_num_buckets_minus_one = 0;
+ m_buckets_ptr = LLDB_INVALID_ADDRESS;
+ }
+ return success;
}
// const_iterator mimics NXMapState and its code comes from NXInitMapState and NXNextMapState.
@@ -673,22 +591,22 @@
return element();
}
- lldb::addr_t pairs_ptr = m_parent.m_buckets_ptr;
- size_t map_pair_size = m_parent.m_map_pair_size;
- lldb::addr_t pair_ptr = pairs_ptr + (m_index * map_pair_size);
+ lldb::addr_t pairs_ptr = m_parent.m_buckets_ptr;
+ size_t map_pair_size = m_parent.m_map_pair_size;
+ lldb::addr_t pair_ptr = pairs_ptr + (m_index * map_pair_size);
- Error err;
+ Error err;
- lldb::addr_t key = m_parent.m_process_sp->ReadPointerFromMemory(pair_ptr, err);
+ lldb::addr_t key = m_parent.m_process->ReadPointerFromMemory(pair_ptr, err);
if (!err.Success())
return element();
- lldb::addr_t value = m_parent.m_process_sp->ReadPointerFromMemory(pair_ptr + m_parent.m_process_sp->GetAddressByteSize(), err);
+ lldb::addr_t value = m_parent.m_process->ReadPointerFromMemory(pair_ptr + m_parent.m_process->GetAddressByteSize(), err);
if (!err.Success())
return element();
std::string key_string;
- m_parent.m_process_sp->ReadCStringFromMemory(key, key_string, err);
+ m_parent.m_process->ReadCStringFromMemory(key, key_string, err);
if (!err.Success())
return element();
@@ -700,15 +618,15 @@
if (m_index == -1)
return;
- lldb::addr_t pairs_ptr = m_parent.m_buckets_ptr;
- size_t map_pair_size = m_parent.m_map_pair_size;
- lldb::addr_t NXMAPNOTAKEY = m_parent.m_NXMAPNOTAKEY;
- Error err;
+ const lldb::addr_t pairs_ptr = m_parent.m_buckets_ptr;
+ const size_t map_pair_size = m_parent.m_map_pair_size;
+ const lldb::addr_t invalid_key = m_parent.m_invalid_key;
+ Error err;
while (m_index--)
{
lldb::addr_t pair_ptr = pairs_ptr + (m_index * map_pair_size);
- lldb::addr_t key = m_parent.m_process_sp->ReadPointerFromMemory(pair_ptr, err);
+ lldb::addr_t key = m_parent.m_process->ReadPointerFromMemory(pair_ptr, err);
if (!err.Success())
{
@@ -716,7 +634,7 @@
return;
}
- if (key != NXMAPNOTAKEY)
+ if (key != invalid_key)
return;
}
}
@@ -726,7 +644,7 @@
const_iterator begin ()
{
- return const_iterator(*this, m_nbBucketsMinusOne + 1);
+ return const_iterator(*this, m_num_buckets_minus_one + 1);
}
const_iterator end ()
@@ -734,26 +652,80 @@
return m_end_iterator;
}
+ uint32_t
+ GetCount () const
+ {
+ return m_count;
+ }
+
+ uint32_t
+ GetBucketCount () const
+ {
+ return m_num_buckets_minus_one;
+ }
+
+ lldb::addr_t
+ GetBucketDataPointer () const
+ {
+ return m_buckets_ptr;
+ }
+
private:
// contents of _NXMapTable struct
- lldb::addr_t m_prototype_ptr;
- uint32_t m_count;
- uint32_t m_nbBucketsMinusOne;
- lldb::addr_t m_buckets_ptr;
-
- lldb::ProcessSP m_process_sp;
- const_iterator m_end_iterator;
- lldb::addr_t m_load_addr;
- size_t m_map_pair_size;
- lldb::addr_t m_NXMAPNOTAKEY;
+ uint32_t m_count;
+ uint32_t m_num_buckets_minus_one;
+ lldb::addr_t m_buckets_ptr;
+ lldb_private::Process *m_process;
+ const_iterator m_end_iterator;
+ lldb::addr_t m_load_addr;
+ size_t m_map_pair_size;
+ lldb::addr_t m_invalid_key;
};
+
+
+AppleObjCRuntimeV2::HashTableSignature::HashTableSignature() :
+ m_count (0),
+ m_num_buckets (0),
+ m_buckets_ptr (0)
+{
+}
+
+void
+AppleObjCRuntimeV2::HashTableSignature::UpdateSignature (const RemoteNXMapTable &hash_table)
+{
+ m_count = hash_table.GetCount();
+ m_num_buckets = hash_table.GetBucketCount();
+ m_buckets_ptr = hash_table.GetBucketDataPointer();
+}
+
+bool
+AppleObjCRuntimeV2::HashTableSignature::NeedsUpdate (Process *process, AppleObjCRuntimeV2 *runtime, RemoteNXMapTable &hash_table)
+{
+ if (!hash_table.ParseHeader(process, runtime->GetISAHashTablePointer ()))
+ {
+ return false; // Failed to parse the header, no need to update anything
+ }
+
+ // Check with out current signature and return true if the count,
+ // number of buckets or the hash table address changes.
+ if (m_count == hash_table.GetCount() &&
+ m_num_buckets == hash_table.GetBucketCount() &&
+ m_buckets_ptr == hash_table.GetBucketDataPointer())
+ {
+ // Hash table hasn't changed
+ return false;
+ }
+ // Hash table data has changed, we need to update
+ return true;
+}
+
class RemoteObjCOpt
{
public:
- RemoteObjCOpt (lldb::ProcessSP process_sp,
+ RemoteObjCOpt (Process* process,
lldb::addr_t load_addr) :
- m_process_sp(process_sp),
+ m_process(process),
m_end_iterator(*this, -1ll),
m_load_addr(load_addr),
m_classheader_size((sizeof(int32_t) * 2))
@@ -763,9 +735,12 @@
Error err;
// uint32_t version;
- m_version = m_process_sp->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
+ m_version = m_process->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
cursor += sizeof(uint32_t);
+ if (!IsValid())
+ return;
+
// int32_t selopt_offset;
cursor += sizeof(int32_t);
@@ -775,20 +750,17 @@
// int32_t clsopt_offset;
{
Scalar clsopt_offset;
- m_process_sp->ReadScalarIntegerFromMemory(cursor, sizeof(int32_t), /*is_signed*/ true, clsopt_offset, err);
+ m_process->ReadScalarIntegerFromMemory(cursor, sizeof(int32_t), /*is_signed*/ true, clsopt_offset, err);
m_clsopt_offset = clsopt_offset.SInt();
cursor += sizeof(int32_t);
}
- if (m_version != 12)
- return;
-
m_clsopt_ptr = load_addr + m_clsopt_offset;
cursor = m_clsopt_ptr;
// uint32_t capacity;
- m_capacity = m_process_sp->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
+ m_capacity = m_process->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
cursor += sizeof(uint32_t);
// uint32_t occupied;
@@ -798,7 +770,7 @@
cursor += sizeof(uint32_t);
// uint32_t mask;
- m_mask = m_process_sp->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
+ m_mask = m_process->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
cursor += sizeof(uint32_t);
// uint32_t zero;
@@ -828,7 +800,7 @@
cursor += (m_classheader_size * m_capacity);
// uint32_t duplicateCount;
- m_duplicateCount = m_process_sp->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
+ m_duplicateCount = m_process->ReadUnsignedIntegerFromMemory(cursor, sizeof(uint32_t), 0, err);
cursor += sizeof(uint32_t);
// objc_classheader_t duplicateOffsets[duplicateCount];
@@ -906,7 +878,7 @@
}
Scalar clsOffset;
- m_parent.m_process_sp->ReadScalarIntegerFromMemory(classheader_ptr, sizeof(int32_t), /*is_signed*/ true, clsOffset, err);
+ m_parent.m_process->ReadScalarIntegerFromMemory(classheader_ptr, sizeof(int32_t), /*is_signed*/ true, clsOffset, err);
if (!err.Success())
return 0;
@@ -943,7 +915,10 @@
const_iterator begin ()
{
- return const_iterator(*this, (int64_t)m_capacity + (int64_t)m_duplicateCount);
+ if (!IsValid())
+ return m_end_iterator;
+ else
+ return const_iterator(*this, (int64_t)m_capacity + (int64_t)m_duplicateCount);
}
const_iterator end ()
@@ -952,24 +927,27 @@
}
private:
- // contents of objc_opt struct
- uint32_t m_version;
- int32_t m_clsopt_offset;
+ bool IsValid()
+ {
+ return (m_version == 12);
+ }
- lldb::addr_t m_clsopt_ptr;
+ // contents of objc_opt struct
+ uint32_t m_version;
+ int32_t m_clsopt_offset;
+ lldb::addr_t m_clsopt_ptr;
// contents of objc_clsopt struct
- uint32_t m_capacity;
- uint32_t m_mask;
- uint32_t m_duplicateCount;
- lldb::addr_t m_clsOffsets_ptr;
- lldb::addr_t m_duplicateOffsets_ptr;
- int32_t m_zero_offset;
-
- lldb::ProcessSP m_process_sp;
- const_iterator m_end_iterator;
- lldb::addr_t m_load_addr;
- const size_t m_classheader_size;
+ uint32_t m_capacity;
+ uint32_t m_mask;
+ uint32_t m_duplicateCount;
+ lldb::addr_t m_clsOffsets_ptr;
+ lldb::addr_t m_duplicateOffsets_ptr;
+ int32_t m_zero_offset;
+ lldb_private::Process *m_process;
+ const_iterator m_end_iterator;
+ lldb::addr_t m_load_addr;
+ const size_t m_classheader_size;
};
class ClassDescriptorV2 : public ObjCLanguageRuntime::ClassDescriptor
@@ -993,17 +971,17 @@
{
if (!m_name)
{
- lldb::ProcessSP process_sp = m_runtime.GetProcessSP();
+ lldb_private::Process *process = m_runtime.GetProcess();
- if (process_sp)
+ if (process)
{
std::auto_ptr<objc_class_t> objc_class;
std::auto_ptr<class_ro_t> class_ro;
std::auto_ptr<class_rw_t> class_rw;
- if (!Read_objc_class(process_sp, objc_class))
+ if (!Read_objc_class(process, objc_class))
return m_name;
- if (!Read_class_row(process_sp, *objc_class, class_ro, class_rw))
+ if (!Read_class_row(process, *objc_class, class_ro, class_rw))
return m_name;
m_name = ConstString(class_ro->m_name.c_str());
@@ -1015,14 +993,14 @@
virtual ObjCLanguageRuntime::ClassDescriptorSP
GetSuperclass ()
{
- lldb::ProcessSP process_sp = m_runtime.GetProcessSP();
+ lldb_private::Process *process = m_runtime.GetProcess();
- if (!process_sp)
+ if (!process)
return ObjCLanguageRuntime::ClassDescriptorSP();
std::auto_ptr<objc_class_t> objc_class;
- if (!Read_objc_class(process_sp, objc_class))
+ if (!Read_objc_class(process, objc_class))
return ObjCLanguageRuntime::ClassDescriptorSP();
return m_runtime.ObjCLanguageRuntime::GetClassDescriptor(objc_class->m_superclass);
@@ -1043,17 +1021,17 @@
virtual uint64_t
GetInstanceSize ()
{
- lldb::ProcessSP process_sp = m_runtime.GetProcessSP();
+ lldb_private::Process *process = m_runtime.GetProcess();
- if (process_sp)
+ if (process)
{
std::auto_ptr<objc_class_t> objc_class;
std::auto_ptr<class_ro_t> class_ro;
std::auto_ptr<class_rw_t> class_rw;
- if (!Read_objc_class(process_sp, objc_class))
+ if (!Read_objc_class(process, objc_class))
return 0;
- if (!Read_class_row(process_sp, *objc_class, class_ro, class_rw))
+ if (!Read_class_row(process, *objc_class, class_ro, class_rw))
return 0;
return class_ro->m_instanceSize;
@@ -1073,15 +1051,15 @@
std::function <void (const char *, const char *)> const &instance_method_func,
std::function <void (const char *, const char *)> const &class_method_func)
{
- lldb::ProcessSP process_sp = m_runtime.GetProcessSP();
+ lldb_private::Process *process = m_runtime.GetProcess();
std::auto_ptr<objc_class_t> objc_class;
std::auto_ptr<class_ro_t> class_ro;
std::auto_ptr<class_rw_t> class_rw;
- if (!Read_objc_class(process_sp, objc_class))
+ if (!Read_objc_class(process, objc_class))
return 0;
- if (!Read_class_row(process_sp, *objc_class, class_ro, class_rw))
+ if (!Read_class_row(process, *objc_class, class_ro, class_rw))
return 0;
static ConstString NSObject_name("NSObject");
@@ -1094,10 +1072,10 @@
std::auto_ptr <method_list_t> base_method_list;
base_method_list.reset(new method_list_t);
- if (!base_method_list->Read(process_sp, class_ro->m_baseMethods_ptr))
+ if (!base_method_list->Read(process, class_ro->m_baseMethods_ptr))
return false;
- if (base_method_list->m_entsize != method_t::GetSize(process_sp))
+ if (base_method_list->m_entsize != method_t::GetSize(process))
return false;
std::auto_ptr <method_t> method;
@@ -1105,7 +1083,7 @@
for (uint32_t i = 0, e = base_method_list->m_count; i < e; ++i)
{
- method->Read(process_sp, base_method_list->m_first_ptr + (i * base_method_list->m_entsize));
+ method->Read(process, base_method_list->m_first_ptr + (i * base_method_list->m_entsize));
instance_method_func(method->m_name.c_str(), method->m_types.c_str());
}
@@ -1164,9 +1142,9 @@
m_flags = 0;
}
- bool Read(ProcessSP &process_sp, lldb::addr_t addr)
+ bool Read(Process *process, lldb::addr_t addr)
{
- size_t ptr_size = process_sp->GetAddressByteSize();
+ size_t ptr_size = process->GetAddressByteSize();
size_t objc_class_size = ptr_size // uintptr_t isa;
+ ptr_size // Class superclass;
@@ -1177,13 +1155,13 @@
DataBufferHeap objc_class_buf (objc_class_size, '\0');
Error error;
- process_sp->ReadMemory(addr, objc_class_buf.GetBytes(), objc_class_size, error);
+ process->ReadMemory(addr, objc_class_buf.GetBytes(), objc_class_size, error);
if (error.Fail())
{
return false;
}
- DataExtractor extractor(objc_class_buf.GetBytes(), objc_class_size, process_sp->GetByteOrder(), process_sp->GetAddressByteSize());
+ DataExtractor extractor(objc_class_buf.GetBytes(), objc_class_size, process->GetByteOrder(), process->GetAddressByteSize());
uint32_t cursor = 0;
@@ -1217,9 +1195,9 @@
std::string m_name;
- bool Read(ProcessSP &process_sp, lldb::addr_t addr)
+ bool Read(Process *process, lldb::addr_t addr)
{
- size_t ptr_size = process_sp->GetAddressByteSize();
+ size_t ptr_size = process->GetAddressByteSize();
size_t size = sizeof(uint32_t) // uint32_t flags;
+ sizeof(uint32_t) // uint32_t instanceStart;
@@ -1236,13 +1214,13 @@
DataBufferHeap buffer (size, '\0');
Error error;
- process_sp->ReadMemory(addr, buffer.GetBytes(), size, error);
+ process->ReadMemory(addr, buffer.GetBytes(), size, error);
if (error.Fail())
{
return false;
}
- DataExtractor extractor(buffer.GetBytes(), size, process_sp->GetByteOrder(), process_sp->GetAddressByteSize());
+ DataExtractor extractor(buffer.GetBytes(), size, process->GetByteOrder(), process->GetAddressByteSize());
uint32_t cursor = 0;
@@ -1263,7 +1241,7 @@
DataBufferHeap name_buf(1024, '\0');
- process_sp->ReadCStringFromMemory(m_name_ptr, (char*)name_buf.GetBytes(), name_buf.GetByteSize(), error);
+ process->ReadCStringFromMemory(m_name_ptr, (char*)name_buf.GetBytes(), name_buf.GetByteSize(), error);
if (error.Fail())
{
@@ -1291,9 +1269,9 @@
ObjCLanguageRuntime::ObjCISA m_firstSubclass;
ObjCLanguageRuntime::ObjCISA m_nextSiblingClass;
- bool Read(ProcessSP &process_sp, lldb::addr_t addr)
+ bool Read(Process *process, lldb::addr_t addr)
{
- size_t ptr_size = process_sp->GetAddressByteSize();
+ size_t ptr_size = process->GetAddressByteSize();
size_t size = sizeof(uint32_t) // uint32_t flags;
+ sizeof(uint32_t) // uint32_t version;
@@ -1307,13 +1285,13 @@
DataBufferHeap buffer (size, '\0');
Error error;
- process_sp->ReadMemory(addr, buffer.GetBytes(), size, error);
+ process->ReadMemory(addr, buffer.GetBytes(), size, error);
if (error.Fail())
{
return false;
}
- DataExtractor extractor(buffer.GetBytes(), size, process_sp->GetByteOrder(), process_sp->GetAddressByteSize());
+ DataExtractor extractor(buffer.GetBytes(), size, process->GetByteOrder(), process->GetAddressByteSize());
uint32_t cursor = 0;
@@ -1335,7 +1313,7 @@
uint32_t m_count;
lldb::addr_t m_first_ptr;
- bool Read(ProcessSP &process_sp, lldb::addr_t addr)
+ bool Read(Process *process, lldb::addr_t addr)
{
size_t size = sizeof(uint32_t) // uint32_t entsize_NEVER_USE;
+ sizeof(uint32_t); // uint32_t count;
@@ -1343,13 +1321,13 @@
DataBufferHeap buffer (size, '\0');
Error error;
- process_sp->ReadMemory(addr, buffer.GetBytes(), size, error);
+ process->ReadMemory(addr, buffer.GetBytes(), size, error);
if (error.Fail())
{
return false;
}
- DataExtractor extractor(buffer.GetBytes(), size, process_sp->GetByteOrder(), process_sp->GetAddressByteSize());
+ DataExtractor extractor(buffer.GetBytes(), size, process->GetByteOrder(), process->GetAddressByteSize());
uint32_t cursor = 0;
@@ -1370,29 +1348,29 @@
std::string m_name;
std::string m_types;
- static size_t GetSize(ProcessSP &process_sp)
+ static size_t GetSize(Process *process)
{
- size_t ptr_size = process_sp->GetAddressByteSize();
+ size_t ptr_size = process->GetAddressByteSize();
return ptr_size // SEL name;
+ ptr_size // const char *types;
+ ptr_size; // IMP imp;
}
- bool Read(ProcessSP &process_sp, lldb::addr_t addr)
+ bool Read(Process *process, lldb::addr_t addr)
{
- size_t size = GetSize(process_sp);
+ size_t size = GetSize(process);
DataBufferHeap buffer (size, '\0');
Error error;
- process_sp->ReadMemory(addr, buffer.GetBytes(), size, error);
+ process->ReadMemory(addr, buffer.GetBytes(), size, error);
if (error.Fail())
{
return false;
}
- DataExtractor extractor(buffer.GetBytes(), size, process_sp->GetByteOrder(), process_sp->GetAddressByteSize());
+ DataExtractor extractor(buffer.GetBytes(), size, process->GetByteOrder(), process->GetAddressByteSize());
uint32_t cursor = 0;
@@ -1405,21 +1383,21 @@
DataBufferHeap string_buf(buffer_size, 0);
- count = process_sp->ReadCStringFromMemory(m_name_ptr, (char*)string_buf.GetBytes(), buffer_size, error);
+ count = process->ReadCStringFromMemory(m_name_ptr, (char*)string_buf.GetBytes(), buffer_size, error);
m_name.assign((char*)string_buf.GetBytes(), count);
- count = process_sp->ReadCStringFromMemory(m_types_ptr, (char*)string_buf.GetBytes(), buffer_size, error);
+ count = process->ReadCStringFromMemory(m_types_ptr, (char*)string_buf.GetBytes(), buffer_size, error);
m_types.assign((char*)string_buf.GetBytes(), count);
return true;
}
};
- bool Read_objc_class (lldb::ProcessSP process_sp, std::auto_ptr<objc_class_t> &objc_class)
+ bool Read_objc_class (Process* process, std::auto_ptr<objc_class_t> &objc_class)
{
objc_class.reset(new objc_class_t);
- bool ret = objc_class->Read (process_sp, m_objc_class_ptr);
+ bool ret = objc_class->Read (process, m_objc_class_ptr);
if (!ret)
objc_class.reset();
@@ -1427,13 +1405,13 @@
return ret;
}
- bool Read_class_row (lldb::ProcessSP process_sp, const objc_class_t &objc_class, std::auto_ptr<class_ro_t> &class_ro, std::auto_ptr<class_rw_t> &class_rw)
+ bool Read_class_row (Process* process, const objc_class_t &objc_class, std::auto_ptr<class_ro_t> &class_ro, std::auto_ptr<class_rw_t> &class_rw)
{
class_ro.reset();
class_rw.reset();
Error error;
- uint32_t class_row_t_flags = process_sp->ReadUnsignedIntegerFromMemory(objc_class.m_data_ptr, sizeof(uint32_t), 0, error);
+ uint32_t class_row_t_flags = process->ReadUnsignedIntegerFromMemory(objc_class.m_data_ptr, sizeof(uint32_t), 0, error);
if (!error.Success())
return false;
@@ -1441,7 +1419,7 @@
{
class_rw.reset(new class_rw_t);
- if (!class_rw->Read(process_sp, objc_class.m_data_ptr))
+ if (!class_rw->Read(process, objc_class.m_data_ptr))
{
class_rw.reset();
return false;
@@ -1449,7 +1427,7 @@
class_ro.reset(new class_ro_t);
- if (!class_ro->Read(process_sp, class_rw->m_ro_ptr))
+ if (!class_ro->Read(process, class_rw->m_ro_ptr))
{
class_rw.reset();
class_ro.reset();
@@ -1460,7 +1438,7 @@
{
class_ro.reset(new class_ro_t);
- if (!class_ro->Read(process_sp, objc_class.m_data_ptr))
+ if (!class_ro->Read(process, objc_class.m_data_ptr))
{
class_ro.reset();
return false;
@@ -1482,7 +1460,7 @@
{
m_valid = false;
uint64_t value = isa_pointer.GetValueAsUnsigned(0);
- lldb::ProcessSP process_sp = isa_pointer.GetProcessSP();
+ ProcessSP process_sp = isa_pointer.GetProcessSP();
if (process_sp)
m_pointer_size = process_sp->GetAddressByteSize();
else
@@ -1700,54 +1678,78 @@
Error error;
ObjCISA isa = process->ReadPointerFromMemory(isa_pointer, error);
if (isa != LLDB_INVALID_ADDRESS)
+ {
objc_class_sp = ObjCLanguageRuntime::GetClassDescriptor (isa);
+ if (isa && !objc_class_sp)
+ {
+ lldb::LogSP log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
+ if (log)
+ log->Printf("0x%llx: AppleObjCRuntimeV2::GetClassDescriptor() ISA was not in class descriptor cache 0x%llx",
+ isa_pointer,
+ isa);
+ }
+ }
}
}
}
return objc_class_sp;
}
-bool
-AppleObjCRuntimeV2::UpdateISAToDescriptorMap_Impl()
+lldb::addr_t
+AppleObjCRuntimeV2::GetISAHashTablePointer ()
{
- lldb::LogSP log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
+ if (m_isa_hash_table_ptr == LLDB_INVALID_ADDRESS)
+ {
+ Process *process = GetProcess();
- Process *process_ptr = GetProcess();
-
- if (!process_ptr)
- return false;
-
- ProcessSP process_sp (process_ptr->shared_from_this());
-
- ModuleSP objc_module_sp(GetObjCModule());
-
- if (!objc_module_sp)
- return false;
+ ModuleSP objc_module_sp(GetObjCModule());
- uint32_t num_map_table_isas = 0;
- uint32_t num_objc_opt_ro_isas = 0;
+ static ConstString g_gdb_objc_realized_classes("gdb_objc_realized_classes");
+
+ const Symbol *symbol = objc_module_sp->FindFirstSymbolWithNameAndType(g_gdb_objc_realized_classes, lldb::eSymbolTypeData);
+ if (symbol)
+ {
+ lldb::addr_t gdb_objc_realized_classes_ptr = symbol->GetAddress().GetLoadAddress(&process->GetTarget());
+
+ if (gdb_objc_realized_classes_ptr != LLDB_INVALID_ADDRESS)
+ {
+ Error error;
+ m_isa_hash_table_ptr = process->ReadPointerFromMemory(gdb_objc_realized_classes_ptr, error);
+ }
+ }
+ }
+ return m_isa_hash_table_ptr;
+}
- static ConstString g_gdb_objc_realized_classes("gdb_objc_realized_classes");
+void
+AppleObjCRuntimeV2::UpdateISAToDescriptorMapIfNeeded()
+{
+ // Else we need to check with our process to see when the map was updated.
+ Process *process = GetProcess();
- const Symbol *symbol = objc_module_sp->FindFirstSymbolWithNameAndType(g_gdb_objc_realized_classes, lldb::eSymbolTypeData);
- if (symbol)
+ if (process)
{
- lldb::addr_t gdb_objc_realized_classes_ptr = symbol->GetAddress().GetLoadAddress(&process_sp->GetTarget());
+ // Update the process stop ID that indicates the last time we updated the
+ // map, wether it was successful or not.
+ m_isa_to_descriptor_cache_stop_id = process->GetStopID();
- if (gdb_objc_realized_classes_ptr != LLDB_INVALID_ADDRESS)
+ RemoteNXMapTable hash_table;
+
+ if (m_hash_signature.NeedsUpdate(process, this, hash_table))
{
- // <rdar://problem/10763513>
+ // Update the hash table signature
+ m_hash_signature.UpdateSignature (hash_table);
+
+ lldb::LogSP log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
- lldb::addr_t gdb_objc_realized_classes_nxmaptable_ptr;
+ uint32_t num_map_table_isas = 0;
+ uint32_t num_objc_opt_ro_isas = 0;
+
+ ModuleSP objc_module_sp(GetObjCModule());
- Error err;
- gdb_objc_realized_classes_nxmaptable_ptr = process_sp->ReadPointerFromMemory(gdb_objc_realized_classes_ptr, err);
- if (err.Success())
+ if (objc_module_sp)
{
- RemoteNXMapTable gdb_objc_realized_classes(process_sp, gdb_objc_realized_classes_nxmaptable_ptr);
-
- //for (RemoteNXMapTable::element elt : gdb_objc_realized_classes)
- for (RemoteNXMapTable::const_iterator it = gdb_objc_realized_classes.begin(); it != gdb_objc_realized_classes.end(); ++it)
+ for (RemoteNXMapTable::const_iterator it = hash_table.begin(); it != hash_table.end(); ++it)
{
RemoteNXMapTable::element elt = *it;
++num_map_table_isas;
@@ -1762,53 +1764,60 @@
m_isa_to_descriptor_cache[elt.second] = descriptor_sp;
}
- }
- }
- }
-
- ObjectFile *objc_object = objc_module_sp->GetObjectFile();
-
- if (objc_object)
- {
- SectionList *section_list = objc_object->GetSectionList();
-
- if (section_list)
- {
- SectionSP text_segment_sp (section_list->FindSectionByName(ConstString("__TEXT")));
-
- if (text_segment_sp)
- {
- SectionSP objc_opt_section_sp (text_segment_sp->GetChildren().FindSectionByName(ConstString("__objc_opt_ro")));
- if (objc_opt_section_sp)
+ if (!m_loaded_objc_opt)
{
- lldb::addr_t objc_opt_ptr = objc_opt_section_sp->GetLoadBaseAddress(&process_sp->GetTarget());
+ m_loaded_objc_opt = true;
- if (objc_opt_ptr != LLDB_INVALID_ADDRESS)
+ ObjectFile *objc_object = objc_module_sp->GetObjectFile();
+
+ if (objc_object)
{
- RemoteObjCOpt objc_opt(process_sp, objc_opt_ptr);
-
- for (RemoteObjCOpt::const_iterator it = objc_opt.begin(); it != objc_opt.end(); ++it)
+ SectionList *section_list = objc_object->GetSectionList();
+
+ if (section_list)
{
- ObjCLanguageRuntime::ObjCISA objc_isa = *it;
- ++num_objc_opt_ro_isas;
- if (m_isa_to_descriptor_cache.count(objc_isa))
- continue;
-
- ClassDescriptorSP descriptor_sp = ClassDescriptorSP(new ClassDescriptorV2(*this, objc_isa));
-
- if (log && log->GetVerbose())
- log->Printf("AppleObjCRuntimeV2 added (ObjCISA)0x%llx (%s) from static table to isa->descriptor cache", objc_isa, descriptor_sp->GetClassName().AsCString());
+ SectionSP text_segment_sp (section_list->FindSectionByName(ConstString("__TEXT")));
- m_isa_to_descriptor_cache[objc_isa] = descriptor_sp;
+ if (text_segment_sp)
+ {
+ SectionSP objc_opt_section_sp (text_segment_sp->GetChildren().FindSectionByName(ConstString("__objc_opt_ro")));
+
+ if (objc_opt_section_sp)
+ {
+ lldb::addr_t objc_opt_ptr = objc_opt_section_sp->GetLoadBaseAddress(&process->GetTarget());
+
+ if (objc_opt_ptr != LLDB_INVALID_ADDRESS)
+ {
+ RemoteObjCOpt objc_opt(process, objc_opt_ptr);
+
+ for (RemoteObjCOpt::const_iterator it = objc_opt.begin(); it != objc_opt.end(); ++it)
+ {
+ ObjCLanguageRuntime::ObjCISA objc_isa = *it;
+ ++num_objc_opt_ro_isas;
+ if (m_isa_to_descriptor_cache.count(objc_isa))
+ continue;
+
+ ClassDescriptorSP descriptor_sp = ClassDescriptorSP(new ClassDescriptorV2(*this, objc_isa));
+
+ if (log && log->GetVerbose())
+ log->Printf("AppleObjCRuntimeV2 added (ObjCISA)0x%llx (%s) from static table to isa->descriptor cache", objc_isa, descriptor_sp->GetClassName().AsCString());
+
+ m_isa_to_descriptor_cache[objc_isa] = descriptor_sp;
+ }
+ }
+ }
+ }
}
}
}
}
}
}
-
- return num_objc_opt_ro_isas > 0 && num_map_table_isas > 0;
+ else
+ {
+ m_isa_to_descriptor_cache_stop_id = UINT32_MAX;
+ }
}
Modified: lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h (original)
+++ lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h Thu Nov 1 02:04:04 2012
@@ -21,6 +21,8 @@
#include "lldb/Target/ObjCLanguageRuntime.h"
#include "AppleObjCRuntime.h"
+class RemoteNXMapTable;
+
namespace lldb_private {
class AppleObjCRuntimeV2 :
@@ -72,9 +74,9 @@
virtual size_t
GetByteOffsetForIvar (ClangASTType &parent_qual_type, const char *ivar_name);
-
- virtual bool
- UpdateISAToDescriptorMap_Impl();
+
+ virtual void
+ UpdateISAToDescriptorMapIfNeeded();
// none of these are valid ISAs - we use them to infer the type
// of tagged pointers - if we have something meaningful to say
@@ -97,34 +99,50 @@
virtual TypeVendor *
GetTypeVendor();
- lldb::ProcessSP
- GetProcessSP ()
- {
- return m_process_wp.lock();
- }
-
protected:
virtual lldb::BreakpointResolverSP
CreateExceptionResolver (Breakpoint *bkpt, bool catch_bp, bool throw_bp);
private:
+ class HashTableSignature
+ {
+ public:
+ HashTableSignature ();
+
+ bool
+ NeedsUpdate (Process *process,
+ AppleObjCRuntimeV2 *runtime,
+ RemoteNXMapTable &hash_table);
+
+ void
+ UpdateSignature (const RemoteNXMapTable &hash_table);
+ protected:
+ uint32_t m_count;
+ uint32_t m_num_buckets;
+ lldb::addr_t m_buckets_ptr;
+ };
+
AppleObjCRuntimeV2 (Process *process,
const lldb::ModuleSP &objc_module_sp);
bool
IsTaggedPointer(lldb::addr_t ptr);
+ lldb::addr_t
+ GetISAHashTablePointer ();
+
bool RunFunctionToFindClassName (lldb::addr_t class_addr, Thread *thread, char *name_dst, size_t max_name_len);
- bool m_has_object_getClass;
std::auto_ptr<ClangFunction> m_get_class_name_function;
std::auto_ptr<ClangUtilityFunction> m_get_class_name_code;
lldb::addr_t m_get_class_name_args;
Mutex m_get_class_name_args_mutex;
-
std::auto_ptr<TypeVendor> m_type_vendor_ap;
- lldb::ProcessWP m_process_wp; // used by class descriptors to lazily fill their own data
+ lldb::addr_t m_isa_hash_table_ptr;
+ HashTableSignature m_hash_signature;
+ bool m_has_object_getClass;
+ bool m_loaded_objc_opt;
static const char *g_find_class_name_function_name;
static const char *g_find_class_name_function_body;
Modified: lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeVendor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeVendor.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeVendor.cpp (original)
+++ lldb/branches/windows/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeVendor.cpp Thu Nov 1 02:04:04 2012
@@ -192,7 +192,9 @@
&identifier_info,
NULL);
- m_external_source->SetMetadata((uintptr_t)new_iface_decl, (uint64_t)isa);
+ ClangASTMetadata meta_data;
+ meta_data.SetISAPtr((uint64_t) isa);
+ m_external_source->SetMetadata((uintptr_t)new_iface_decl, meta_data);
new_iface_decl->setHasExternalVisibleStorage();
@@ -488,7 +490,10 @@
{
lldb::LogSP log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_EXPRESSIONS)); // FIXME - a more appropriate log channel?
- ObjCLanguageRuntime::ObjCISA objc_isa = (ObjCLanguageRuntime::ObjCISA)m_external_source->GetMetadata((uintptr_t)interface_decl);
+ ClangASTMetadata *metadata = m_external_source->GetMetadata((uintptr_t)interface_decl);
+ ObjCLanguageRuntime::ObjCISA objc_isa = 0;
+ if (metadata)
+ objc_isa = metadata->GetISAPtr();
if (!objc_isa)
return false;
@@ -591,10 +596,16 @@
if (log)
{
ASTDumper dumper(result_iface_type);
+
+ uint64_t isa_value = LLDB_INVALID_ADDRESS;
+ ClangASTMetadata *metadata = m_external_source->GetMetadata((uintptr_t)result_iface_decl);
+ if (metadata)
+ isa_value = metadata->GetISAPtr();
+
log->Printf("AOCTV::FT [%u] Found %s (isa 0x%llx) in the ASTContext",
current_id,
dumper.GetCString(),
- m_external_source->GetMetadata((uintptr_t)result_iface_decl));
+ isa_value);
}
types.push_back(ClangASTType(ast_ctx, result_iface_type.getAsOpaquePtr()));
Modified: lldb/branches/windows/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h (original)
+++ lldb/branches/windows/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h Thu Nov 1 02:04:04 2012
@@ -108,7 +108,6 @@
uint32_t ar_size; // size in bytes
uint32_t ar_file_offset; // file offset in bytes from the beginning of the file of the object data
uint32_t ar_file_size; // length of the object data
- lldb::ObjectFileSP object_file_sp;
typedef std::vector<Object> collection;
typedef collection::iterator iterator;
@@ -177,7 +176,7 @@
//----------------------------------------------------------------------
lldb_private::ArchSpec m_arch;
lldb_private::TimeValue m_time;
- Object::collection m_objects;
+ Object::collection m_objects;
lldb_private::UniqueCStringMap<uint32_t> m_object_name_to_index_map;
};
Modified: lldb/branches/windows/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (original)
+++ lldb/branches/windows/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Thu Nov 1 02:04:04 2012
@@ -260,7 +260,7 @@
{
public:
RegisterContextDarwin_arm_Mach (lldb_private::Thread &thread, const DataExtractor &data) :
- RegisterContextDarwin_arm (thread, 0)
+ RegisterContextDarwin_arm (thread, 0)
{
SetRegisterDataFrom_LC_THREAD (data);
}
@@ -317,6 +317,12 @@
{
return 0;
}
+
+ virtual int
+ DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg)
+ {
+ return -1;
+ }
virtual int
DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
@@ -335,6 +341,12 @@
{
return 0;
}
+
+ virtual int
+ DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg)
+ {
+ return -1;
+ }
};
#define MACHO_NLIST_ARM_SYMBOL_IS_THUMB 0x0008
Modified: lldb/branches/windows/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp (original)
+++ lldb/branches/windows/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp Thu Nov 1 02:04:04 2012
@@ -223,8 +223,6 @@
ParseCOFFOptionalHeader(&offset);
ParseSectionHeaders (offset);
}
- StreamFile s(stdout, false);// REMOVE THIS LINE!!!
- Dump(&s);// REMOVE THIS LINE!!!
return true;
}
}
Modified: lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.cpp (original)
+++ lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.cpp Thu Nov 1 02:04:04 2012
@@ -189,10 +189,6 @@
reg_info.kinds[eRegisterKindLLDB] = reg_num++;
m_register_info_ap->AddRegister (reg_info, reg_name, empty_name, gpr_name);
}
- else
- {
- printf ("not able to find register info for %s\n", reg_name.GetCString()); // REMOVE THIS printf before checkin!!!
- }
}
m_register_info_ap->Finalize();
@@ -272,7 +268,7 @@
}
RegisterContextSP
-OperatingSystemDarwinKernel::CreateRegisterContextForThread (Thread *thread)
+OperatingSystemDarwinKernel::CreateRegisterContextForThread (Thread *thread, lldb::addr_t reg_data_addr)
{
ThreadMemory *generic_thread = (ThreadMemory *)thread;
RegisterContextSP reg_ctx_sp;
Modified: lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.h (original)
+++ lldb/branches/windows/source/Plugins/OperatingSystem/Darwin-Kernel/OperatingSystemDarwinKernel.h Thu Nov 1 02:04:04 2012
@@ -69,7 +69,8 @@
ThreadWasSelected (lldb_private::Thread *thread);
virtual lldb::RegisterContextSP
- CreateRegisterContextForThread (lldb_private::Thread *thread);
+ CreateRegisterContextForThread (lldb_private::Thread *thread,
+ lldb::addr_t reg_data_addr);
virtual lldb::StopInfoSP
CreateThreadStopReason (lldb_private::Thread *thread);
Modified: lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp (original)
+++ lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp Thu Nov 1 02:04:04 2012
@@ -130,6 +130,11 @@
{
if (!m_interpreter || !m_python_object)
return NULL;
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS));
+
+ if (log)
+ log->Printf ("OperatingSystemPython::GetDynamicRegisterInfo() fetching thread register definitions from python for pid %llu", m_process->GetID());
+
auto object_sp = m_interpreter->OSPlugin_QueryForRegisterInfo(m_interpreter->MakeScriptObject(m_python_object));
if (!object_sp)
return NULL;
@@ -169,9 +174,14 @@
bool
OperatingSystemPython::UpdateThreadList (ThreadList &old_thread_list, ThreadList &new_thread_list)
{
-
if (!m_interpreter || !m_python_object)
return NULL;
+
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS));
+
+ if (log)
+ log->Printf ("OperatingSystemPython::UpdateThreadList() fetching thread data from python for pid %llu", m_process->GetID());
+
auto object_sp = m_interpreter->OSPlugin_QueryForThreadsInfo(m_interpreter->MakeScriptObject(m_python_object));
if (!object_sp)
return NULL;
@@ -192,6 +202,7 @@
PythonDataString queue_pystr("queue");
PythonDataString state_pystr("state");
PythonDataString stop_reason_pystr("stop_reason");
+ PythonDataString reg_data_addr_pystr ("register_data_addr");
const uint32_t num_threads = threads_array.GetSize();
for (uint32_t i=0; i<num_threads; ++i)
@@ -199,7 +210,8 @@
PythonDataDictionary thread_dict(threads_array.GetItemAtIndex(i).GetDictionaryObject());
if (thread_dict)
{
- const tid_t tid = thread_dict.GetItemForKeyAsInteger(tid_pystr, LLDB_INVALID_THREAD_ID);
+ const tid_t tid = thread_dict.GetItemForKeyAsInteger (tid_pystr, LLDB_INVALID_THREAD_ID);
+ const addr_t reg_data_addr = thread_dict.GetItemForKeyAsInteger (reg_data_addr_pystr, LLDB_INVALID_ADDRESS);
const char *name = thread_dict.GetItemForKeyAsString (name_pystr);
const char *queue = thread_dict.GetItemForKeyAsString (queue_pystr);
//const char *state = thread_dict.GetItemForKeyAsString (state_pystr);
@@ -210,7 +222,8 @@
thread_sp.reset (new ThreadMemory (*m_process,
tid,
name,
- queue));
+ queue,
+ reg_data_addr));
new_thread_list.AddThread(thread_sp);
}
@@ -229,29 +242,48 @@
}
RegisterContextSP
-OperatingSystemPython::CreateRegisterContextForThread (Thread *thread)
+OperatingSystemPython::CreateRegisterContextForThread (Thread *thread, lldb::addr_t reg_data_addr)
{
RegisterContextSP reg_ctx_sp;
if (!m_interpreter || !m_python_object || !thread)
return RegisterContextSP();
- auto object_sp = m_interpreter->OSPlugin_QueryForRegisterContextData (m_interpreter->MakeScriptObject(m_python_object),
- thread->GetID());
-
- if (!object_sp)
- return RegisterContextSP();
- PythonDataString reg_context_data((PyObject*)object_sp->GetObject());
- if (reg_context_data)
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
+
+ if (reg_data_addr != LLDB_INVALID_ADDRESS)
+ {
+ // The registers data is in contiguous memory, just create the register
+ // context using the address provided
+ if (log)
+ log->Printf ("OperatingSystemPython::CreateRegisterContextForThread (tid = 0x%llx, reg_data_addr = 0x%llx) creating memory register context", thread->GetID(), reg_data_addr);
+ reg_ctx_sp.reset (new RegisterContextMemory (*thread, 0, *GetDynamicRegisterInfo (), reg_data_addr));
+ }
+ else
{
- DataBufferSP data_sp (new DataBufferHeap (reg_context_data.GetString(),
- reg_context_data.GetSize()));
- if (data_sp->GetByteSize())
+ // No register data address is provided, query the python plug-in to let
+ // it make up the data as it sees fit
+ if (log)
+ log->Printf ("OperatingSystemPython::CreateRegisterContextForThread (tid = 0x%llx) fetching register data from python", thread->GetID());
+
+ auto object_sp = m_interpreter->OSPlugin_QueryForRegisterContextData (m_interpreter->MakeScriptObject(m_python_object),
+ thread->GetID());
+
+ if (!object_sp)
+ return RegisterContextSP();
+
+ PythonDataString reg_context_data((PyObject*)object_sp->GetObject());
+ if (reg_context_data)
{
- RegisterContextMemory *reg_ctx_memory = new RegisterContextMemory (*thread, 0, *GetDynamicRegisterInfo (), LLDB_INVALID_ADDRESS);
- if (reg_ctx_memory)
+ DataBufferSP data_sp (new DataBufferHeap (reg_context_data.GetString(),
+ reg_context_data.GetSize()));
+ if (data_sp->GetByteSize())
{
- reg_ctx_sp.reset(reg_ctx_memory);
- reg_ctx_memory->SetAllRegisterData (data_sp);
+ RegisterContextMemory *reg_ctx_memory = new RegisterContextMemory (*thread, 0, *GetDynamicRegisterInfo (), LLDB_INVALID_ADDRESS);
+ if (reg_ctx_memory)
+ {
+ reg_ctx_sp.reset(reg_ctx_memory);
+ reg_ctx_memory->SetAllRegisterData (data_sp);
+ }
}
}
}
Modified: lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h (original)
+++ lldb/branches/windows/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h Thu Nov 1 02:04:04 2012
@@ -72,7 +72,8 @@
ThreadWasSelected (lldb_private::Thread *thread);
virtual lldb::RegisterContextSP
- CreateRegisterContextForThread (lldb_private::Thread *thread);
+ CreateRegisterContextForThread (lldb_private::Thread *thread,
+ lldb::addr_t reg_data_addr);
virtual lldb::StopInfoSP
CreateThreadStopReason (lldb_private::Thread *thread);
Modified: lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp (original)
+++ lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp Thu Nov 1 02:04:04 2012
@@ -207,7 +207,7 @@
NULL,
NULL);
- if (exe_module_sp->GetObjectFile())
+ if (exe_module_sp && exe_module_sp->GetObjectFile())
return error;
exe_module_sp.reset();
}
@@ -412,14 +412,6 @@
}
bool
-PlatformiOSSimulator::GetProcessInfo (lldb::pid_t pid, ProcessInstanceInfo &process_info)
-{
- // TODO: if connected, send a packet to get the remote process info
- process_info.Clear();
- return false;
-}
-
-bool
PlatformiOSSimulator::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
{
if (idx == 0)
Modified: lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.h (original)
+++ lldb/branches/windows/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.h Thu Nov 1 02:04:04 2012
@@ -105,10 +105,6 @@
lldb_private::ProcessInstanceInfoList &process_infos);
virtual bool
- GetProcessInfo (lldb::pid_t pid,
- lldb_private::ProcessInstanceInfo &proc_info);
-
- virtual bool
GetSupportedArchitectureAtIndex (uint32_t idx,
lldb_private::ArchSpec &arch);
Modified: lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp Thu Nov 1 02:04:04 2012
@@ -84,7 +84,7 @@
#endif
void
-CommunicationKDP::MakeRequestPacketHeader (CommandType request_type,
+CommunicationKDP::MakeRequestPacketHeader (CommandType request_type,
PacketStreamType &request_packet,
uint16_t request_length)
{
@@ -525,6 +525,17 @@
return uuid;
}
+bool
+CommunicationKDP::RemoteIsEFI ()
+{
+ if (GetKernelVersion() == NULL)
+ return false;
+ if (strncmp (m_kernel_version.c_str(), "EFI", 3) == 0)
+ return true;
+ else
+ return false;
+}
+
lldb::addr_t
CommunicationKDP::GetLoadAddress ()
{
@@ -656,6 +667,10 @@
else
error.SetErrorString ("kdp read memory failed");
}
+ else
+ {
+ error.SetErrorString ("failed to send packet");
+ }
return 0;
}
@@ -691,9 +706,48 @@
return src_len;
}
}
+ else
+ {
+ error.SetErrorString ("failed to send packet");
+ }
return 0;
}
+bool
+CommunicationKDP::SendRawRequest (uint8_t command_byte,
+ const void *src, // Raw packet payload bytes
+ uint32_t src_len, // Raw packet payload length
+ DataExtractor &reply_packet,
+ Error &error)
+{
+ PacketStreamType request_packet (Stream::eBinary, m_addr_byte_size, m_byte_order);
+ // Size is header + address size + uint32_t length
+ const uint32_t command_length = 8 + src_len;
+ const CommandType command = (CommandType)command_byte;
+ const uint32_t request_sequence_id = m_request_sequence_id;
+ MakeRequestPacketHeader (command, request_packet, command_length);
+ request_packet.PutRawBytes(src, src_len);
+
+ if (SendRequestAndGetReply (command, request_sequence_id, request_packet, reply_packet))
+ {
+ uint32_t offset = 8;
+ uint32_t kdp_error = reply_packet.GetU32 (&offset);
+ if (kdp_error)
+ error.SetErrorStringWithFormat ("request packet 0x%8.8x failed (error %u)", command_byte, kdp_error);
+ else
+ {
+ error.Clear();
+ return true;
+ }
+ }
+ else
+ {
+ error.SetErrorString ("failed to send packet");
+ }
+ return false;
+}
+
+
const char *
CommunicationKDP::GetCommandAsCString (uint8_t command)
{
@@ -1120,6 +1174,10 @@
else
error.SetErrorStringWithFormat("failed to read kdp registers for cpu %u flavor %u", cpu, flavor);
}
+ else
+ {
+ error.SetErrorString ("failed to send packet");
+ }
return 0;
}
@@ -1148,6 +1206,10 @@
return src_len;
error.SetErrorStringWithFormat("failed to read kdp registers for cpu %u flavor %u (error %u)", cpu, flavor, kdp_error);
}
+ else
+ {
+ error.SetErrorString ("failed to send packet");
+ }
return 0;
}
Modified: lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h (original)
+++ lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h Thu Nov 1 02:04:04 2012
@@ -171,6 +171,13 @@
uint32_t src_len,
lldb_private::Error &error);
+ bool
+ SendRawRequest (uint8_t command_byte,
+ const void *src,
+ uint32_t src_len,
+ lldb_private::DataExtractor &reply,
+ lldb_private::Error &error);
+
uint32_t
SendRequestReadRegisters (uint32_t cpu,
uint32_t flavor,
@@ -216,6 +223,9 @@
lldb_private::UUID
GetUUID ();
+ bool
+ RemoteIsEFI ();
+
lldb::addr_t
GetLoadAddress ();
Modified: lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp Thu Nov 1 02:04:04 2012
@@ -22,6 +22,12 @@
#include "lldb/Core/UUID.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/Symbols.h"
+#include "lldb/Interpreter/CommandInterpreter.h"
+#include "lldb/Interpreter/CommandObject.h"
+#include "lldb/Interpreter/CommandObjectMultiword.h"
+#include "lldb/Interpreter/CommandReturnObject.h"
+#include "lldb/Interpreter/OptionGroupString.h"
+#include "lldb/Interpreter/OptionGroupUInt64.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/Target.h"
@@ -32,6 +38,8 @@
#include "ProcessKDPLog.h"
#include "ThreadKDP.h"
#include "Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h"
+#include "Plugins/DynamicLoader/Static/DynamicLoaderStatic.h"
+#include "Utility/StringExtractor.h"
using namespace lldb;
using namespace lldb_private;
@@ -108,7 +116,8 @@
m_async_thread (LLDB_INVALID_HOST_THREAD),
m_destroy_in_process (false),
m_dyld_plugin_name (),
- m_kernel_load_addr (LLDB_INVALID_ADDRESS)
+ m_kernel_load_addr (LLDB_INVALID_ADDRESS),
+ m_command_sp()
{
m_async_broadcaster.SetEventName (eBroadcastBitAsyncThreadShouldExit, "async thread should exit");
m_async_broadcaster.SetEventName (eBroadcastBitAsyncContinue, "async thread continue");
@@ -221,12 +230,17 @@
kernel_arch.SetArchitecture(eArchTypeMachO, cpu, sub);
m_target.SetArchitecture(kernel_arch);
- /* Get the kernel's UUID and load address via kdp-kernelversion packet. */
-
+ /* Get the kernel's UUID and load address via KDP_KERNELVERSION packet. */
+ /* An EFI kdp session has neither UUID nor load address. */
+
UUID kernel_uuid = m_comm.GetUUID ();
addr_t kernel_load_addr = m_comm.GetLoadAddress ();
- if (kernel_load_addr != LLDB_INVALID_ADDRESS)
+ if (m_comm.RemoteIsEFI ())
+ {
+ m_dyld_plugin_name = DynamicLoaderStatic::GetPluginNameStatic();
+ }
+ else if (kernel_load_addr != LLDB_INVALID_ADDRESS)
{
m_kernel_load_addr = kernel_load_addr;
m_dyld_plugin_name = DynamicLoaderDarwinKernel::GetPluginNameStatic();
@@ -829,3 +843,183 @@
}
+class CommandObjectProcessKDPPacketSend : public CommandObjectParsed
+{
+private:
+
+ OptionGroupOptions m_option_group;
+ OptionGroupUInt64 m_command_byte;
+ OptionGroupString m_packet_data;
+
+ virtual Options *
+ GetOptions ()
+ {
+ return &m_option_group;
+ }
+
+
+public:
+ CommandObjectProcessKDPPacketSend(CommandInterpreter &interpreter) :
+ CommandObjectParsed (interpreter,
+ "process plugin packet send",
+ "Send a custom packet through the KDP protocol by specifying the command byte and the packet payload data. A packet will be sent with a correct header and payload, and the raw result bytes will be displayed as a string value. ",
+ NULL),
+ m_option_group (interpreter),
+ m_command_byte(LLDB_OPT_SET_1, true , "command", 'c', 0, eArgTypeNone, "Specify the command byte to use when sending the KDP request packet.", 0),
+ m_packet_data (LLDB_OPT_SET_1, false, "payload", 'p', 0, eArgTypeNone, "Specify packet payload bytes as a hex ASCII string with no spaces or hex prefixes.", NULL)
+ {
+ m_option_group.Append (&m_command_byte, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
+ m_option_group.Append (&m_packet_data , LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
+ m_option_group.Finalize();
+ }
+
+ ~CommandObjectProcessKDPPacketSend ()
+ {
+ }
+
+ bool
+ DoExecute (Args& command, CommandReturnObject &result)
+ {
+ const size_t argc = command.GetArgumentCount();
+ if (argc == 0)
+ {
+ if (!m_command_byte.GetOptionValue().OptionWasSet())
+ {
+ result.AppendError ("the --command option must be set to a valid command byte");
+ result.SetStatus (eReturnStatusFailed);
+ }
+ else
+ {
+ const uint64_t command_byte = m_command_byte.GetOptionValue().GetUInt64Value(0);
+ if (command_byte > 0 && command_byte <= UINT8_MAX)
+ {
+ ProcessKDP *process = (ProcessKDP *)m_interpreter.GetExecutionContext().GetProcessPtr();
+ if (process)
+ {
+ const StateType state = process->GetState();
+
+ if (StateIsStoppedState (state, true))
+ {
+ std::vector<uint8_t> payload_bytes;
+ const char *ascii_hex_bytes_cstr = m_packet_data.GetOptionValue().GetCurrentValue();
+ if (ascii_hex_bytes_cstr && ascii_hex_bytes_cstr[0])
+ {
+ StringExtractor extractor(ascii_hex_bytes_cstr);
+ const size_t ascii_hex_bytes_cstr_len = extractor.GetStringRef().size();
+ if (ascii_hex_bytes_cstr_len & 1)
+ {
+ result.AppendErrorWithFormat ("payload data must contain an even number of ASCII hex characters: '%s'", ascii_hex_bytes_cstr);
+ result.SetStatus (eReturnStatusFailed);
+ return false;
+ }
+ payload_bytes.resize(ascii_hex_bytes_cstr_len/2);
+ if (extractor.GetHexBytes(&payload_bytes[0], payload_bytes.size(), '\xdd') != payload_bytes.size())
+ {
+ result.AppendErrorWithFormat ("payload data must only contain ASCII hex characters (no spaces or hex prefixes): '%s'", ascii_hex_bytes_cstr);
+ result.SetStatus (eReturnStatusFailed);
+ return false;
+ }
+ }
+ Error error;
+ DataExtractor reply;
+ process->GetCommunication().SendRawRequest (command_byte,
+ payload_bytes.empty() ? NULL : payload_bytes.data(),
+ payload_bytes.size(),
+ reply,
+ error);
+
+ if (error.Success())
+ {
+ // Copy the binary bytes into a hex ASCII string for the result
+ StreamString packet;
+ packet.PutBytesAsRawHex8(reply.GetDataStart(),
+ reply.GetByteSize(),
+ lldb::endian::InlHostByteOrder(),
+ lldb::endian::InlHostByteOrder());
+ result.AppendMessage(packet.GetString().c_str());
+ result.SetStatus (eReturnStatusSuccessFinishResult);
+ return true;
+ }
+ else
+ {
+ const char *error_cstr = error.AsCString();
+ if (error_cstr && error_cstr[0])
+ result.AppendError (error_cstr);
+ else
+ result.AppendErrorWithFormat ("unknown error 0x%8.8x", error.GetError());
+ result.SetStatus (eReturnStatusFailed);
+ return false;
+ }
+ }
+ else
+ {
+ result.AppendErrorWithFormat ("process must be stopped in order to send KDP packets, state is %s", StateAsCString (state));
+ result.SetStatus (eReturnStatusFailed);
+ }
+ }
+ else
+ {
+ result.AppendError ("invalid process");
+ result.SetStatus (eReturnStatusFailed);
+ }
+ }
+ else
+ {
+ result.AppendErrorWithFormat ("invalid command byte 0x%llx, valid values are 1 - 255", command_byte);
+ result.SetStatus (eReturnStatusFailed);
+ }
+ }
+ }
+ else
+ {
+ result.AppendErrorWithFormat ("'%s' takes no arguments, only options.", m_cmd_name.c_str());
+ result.SetStatus (eReturnStatusFailed);
+ }
+ return false;
+ }
+};
+
+class CommandObjectProcessKDPPacket : public CommandObjectMultiword
+{
+private:
+
+public:
+ CommandObjectProcessKDPPacket(CommandInterpreter &interpreter) :
+ CommandObjectMultiword (interpreter,
+ "process plugin packet",
+ "Commands that deal with KDP remote packets.",
+ NULL)
+ {
+ LoadSubCommand ("send", CommandObjectSP (new CommandObjectProcessKDPPacketSend (interpreter)));
+ }
+
+ ~CommandObjectProcessKDPPacket ()
+ {
+ }
+};
+
+class CommandObjectMultiwordProcessKDP : public CommandObjectMultiword
+{
+public:
+ CommandObjectMultiwordProcessKDP (CommandInterpreter &interpreter) :
+ CommandObjectMultiword (interpreter,
+ "process plugin",
+ "A set of commands for operating on a ProcessKDP process.",
+ "process plugin <subcommand> [<subcommand-options>]")
+ {
+ LoadSubCommand ("packet", CommandObjectSP (new CommandObjectProcessKDPPacket (interpreter)));
+ }
+
+ ~CommandObjectMultiwordProcessKDP ()
+ {
+ }
+};
+
+CommandObject *
+ProcessKDP::GetPluginCommandObject()
+{
+ if (!m_command_sp)
+ m_command_sp.reset (new CommandObjectMultiwordProcessKDP (GetTarget().GetDebugger().GetCommandInterpreter()));
+ return m_command_sp.get();
+}
+
Modified: lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h (original)
+++ lldb/branches/windows/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h Thu Nov 1 02:04:04 2012
@@ -70,8 +70,8 @@
CanDebug (lldb_private::Target &target,
bool plugin_specified_by_name);
- // virtual uint32_t
- // ListProcessesMatchingName (const char *name, lldb_private::StringList &matches, std::vector<lldb::pid_t> &pids);
+ virtual lldb_private::CommandObject *
+ GetPluginCommandObject();
//------------------------------------------------------------------
// Creating a new process, or attaching to an existing one
@@ -260,6 +260,8 @@
bool m_destroy_in_process;
std::string m_dyld_plugin_name;
lldb::addr_t m_kernel_load_addr;
+ lldb::CommandObjectSP m_command_sp;
+
bool
StartAsyncThread ();
Modified: lldb/branches/windows/source/Plugins/Process/POSIX/POSIXThread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/POSIX/POSIXThread.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/POSIX/POSIXThread.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/POSIX/POSIXThread.cpp Thu Nov 1 02:04:04 2012
@@ -146,11 +146,14 @@
{
SetResumeState(resume_state);
- ClearStackFrames();
+ if (!Thread::WillResume(resume_state))
+ return false;
+
if (m_unwinder_ap.get())
m_unwinder_ap->Clear();
+ Thread::ClearStackFrames();
- return Thread::WillResume(resume_state);
+ return true;
}
bool
Modified: lldb/branches/windows/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/POSIX/RegisterContext_x86_64.cpp Thu Nov 1 02:04:04 2012
@@ -13,6 +13,7 @@
#include "lldb/Core/DataBufferHeap.h"
#include "lldb/Core/DataExtractor.h"
+#include "lldb/Core/RegisterValue.h"
#include "lldb/Core/Scalar.h"
#include "lldb/Target/Thread.h"
#include "lldb/Host/Endian.h"
@@ -500,12 +501,66 @@
}
bool
-RegisterContext_x86_64::ReadRegister(const RegisterInfo *reg_info,
- RegisterValue &value)
+RegisterContext_x86_64::ReadRegister(const RegisterInfo *reg_info, RegisterValue &value)
{
const uint32_t reg = reg_info->kinds[eRegisterKindLLDB];
- ProcessMonitor &monitor = GetMonitor();
- return monitor.ReadRegisterValue(GetRegOffset(reg), GetRegSize(reg), value);
+
+ if (reg >= k_first_fpr && reg <= k_last_fpr) {
+ if (!ReadFPR())
+ return false;
+ }
+ else {
+ ProcessMonitor &monitor = GetMonitor();
+ return monitor.ReadRegisterValue(GetRegOffset(reg),GetRegSize(reg), value);
+ }
+
+ if (reg_info->encoding == eEncodingVector) {
+ // Get the target process whose privileged thread was used for the register read.
+ Process *process = CalculateProcess().get();
+ if (process) {
+ if (reg >= fpu_stmm0 && reg <= fpu_stmm7) {
+ value.SetBytes(user.i387.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size, process->GetByteOrder());
+ return value.GetType() == RegisterValue::eTypeBytes;
+ }
+ if (reg >= fpu_xmm0 && reg <= fpu_xmm15) {
+ value.SetBytes(user.i387.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size, process->GetByteOrder());
+ return value.GetType() == RegisterValue::eTypeBytes;
+ }
+ }
+ return false;
+ }
+
+ // Note that lldb uses slightly different naming conventions from sys/user.h
+ switch (reg)
+ {
+ default:
+ return false;
+ case fpu_dp:
+ value = user.i387.dp;
+ break;
+ case fpu_fcw:
+ value = user.i387.fcw;
+ break;
+ case fpu_fsw:
+ value = user.i387.fsw;
+ break;
+ case fpu_ip:
+ value = user.i387.ip;
+ break;
+ case fpu_fop:
+ value = user.i387.fop;
+ break;
+ case fpu_ftw:
+ value = user.i387.ftw;
+ break;
+ case fpu_mxcsr:
+ value = user.i387.mxcsr;
+ break;
+ case fpu_mxcsrmask:
+ value = user.i387.mxcsrmask;
+ break;
+ }
+ return true;
}
bool
Modified: lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h Thu Nov 1 02:04:04 2012
@@ -288,47 +288,26 @@
return -1;
}
- int
- DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) = 0;
- int
- DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) = 0;
- int
- DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg)
- {
- return -1;
- }
+ virtual int
+ DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg) = 0;
- int
- DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
- {
- return -1;
- }
+ virtual int
+ DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) = 0;
- int
- DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) = 0;
- int
- DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) = 0;
- int
- DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg)
- {
- return -1;
- }
+ virtual int
+ DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg) = 0;
int
ReadRegisterSet (uint32_t set, bool force);
Modified: lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h Thu Nov 1 02:04:04 2012
@@ -230,40 +230,22 @@
// Subclasses override these to do the actual reading.
virtual int
- DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr)
- {
- return -1;
- }
+ DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) = 0;
- int
- DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) = 0;
- int
- DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) = 0;
- int
- DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
- {
- return -1;
- }
+ virtual int
+ DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) = 0;
- int
- DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu)
- {
- return -1;
- }
+ virtual int
+ DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) = 0;
- int
- DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)
- {
- return -1;
- }
+ virtual int
+ DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) = 0;
int
ReadRegisterSet (uint32_t set, bool force);
Modified: lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h Thu Nov 1 02:04:04 2012
@@ -234,40 +234,22 @@
// Subclasses override these to do the actual reading.
virtual int
- DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr)
- {
- return -1;
- }
+ DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) = 0;
virtual int
- DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu)
- {
- return -1;
- }
+ DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) = 0;
virtual int
- DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)
- {
- return -1;
- }
+ DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) = 0;
virtual int
- DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)
- {
- return -1;
- }
+ DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) = 0;
virtual int
- DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu)
- {
- return -1;
- }
+ DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) = 0;
virtual int
- DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)
- {
- return -1;
- }
+ DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) = 0;
int
ReadRegisterSet (uint32_t set, bool force);
Modified: lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.cpp Thu Nov 1 02:04:04 2012
@@ -35,24 +35,24 @@
using namespace lldb;
using namespace lldb_private;
-RegisterContextLLDB::RegisterContextLLDB
+RegisterContextLLDB::RegisterContextLLDB
(
- Thread& thread,
+ Thread& thread,
const SharedPtr &next_frame,
SymbolContext& sym_ctx,
uint32_t frame_number,
UnwindLLDB& unwind_lldb
) :
- RegisterContext (thread, frame_number),
- m_thread(thread),
+ RegisterContext (thread, frame_number),
+ m_thread(thread),
m_fast_unwind_plan_sp (),
m_full_unwind_plan_sp (),
m_all_registers_available(false),
m_frame_type (-1),
m_cfa (LLDB_INVALID_ADDRESS),
- m_start_pc (),
- m_current_pc (),
- m_current_offset (0),
+ m_start_pc (),
+ m_current_pc (),
+ m_current_offset (0),
m_current_offset_backed_up_one (0),
m_sym_ctx(sym_ctx),
m_sym_ctx_valid (false),
@@ -73,8 +73,8 @@
}
// This same code exists over in the GetFullUnwindPlanForFrame() but it may not have been executed yet
- if (IsFrameZero()
- || next_frame->m_frame_type == eSigtrampFrame
+ if (IsFrameZero()
+ || next_frame->m_frame_type == eSigtrampFrame
|| next_frame->m_frame_type == eDebuggerFrame)
{
m_all_registers_available = true;
@@ -90,8 +90,6 @@
ExecutionContext exe_ctx(m_thread.shared_from_this());
RegisterContextSP reg_ctx_sp = m_thread.GetRegisterContext();
- LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
-
if (reg_ctx_sp.get() == NULL)
{
m_frame_type = eNotAValidFrame;
@@ -124,11 +122,7 @@
ModuleSP pc_module_sp (m_current_pc.GetModule());
if (!m_current_pc.IsValid() || !pc_module_sp)
{
- if (log)
- {
- log->Printf("%*sFrame %u using architectural default unwind method",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ UnwindLogMsg ("using architectural default unwind method");
}
// We require that eSymbolContextSymbol be successfully filled in or this context is of no use to us.
@@ -140,7 +134,7 @@
AddressRange addr_range;
m_sym_ctx.GetAddressRange (eSymbolContextFunction | eSymbolContextSymbol, 0, false, addr_range);
-
+
static ConstString g_sigtramp_name ("_sigtramp");
if ((m_sym_ctx.function && m_sym_ctx.function->GetName() == g_sigtramp_name) ||
(m_sym_ctx.symbol && m_sym_ctx.symbol->GetName() == g_sigtramp_name))
@@ -182,8 +176,8 @@
// We've set m_frame_type and m_sym_ctx before these calls.
m_fast_unwind_plan_sp = GetFastUnwindPlanForFrame ();
- m_full_unwind_plan_sp = GetFullUnwindPlanForFrame ();
-
+ m_full_unwind_plan_sp = GetFullUnwindPlanForFrame ();
+
UnwindPlan::RowSP active_row;
int cfa_offset = 0;
int row_register_kind = -1;
@@ -191,12 +185,12 @@
{
active_row = m_full_unwind_plan_sp->GetRowForFunctionOffset (m_current_offset);
row_register_kind = m_full_unwind_plan_sp->GetRegisterKind ();
+ LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
if (active_row.get() && log)
{
StreamString active_row_strm;
active_row->Dump(active_row_strm, m_full_unwind_plan_sp.get(), &m_thread, m_start_pc.GetLoadAddress(exe_ctx.GetTargetPtr()));
- log->Printf("%*sFrame %u active row: %s",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, active_row_strm.GetString().c_str());
+ UnwindLogMsg ("%s", active_row_strm.GetString().c_str());
}
}
@@ -206,7 +200,7 @@
return;
}
-
+
addr_t cfa_regval;
if (!ReadGPRValue (row_register_kind, active_row->GetCFARegister(), cfa_regval))
{
@@ -220,23 +214,11 @@
m_cfa = cfa_regval + cfa_offset;
- if (log)
- {
- log->Printf("%*sFrame %u cfa_regval = 0x%16.16llx (cfa_regval = 0x%16.16llx, cfa_offset = %i)",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- m_cfa, cfa_regval, cfa_offset);
- }
-
- if (log)
- {
- log->Printf("%*sThread %d Frame %u initialized frame current pc is 0x%llx cfa is 0x%llx using %s UnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "",
- m_thread.GetIndexID(),
- m_frame_number,
- (uint64_t) m_current_pc.GetLoadAddress (exe_ctx.GetTargetPtr()),
- (uint64_t) m_cfa,
- m_full_unwind_plan_sp->GetSourceName().GetCString());
- }
+ UnwindLogMsg ("cfa_regval = 0x%16.16llx (cfa_regval = 0x%16.16llx, cfa_offset = %i)", m_cfa, cfa_regval, cfa_offset);
+ UnwindLogMsg ("initialized frame current pc is 0x%llx cfa is 0x%llx using %s UnwindPlan",
+ (uint64_t) m_current_pc.GetLoadAddress (exe_ctx.GetTargetPtr()),
+ (uint64_t) m_cfa,
+ m_full_unwind_plan_sp->GetSourceName().GetCString());
}
// Initialize a RegisterContextLLDB for the non-zeroth frame -- rely on the RegisterContextLLDB "below" it
@@ -246,13 +228,12 @@
RegisterContextLLDB::InitializeNonZerothFrame()
{
LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
-
if (IsFrameZero ())
{
m_frame_type = eNotAValidFrame;
return;
}
-
+
if (!GetNextFrame().get() || !GetNextFrame()->IsValid())
{
m_frame_type = eNotAValidFrame;
@@ -267,27 +248,19 @@
addr_t pc;
if (!ReadGPRValue (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, pc))
{
- if (log)
- {
- log->Printf("%*sFrame %u could not get pc value",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ UnwindLogMsg ("could not get pc value");
m_frame_type = eNotAValidFrame;
return;
}
-
+
if (log)
{
- log->Printf("%*sFrame %u pc = 0x%16.16llx",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, pc);
+ UnwindLogMsg ("pc = 0x%16.16llx", pc);
addr_t reg_val;
if (ReadGPRValue (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_FP, reg_val))
- log->Printf("%*sFrame %u fp = 0x%16.16llx",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, reg_val);
-
+ UnwindLogMsg ("fp = 0x%16.16llx", reg_val);
if (ReadGPRValue (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_SP, reg_val))
- log->Printf("%*sFrame %u sp = 0x%16.16llx",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, reg_val);
+ UnwindLogMsg ("sp = 0x%16.16llx", reg_val);
}
// A pc of 0x0 means it's the end of the stack crawl
@@ -296,11 +269,11 @@
m_frame_type = eNotAValidFrame;
return;
}
-
+
ExecutionContext exe_ctx(m_thread.shared_from_this());
Process *process = exe_ctx.GetProcessPtr();
// Let ABIs fixup code addresses to make sure they are valid. In ARM ABIs
- // this will strip bit zero in case we read a PC from memory or from the LR.
+ // this will strip bit zero in case we read a PC from memory or from the LR.
ABI *abi = process->GetABI().get();
if (abi)
pc = abi->FixCodeAddress(pc);
@@ -312,12 +285,8 @@
ModuleSP pc_module_sp (m_current_pc.GetModule());
if (!m_current_pc.IsValid() || !pc_module_sp)
{
- if (log)
- {
- log->Printf("%*sFrame %u using architectural default unwind method",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
-
+ UnwindLogMsg ("using architectural default unwind method");
+
// Test the pc value to see if we know it's in an unmapped/non-executable region of memory.
uint32_t permissions;
if (process->GetLoadAddressPermissions(pc, permissions)
@@ -329,11 +298,8 @@
// pc and see if we can get any further.
if (GetNextFrame().get() && GetNextFrame()->IsValid() && GetNextFrame()->IsFrameZero())
{
- if (log)
- {
- log->Printf("%*sFrame %u had a pc of 0x%llx which is not in executable memory but on frame 1 -- allowing it once.",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, (uint64_t) pc);
- }
+ UnwindLogMsg ("had a pc of 0x%llx which is not in executable memory but on frame 1 -- allowing it once.",
+ (uint64_t) pc);
m_frame_type = eSkipFrame;
}
else
@@ -365,11 +331,7 @@
int cfa_offset = row->GetCFAOffset();
if (!ReadGPRValue (row_register_kind, cfa_regnum, cfa_regval))
{
- if (log)
- {
- log->Printf("%*sFrame %u failed to get cfa value",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ UnwindLogMsg ("failed to get cfa value");
if (m_frame_type != eSkipFrame) // don't override eSkipFrame
{
m_frame_type = eNormalFrame;
@@ -381,11 +343,7 @@
// A couple of sanity checks..
if (cfa_regval == LLDB_INVALID_ADDRESS || cfa_regval == 0 || cfa_regval == 1)
{
- if (log)
- {
- log->Printf("%*sFrame %u could not find a valid cfa address",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ UnwindLogMsg ("could not find a valid cfa address");
m_frame_type = eNotAValidFrame;
return;
}
@@ -401,21 +359,12 @@
}
else
{
- if (log)
- {
- log->Printf("%*sFrame %u could not find a row for function offset zero",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ UnwindLogMsg ("could not find a row for function offset zero");
m_frame_type = eNotAValidFrame;
return;
}
- if (log)
- {
- log->Printf("%*sFrame %u initialized frame cfa is 0x%llx",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- (uint64_t) m_cfa);
- }
+ UnwindLogMsg ("initialized frame cfa is 0x%llx", (uint64_t) m_cfa);
return;
}
m_frame_type = eNotAValidFrame;
@@ -456,7 +405,7 @@
// value is pointing to the next function, e.g. if a function ends with a CALL instruction.
// FIXME this may need to be an architectural-dependent behavior; if so we'll need to add a member function
// to the ABI plugin and consult that.
- if (decr_pc_and_recompute_addr_range)
+ if (decr_pc_and_recompute_addr_range)
{
Address temporary_pc(m_current_pc);
temporary_pc.SetOffset(m_current_pc.GetOffset() - 1);
@@ -522,11 +471,10 @@
{
StreamString active_row_strm;
active_row->Dump(active_row_strm, m_fast_unwind_plan_sp.get(), &m_thread, m_start_pc.GetLoadAddress(exe_ctx.GetTargetPtr()));
- log->Printf("%*sFrame %u active row: %s",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, active_row_strm.GetString().c_str());
+ UnwindLogMsg ("active row: %s", active_row_strm.GetString().c_str());
}
}
- else
+ else
{
m_full_unwind_plan_sp = GetFullUnwindPlanForFrame ();
if (m_full_unwind_plan_sp && m_full_unwind_plan_sp->PlanValidAtAddress (m_current_pc))
@@ -537,8 +485,7 @@
{
StreamString active_row_strm;
active_row->Dump(active_row_strm, m_full_unwind_plan_sp.get(), &m_thread, m_start_pc.GetLoadAddress(exe_ctx.GetTargetPtr()));
- log->Printf("%*sFrame %u active row: %s",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, active_row_strm.GetString().c_str());
+ UnwindLogMsg ("active row: %s", active_row_strm.GetString().c_str());
}
}
}
@@ -552,12 +499,7 @@
addr_t cfa_regval;
if (!ReadGPRValue (row_register_kind, active_row->GetCFARegister(), cfa_regval))
{
- if (log)
- {
- log->Printf("%*sFrame %u failed to get cfa reg %d/%d",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- row_register_kind, active_row->GetCFARegister());
- }
+ UnwindLogMsg ("failed to get cfa reg %d/%d", row_register_kind, active_row->GetCFARegister());
m_frame_type = eNotAValidFrame;
return;
}
@@ -565,21 +507,12 @@
m_cfa = cfa_regval + cfa_offset;
- if (log)
- {
- log->Printf("%*sFrame %u cfa_regval = 0x%16.16llx (cfa_regval = 0x%16.16llx, cfa_offset = %i)",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- m_cfa, cfa_regval, cfa_offset);
- }
+ UnwindLogMsg ("cfa_regval = 0x%16.16llx (cfa_regval = 0x%16.16llx, cfa_offset = %i)", m_cfa, cfa_regval, cfa_offset);
// A couple of sanity checks..
if (cfa_regval == LLDB_INVALID_ADDRESS || cfa_regval == 0 || cfa_regval == 1)
- {
- if (log)
- {
- log->Printf("%*sFrame %u could not find a valid cfa address",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ {
+ UnwindLogMsg ("could not find a valid cfa address");
m_frame_type = eNotAValidFrame;
return;
}
@@ -606,22 +539,14 @@
}
if (repeating_frames && abi->FunctionCallsChangeCFA())
{
- if (log)
- {
- log->Printf("%*sFrame %u same CFA address as next frame, assuming the unwind is looping - stopping",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number);
- }
+ UnwindLogMsg ("same CFA address as next frame, assuming the unwind is looping - stopping");
m_frame_type = eNotAValidFrame;
return;
}
}
- if (log)
- {
- log->Printf("%*sFrame %u initialized frame current pc is 0x%llx cfa is 0x%llx",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- (uint64_t) m_current_pc.GetLoadAddress (exe_ctx.GetTargetPtr()), (uint64_t) m_cfa);
- }
+ UnwindLogMsg ("initialized frame current pc is 0x%llx cfa is 0x%llx",
+ (uint64_t) m_current_pc.GetLoadAddress (exe_ctx.GetTargetPtr()), (uint64_t) m_cfa);
}
@@ -634,9 +559,9 @@
// Find a fast unwind plan for this frame, if possible.
//
-// On entry to this method,
+// On entry to this method,
//
-// 1. m_frame_type should already be set to eSigtrampFrame/eDebuggerFrame if either of those are correct,
+// 1. m_frame_type should already be set to eSigtrampFrame/eDebuggerFrame if either of those are correct,
// 2. m_sym_ctx should already be filled in, and
// 3. m_current_pc should have the current pc value for this frame
// 4. m_current_offset_backed_up_one should have the current byte offset into the function, maybe backed up by 1, -1 if unknown
@@ -657,7 +582,7 @@
if (!func_unwinders_sp)
return unwind_plan_sp;
- // If we're in _sigtramp(), unwinding past this frame requires special knowledge.
+ // If we're in _sigtramp(), unwinding past this frame requires special knowledge.
if (m_frame_type == eSigtrampFrame || m_frame_type == eDebuggerFrame)
return unwind_plan_sp;
@@ -669,16 +594,15 @@
LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
if (log && log->GetVerbose())
{
- const char *has_fast = "";
if (m_fast_unwind_plan_sp)
- has_fast = ", and has a fast UnwindPlan";
- log->Printf("%*sFrame %u frame%s",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, has_fast);
+ UnwindLogMsgVerbose ("frame, and has a fast UnwindPlan");
+ else
+ UnwindLogMsgVerbose ("frame");
}
m_frame_type = eNormalFrame;
return unwind_plan_sp;
}
- else
+ else
{
unwind_plan_sp.reset();
}
@@ -686,9 +610,9 @@
return unwind_plan_sp;
}
-// On entry to this method,
+// On entry to this method,
//
-// 1. m_frame_type should already be set to eSigtrampFrame/eDebuggerFrame if either of those are correct,
+// 1. m_frame_type should already be set to eSigtrampFrame/eDebuggerFrame if either of those are correct,
// 2. m_sym_ctx should already be filled in, and
// 3. m_current_pc should have the current pc value for this frame
// 4. m_current_offset_backed_up_one should have the current byte offset into the function, maybe backed up by 1, -1 if unknown
@@ -697,7 +621,6 @@
RegisterContextLLDB::GetFullUnwindPlanForFrame ()
{
UnwindPlanSP unwind_plan_sp;
- LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
UnwindPlanSP arch_default_unwind_plan_sp;
ExecutionContext exe_ctx(m_thread.shared_from_this());
Process *process = exe_ctx.GetProcessPtr();
@@ -709,12 +632,12 @@
}
bool behaves_like_zeroth_frame = false;
- if (IsFrameZero ()
+ if (IsFrameZero ()
|| GetNextFrame()->m_frame_type == eSigtrampFrame
|| GetNextFrame()->m_frame_type == eDebuggerFrame)
{
behaves_like_zeroth_frame = true;
- // If this frame behaves like a 0th frame (currently executing or
+ // If this frame behaves like a 0th frame (currently executing or
// interrupted asynchronously), all registers can be retrieved.
m_all_registers_available = true;
}
@@ -723,7 +646,7 @@
// in the zeroth frame, we need to use the "unwind at first instruction" arch default UnwindPlan
// Also, if this Process can report on memory region attributes, any non-executable region means
// we jumped through a bad function pointer - handle the same way as 0x0.
- // Note, if the symbol context has a function for the symbol, then we don't need to do this check.
+ // Note, if the symbol context has a function for the symbol, then we don't need to do this check.
if ((!m_sym_ctx_valid || m_sym_ctx.function == NULL) && behaves_like_zeroth_frame && m_current_pc.IsValid())
{
@@ -784,12 +707,8 @@
unwind_plan_sp = func_unwinders_sp->GetUnwindPlanAtCallSite (m_current_offset_backed_up_one);
if (unwind_plan_sp && unwind_plan_sp->PlanValidAtAddress (m_current_pc))
{
- if (log && log->GetVerbose())
- {
- log->Printf("%*sFrame %u frame uses %s for full UnwindPlan because the DynamicLoader suggested we prefer it",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- unwind_plan_sp->GetSourceName().GetCString());
- }
+ UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan because the DynamicLoader suggested we prefer it",
+ unwind_plan_sp->GetSourceName().GetCString());
return unwind_plan_sp;
}
}
@@ -800,12 +719,7 @@
unwind_plan_sp = func_unwinders_sp->GetUnwindPlanAtNonCallSite (m_thread);
if (unwind_plan_sp && unwind_plan_sp->PlanValidAtAddress (m_current_pc))
{
- if (log && log->GetVerbose())
- {
- log->Printf("%*sFrame %u frame uses %s for full UnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- unwind_plan_sp->GetSourceName().GetCString());
- }
+ UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan", unwind_plan_sp->GetSourceName().GetCString());
return unwind_plan_sp;
}
}
@@ -814,36 +728,21 @@
unwind_plan_sp = func_unwinders_sp->GetUnwindPlanAtCallSite (m_current_offset_backed_up_one);
if (unwind_plan_sp && unwind_plan_sp->PlanValidAtAddress (m_current_pc))
{
- if (log && log->GetVerbose())
- {
- log->Printf("%*sFrame %u frame uses %s for full UnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- unwind_plan_sp->GetSourceName().GetCString());
- }
+ UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan", unwind_plan_sp->GetSourceName().GetCString());
return unwind_plan_sp;
}
-
+
// We'd prefer to use an UnwindPlan intended for call sites when we're at a call site but if we've
// struck out on that, fall back to using the non-call-site assembly inspection UnwindPlan if possible.
unwind_plan_sp = func_unwinders_sp->GetUnwindPlanAtNonCallSite (m_thread);
if (unwind_plan_sp && unwind_plan_sp->PlanValidAtAddress (m_current_pc))
{
- if (log && log->GetVerbose())
- {
- log->Printf("%*sFrame %u frame uses %s for full UnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- unwind_plan_sp->GetSourceName().GetCString());
- }
+ UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan", unwind_plan_sp->GetSourceName().GetCString());
return unwind_plan_sp;
}
// If nothing else, use the architectural default UnwindPlan and hope that does the job.
- if (log && log->GetVerbose())
- {
- log->Printf("%*sFrame %u frame uses %s for full UnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- arch_default_unwind_plan_sp->GetSourceName().GetCString());
- }
+ UnwindLogMsgVerbose ("frame uses %s for full UnwindPlan", arch_default_unwind_plan_sp->GetSourceName().GetCString());
return arch_default_unwind_plan_sp;
}
@@ -885,7 +784,7 @@
}
bool
-RegisterContextLLDB::ReadRegisterValueFromRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
+RegisterContextLLDB::ReadRegisterValueFromRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
const RegisterInfo *reg_info,
RegisterValue &value)
{
@@ -898,11 +797,11 @@
case UnwindLLDB::RegisterLocation::eRegisterInRegister:
{
const RegisterInfo *other_reg_info = GetRegisterInfoAtIndex(regloc.location.register_number);
-
+
if (!other_reg_info)
return false;
-
- if (IsFrameZero ())
+
+ if (IsFrameZero ())
{
success = m_thread.GetRegisterContext()->ReadRegister (other_reg_info, value);
}
@@ -915,7 +814,7 @@
case UnwindLLDB::RegisterLocation::eRegisterValueInferred:
success = value.SetUInt (regloc.location.inferred_value, reg_info->byte_size);
break;
-
+
case UnwindLLDB::RegisterLocation::eRegisterNotSaved:
break;
case UnwindLLDB::RegisterLocation::eRegisterSavedAtHostMemoryLocation:
@@ -923,9 +822,9 @@
break;
case UnwindLLDB::RegisterLocation::eRegisterSavedAtMemoryLocation:
{
- Error error (ReadRegisterValueFromMemory(reg_info,
- regloc.location.target_memory_location,
- reg_info->byte_size,
+ Error error (ReadRegisterValueFromMemory(reg_info,
+ regloc.location.target_memory_location,
+ reg_info->byte_size,
value));
success = error.Success();
}
@@ -938,7 +837,7 @@
}
bool
-RegisterContextLLDB::WriteRegisterValueToRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
+RegisterContextLLDB::WriteRegisterValueToRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
const RegisterInfo *reg_info,
const RegisterValue &value)
{
@@ -946,13 +845,13 @@
return false;
bool success = false;
-
+
switch (regloc.type)
{
case UnwindLLDB::RegisterLocation::eRegisterInRegister:
{
const RegisterInfo *other_reg_info = GetRegisterInfoAtIndex(regloc.location.register_number);
- if (IsFrameZero ())
+ if (IsFrameZero ())
{
success = m_thread.GetRegisterContext()->WriteRegister (other_reg_info, value);
}
@@ -970,9 +869,9 @@
break;
case UnwindLLDB::RegisterLocation::eRegisterSavedAtMemoryLocation:
{
- Error error (WriteRegisterValueToMemory (reg_info,
- regloc.location.target_memory_location,
- reg_info->byte_size,
+ Error error (WriteRegisterValueToMemory (reg_info,
+ regloc.location.target_memory_location,
+ reg_info->byte_size,
value));
success = error.Success();
}
@@ -994,7 +893,7 @@
// A skip frame is a bogus frame on the stack -- but one where we're likely to find a real frame farther
// up the stack if we keep looking. It's always the second frame in an unwind (i.e. the first frame after
// frame zero) where unwinding can be the trickiest. Ideally we'll mark up this frame in some way so the
-// user knows we're displaying bad data and we may have skipped one frame of their real program in the
+// user knows we're displaying bad data and we may have skipped one frame of their real program in the
// process of getting back on track.
bool
@@ -1006,10 +905,8 @@
// Answer the question: Where did THIS frame save the CALLER frame ("previous" frame)'s register value?
bool
-RegisterContextLLDB::SavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc, bool check_next_frame)
+RegisterContextLLDB::SavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc)
{
- LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
-
// Have we already found this register location?
if (!m_registers.empty())
{
@@ -1022,11 +919,19 @@
}
}
+ static uint32_t sp_regnum = LLDB_INVALID_REGNUM;
+ static uint32_t pc_regnum = LLDB_INVALID_REGNUM;
+ static bool generic_registers_initialized = false;
+ if (!generic_registers_initialized)
+ {
+ m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_SP, eRegisterKindLLDB, sp_regnum);
+ m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, eRegisterKindLLDB, pc_regnum);
+ generic_registers_initialized = true;
+ }
+
// Are we looking for the CALLER's stack pointer? The stack pointer is defined to be the same as THIS frame's
// CFA so just return the CFA value. This is true on x86-32/x86-64 at least.
- uint32_t sp_regnum;
- if (m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_SP, eRegisterKindLLDB, sp_regnum)
- && sp_regnum == lldb_regnum)
+ if (sp_regnum != LLDB_INVALID_REGNUM && sp_regnum == lldb_regnum)
{
// make sure we won't lose precision copying an addr_t (m_cfa) into a uint64_t (.inferred_value)
assert (sizeof (addr_t) <= sizeof (uint64_t));
@@ -1036,12 +941,6 @@
return true;
}
- uint32_t pc_regnum;
- if (!m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, eRegisterKindLLDB, pc_regnum))
- {
- pc_regnum = LLDB_INVALID_REGNUM;
- }
-
// Look through the available UnwindPlans for the register location.
UnwindPlan::Row::RegisterLocation unwindplan_regloc;
@@ -1055,22 +954,13 @@
uint32_t row_regnum;
if (!m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindLLDB, lldb_regnum, unwindplan_registerkind, row_regnum))
{
- if (log)
- {
- log->Printf("%*sFrame %u could not convert lldb regnum %d into %d RegisterKind reg numbering scheme",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum, (int) unwindplan_registerkind);
- }
+ UnwindLogMsg ("could not convert lldb regnum %d into %d RegisterKind reg numbering scheme",
+ lldb_regnum, (int) unwindplan_registerkind);
return false;
}
if (active_row->GetRegisterInfo (row_regnum, unwindplan_regloc))
{
- if (log)
- {
- log->Printf("%*sFrame %u supplying caller's saved reg %d's location using FastUnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("supplying caller's saved reg %d's location using FastUnwindPlan", lldb_regnum);
have_unwindplan_regloc = true;
}
}
@@ -1092,27 +982,18 @@
if (lldb_regnum == pc_regnum && m_full_unwind_plan_sp->GetReturnAddressRegister() != LLDB_INVALID_REGNUM)
{
row_regnum = m_full_unwind_plan_sp->GetReturnAddressRegister();
- if (log)
- {
- log->Printf("%*sFrame %u requested caller's saved PC but this UnwindPlan uses a RA reg; getting reg %d instead",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number, row_regnum);
- }
+ UnwindLogMsg ("requested caller's saved PC but this UnwindPlan uses a RA reg; getting reg %d instead",
+ row_regnum);
}
else
{
if (!m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindLLDB, lldb_regnum, unwindplan_registerkind, row_regnum))
{
- if (log)
- {
- if (unwindplan_registerkind == eRegisterKindGeneric)
- log->Printf("%*sFrame %u could not convert lldb regnum %d into eRegisterKindGeneric reg numbering scheme",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- else
- log->Printf("%*sFrame %u could not convert lldb regnum %d into %d RegisterKind reg numbering scheme",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum, (int) unwindplan_registerkind);
- }
+ if (unwindplan_registerkind == eRegisterKindGeneric)
+ UnwindLogMsg ("could not convert lldb regnum %d into eRegisterKindGeneric reg numbering scheme", lldb_regnum);
+ else
+ UnwindLogMsg ("could not convert lldb regnum %d into %d RegisterKind reg numbering scheme",
+ lldb_regnum, (int) unwindplan_registerkind);
return false;
}
}
@@ -1120,22 +1001,62 @@
if (active_row->GetRegisterInfo (row_regnum, unwindplan_regloc))
{
have_unwindplan_regloc = true;
- if (log)
- {
- log->Printf("%*sFrame %u supplying caller's saved reg %d's location using %s UnwindPlan",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum, m_full_unwind_plan_sp->GetSourceName().GetCString());
+ UnwindLogMsg ("supplying caller's saved reg %d's location using %s UnwindPlan", lldb_regnum,
+ m_full_unwind_plan_sp->GetSourceName().GetCString());
+ }
+
+ // If this architecture stores the return address in a register (it defines a Return Address register)
+ // and we're on a non-zero stack frame and the Full UnwindPlan says that the pc is stored in the
+ // RA registers (e.g. lr on arm), then we know that the full unwindplan is not trustworthy -- this
+ // is an impossible situation and the instruction emulation code has likely been misled.
+ // If this stack frame meets those criteria, we need to throw away the Full UnwindPlan that the
+ // instruction emulation came up with and fall back to the architecture's Default UnwindPlan so
+ // the stack walk can get past this point.
+
+ // Special note: If the Full UnwindPlan was generated from the compiler, don't second-guess it
+ // when we're at a call site location.
+
+ // arch_default_ra_regnum is the return address register # in the Full UnwindPlan register numbering
+ uint32_t arch_default_ra_regnum = LLDB_INVALID_REGNUM;
+ if (m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_RA, unwindplan_registerkind, arch_default_ra_regnum)
+ && arch_default_ra_regnum != LLDB_INVALID_REGNUM
+ && pc_regnum != LLDB_INVALID_REGNUM
+ && pc_regnum == lldb_regnum
+ && unwindplan_regloc.IsInOtherRegister()
+ && unwindplan_regloc.GetRegisterNumber() == arch_default_ra_regnum
+ && m_full_unwind_plan_sp->GetSourcedFromCompiler() != eLazyBoolYes
+ && !m_all_registers_available)
+ {
+ UnwindLogMsg ("%s UnwindPlan tried to restore the pc from the link register but this is a non-zero frame",
+ m_full_unwind_plan_sp->GetSourceName().GetCString());
+
+ // Throw away the full unwindplan; install the arch default unwindplan
+ InvalidateFullUnwindPlan();
+
+ // Now re-fetch the pc value we're searching for
+ uint32_t arch_default_pc_reg = LLDB_INVALID_REGNUM;
+ UnwindPlan::RowSP active_row = m_full_unwind_plan_sp->GetRowForFunctionOffset (m_current_offset);
+ if (m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, m_full_unwind_plan_sp->GetRegisterKind(), arch_default_pc_reg)
+ && arch_default_pc_reg != LLDB_INVALID_REGNUM
+ && active_row
+ && active_row->GetRegisterInfo (arch_default_pc_reg, unwindplan_regloc))
+ {
+ have_unwindplan_regloc = true;
+ }
+ else
+ {
+ have_unwindplan_regloc = false;
}
}
}
}
-
-
+
+
ExecutionContext exe_ctx(m_thread.shared_from_this());
Process *process = exe_ctx.GetProcessPtr();
if (have_unwindplan_regloc == false)
{
- // If a volatile register is being requested, we don't want to forward the next frame's register contents
+ // If a volatile register is being requested, we don't want to forward the next frame's register contents
// up the stack -- the register is not retrievable at this frame.
ABI *abi = process ? process->GetABI().get() : NULL;
if (abi)
@@ -1143,14 +1064,9 @@
const RegisterInfo *reg_info = GetRegisterInfoAtIndex(lldb_regnum);
if (reg_info && abi->RegisterIsVolatile (reg_info))
{
- if (log && log->GetVerbose ())
- {
- log->Printf("%*sFrame %u did not supply reg location for %d because it is volatile",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("did not supply reg location for %d because it is volatile", lldb_regnum);
return false;
- }
+ }
}
if (IsFrameZero ())
@@ -1164,16 +1080,7 @@
return true;
}
else
- {
- if (check_next_frame)
- return m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1);
- }
- if (log)
- {
- log->Printf("%*sFrame %u could not supply caller's reg %d location",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("could not supply caller's reg %d location", lldb_regnum);
return false;
}
@@ -1183,12 +1090,7 @@
lldb_private::UnwindLLDB::RegisterLocation new_regloc;
new_regloc.type = UnwindLLDB::RegisterLocation::eRegisterNotSaved;
m_registers[lldb_regnum] = new_regloc;
- if (log)
- {
- log->Printf("%*sFrame %u could not supply caller's reg %d location",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("could not supply caller's reg %d location", lldb_regnum);
return false;
}
@@ -1196,20 +1098,12 @@
{
if (IsFrameZero ())
{
- if (log)
- {
- log->Printf("%*sFrame %u could not supply caller's reg %d location",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("could not supply caller's reg %d location", lldb_regnum);
return false;
}
else
{
- if (check_next_frame)
- return m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1);
- else
- return false;
+ return false;
}
}
@@ -1237,12 +1131,7 @@
uint32_t row_regnum_in_lldb;
if (!m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (unwindplan_registerkind, unwindplan_regnum, eRegisterKindLLDB, row_regnum_in_lldb))
{
- if (log)
- {
- log->Printf("%*sFrame %u could not supply caller's reg %d location",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("could not supply caller's reg %d location", lldb_regnum);
return false;
}
regloc.type = UnwindLLDB::RegisterLocation::eRegisterInRegister;
@@ -1253,8 +1142,8 @@
if (unwindplan_regloc.IsDWARFExpression() || unwindplan_regloc.IsAtDWARFExpression())
{
- DataExtractor dwarfdata (unwindplan_regloc.GetDWARFExpressionBytes(),
- unwindplan_regloc.GetDWARFExpressionLength(),
+ DataExtractor dwarfdata (unwindplan_regloc.GetDWARFExpressionBytes(),
+ unwindplan_regloc.GetDWARFExpressionLength(),
process->GetByteOrder(), process->GetAddressByteSize());
DWARFExpression dwarfexpr (dwarfdata, 0, unwindplan_regloc.GetDWARFExpressionLength());
dwarfexpr.SetRegisterKind (unwindplan_registerkind);
@@ -1279,28 +1168,69 @@
return true;
}
}
- if (log)
- {
- log->Printf("%*sFrame %u tried to use IsDWARFExpression or IsAtDWARFExpression for reg %d but failed",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("tried to use IsDWARFExpression or IsAtDWARFExpression for reg %d but failed", lldb_regnum);
return false;
}
- if (log)
- {
- log->Printf("%*sFrame %u could not supply caller's reg %d location",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsg ("could not supply caller's reg %d location", lldb_regnum);
+
+ // FIXME UnwindPlan::Row types atDWARFExpression and isDWARFExpression are unsupported.
-
- // assert ("UnwindPlan::Row types atDWARFExpression and isDWARFExpression are unsupported.");
return false;
}
-// Retrieve a general purpose register value for THIS from, as saved by the NEXT frame, i.e. the frame that
+// If the Full unwindplan has been determined to be incorrect, this method will
+// replace it with the architecture's default unwindplna, if one is defined.
+// It will also find the FuncUnwinders object for this function and replace the
+// Full unwind method for the function there so we don't use the errant Full unwindplan
+// again in the future of this debug session.
+// We're most likely doing this because the Full unwindplan was generated by assembly
+// instruction profiling and the profiler got something wrong.
+
+void
+RegisterContextLLDB::InvalidateFullUnwindPlan ()
+{
+ UnwindPlan::Row::RegisterLocation unwindplan_regloc;
+ ExecutionContext exe_ctx (m_thread.shared_from_this());
+ Process *process = exe_ctx.GetProcessPtr();
+ ABI *abi = process ? process->GetABI().get() : NULL;
+ if (abi)
+ {
+ UnwindPlanSP original_full_unwind_plan_sp = m_full_unwind_plan_sp;
+ UnwindPlanSP arch_default_unwind_plan_sp;
+ arch_default_unwind_plan_sp.reset (new UnwindPlan (lldb::eRegisterKindGeneric));
+ abi->CreateDefaultUnwindPlan(*arch_default_unwind_plan_sp);
+ if (arch_default_unwind_plan_sp)
+ {
+ UnwindPlan::RowSP active_row = arch_default_unwind_plan_sp->GetRowForFunctionOffset (m_current_offset);
+
+ if (active_row && active_row->GetCFARegister() != LLDB_INVALID_REGNUM)
+ {
+ FuncUnwindersSP func_unwinders_sp;
+ if (m_sym_ctx_valid && m_current_pc.IsValid() && m_current_pc.GetModule())
+ {
+ func_unwinders_sp = m_current_pc.GetModule()->GetObjectFile()->GetUnwindTable().GetFuncUnwindersContainingAddress (m_current_pc, m_sym_ctx);
+ if (func_unwinders_sp)
+ {
+ func_unwinders_sp->InvalidateNonCallSiteUnwindPlan (m_thread);
+ }
+ }
+ m_registers.clear();
+ m_full_unwind_plan_sp = arch_default_unwind_plan_sp;
+ addr_t cfa_regval;
+ if (ReadGPRValue (arch_default_unwind_plan_sp->GetRegisterKind(), active_row->GetCFARegister(), cfa_regval))
+ {
+ m_cfa = cfa_regval + active_row->GetCFAOffset ();
+ }
+
+ UnwindLogMsg ("full unwind plan '%s' has been replaced by architecture default unwind plan '%s' for this function from now on.",
+ original_full_unwind_plan_sp->GetSourceName().GetCString(), arch_default_unwind_plan_sp->GetSourceName().GetCString());
+ }
+ }
+ }
+}
+
+// Retrieve a general purpose register value for THIS frame, as saved by the NEXT frame, i.e. the frame that
// this frame called. e.g.
//
// foo () { }
@@ -1343,8 +1273,21 @@
return false;
}
+ bool pc_or_return_address = false;
+ uint32_t generic_regnum;
+ if (register_kind == eRegisterKindGeneric
+ && (regnum == LLDB_REGNUM_GENERIC_PC || regnum == LLDB_REGNUM_GENERIC_RA))
+ {
+ pc_or_return_address = true;
+ }
+ else if (m_thread.GetRegisterContext()->ConvertBetweenRegisterKinds (register_kind, regnum, eRegisterKindGeneric, generic_regnum)
+ && (generic_regnum == LLDB_REGNUM_GENERIC_PC || generic_regnum == LLDB_REGNUM_GENERIC_RA))
+ {
+ pc_or_return_address = true;
+ }
+
lldb_private::UnwindLLDB::RegisterLocation regloc;
- if (!m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1))
+ if (!m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1, pc_or_return_address))
{
return false;
}
@@ -1361,33 +1304,22 @@
bool
RegisterContextLLDB::ReadRegister (const RegisterInfo *reg_info, RegisterValue &value)
{
- LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
if (!IsValid())
return false;
const uint32_t lldb_regnum = reg_info->kinds[eRegisterKindLLDB];
- if (log && log->GetVerbose ())
- {
- log->Printf("%*sFrame %u looking for register saved location for reg %d",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsgVerbose ("looking for register saved location for reg %d", lldb_regnum);
// If this is the 0th frame, hand this over to the live register context
if (IsFrameZero ())
{
- if (log && log->GetVerbose ())
- {
- log->Printf("%*sFrame %u passing along to the live register context for reg %d",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsgVerbose ("passing along to the live register context for reg %d", lldb_regnum);
return m_thread.GetRegisterContext()->ReadRegister (reg_info, value);
}
lldb_private::UnwindLLDB::RegisterLocation regloc;
// Find out where the NEXT frame saved THIS frame's register contents
- if (!m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1))
+ if (!m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1, false))
return false;
return ReadRegisterValueFromRegisterLocation (regloc, reg_info, value);
@@ -1396,33 +1328,22 @@
bool
RegisterContextLLDB::WriteRegister (const RegisterInfo *reg_info, const RegisterValue &value)
{
- LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
if (!IsValid())
return false;
const uint32_t lldb_regnum = reg_info->kinds[eRegisterKindLLDB];
- if (log && log->GetVerbose ())
- {
- log->Printf("%*sFrame %u looking for register saved location for reg %d",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsgVerbose ("looking for register saved location for reg %d", lldb_regnum);
// If this is the 0th frame, hand this over to the live register context
if (IsFrameZero ())
{
- if (log && log->GetVerbose ())
- {
- log->Printf("%*sFrame %u passing along to the live register context for reg %d",
- m_frame_number < 100 ? m_frame_number : 100, "", m_frame_number,
- lldb_regnum);
- }
+ UnwindLogMsgVerbose ("passing along to the live register context for reg %d", lldb_regnum);
return m_thread.GetRegisterContext()->WriteRegister (reg_info, value);
}
lldb_private::UnwindLLDB::RegisterLocation regloc;
// Find out where the NEXT frame saved THIS frame's register contents
- if (!m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1))
+ if (!m_parent_unwind.SearchForSavedLocationForRegister (lldb_regnum, regloc, m_frame_number - 1, false))
return false;
return WriteRegisterValueToRegisterLocation (regloc, reg_info, value);
@@ -1486,7 +1407,7 @@
if (!m_start_pc.IsValid())
{
- return ReadPC (start_pc);
+ return ReadPC (start_pc);
}
start_pc = m_start_pc.GetLoadAddress (CalculateTarget().get());
return true;
@@ -1507,12 +1428,12 @@
// occur if code has jumped through a NULL pointer -- we want to be able to unwind past that frame to help
// find the bug.
- if (m_all_registers_available == false
+ if (m_all_registers_available == false
&& (pc == 0 || pc == 1))
{
return false;
}
- else
+ else
{
return true;
}
@@ -1522,3 +1443,57 @@
return false;
}
}
+
+
+void
+RegisterContextLLDB::UnwindLogMsg (const char *fmt, ...)
+{
+ LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
+ if (log)
+ {
+ va_list args;
+ va_start (args, fmt);
+
+ char *logmsg;
+ if (vasprintf (&logmsg, fmt, args) == -1 || logmsg == NULL)
+ {
+ if (logmsg)
+ free (logmsg);
+ va_end (args);
+ return;
+ }
+ va_end (args);
+
+ log->Printf ("%*sth%d/fr%u %s",
+ m_frame_number < 100 ? m_frame_number : 100, "", m_thread.GetIndexID(), m_frame_number,
+ logmsg);
+ free (logmsg);
+ }
+}
+
+void
+RegisterContextLLDB::UnwindLogMsgVerbose (const char *fmt, ...)
+{
+ LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND));
+ if (log && log->GetVerbose())
+ {
+ va_list args;
+ va_start (args, fmt);
+
+ char *logmsg;
+ if (vasprintf (&logmsg, fmt, args) == -1 || logmsg == NULL)
+ {
+ if (logmsg)
+ free (logmsg);
+ va_end (args);
+ return;
+ }
+ va_end (args);
+
+ log->Printf ("%*sth%d/fr%u %s",
+ m_frame_number < 100 ? m_frame_number : 100, "", m_thread.GetIndexID(), m_frame_number,
+ logmsg);
+ free (logmsg);
+ }
+}
+
Modified: lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.h (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/RegisterContextLLDB.h Thu Nov 1 02:04:04 2012
@@ -59,7 +59,7 @@
virtual bool
WriteRegister (const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value);
-
+
virtual bool
ReadAllRegisterValues (lldb::DataBufferSP &data_sp);
@@ -96,14 +96,14 @@
friend class UnwindLLDB;
// Indicates whether this frame is frame zero -- the currently
- // executing frame -- or not.
+ // executing frame -- or not.
bool
IsFrameZero () const;
- void
+ void
InitializeZerothFrame ();
- void
+ void
InitializeNonZerothFrame();
SharedPtr
@@ -112,7 +112,7 @@
SharedPtr
GetPrevFrame () const;
- // A SkipFrame occurs when the unwind out of frame 0 didn't go right -- we've got one bogus frame at frame #1.
+ // A SkipFrame occurs when the unwind out of frame 0 didn't go right -- we've got one bogus frame at frame #1.
// There is a good chance we'll get back on track if we follow the frame pointer chain (or whatever is appropriate
// on this ABI) so we allow one invalid frame to be in the stack. Ideally we'll mark this frame specially at some
// point and indicate to the user that the unwinder had a hiccup. Often when this happens we will miss a frame of
@@ -124,32 +124,30 @@
// Or a frame "below" this one saved it, i.e. a function called by this one, preserved a register that this
// function didn't modify/use.
//
- // The RegisterLocation type may be set to eRegisterNotAvailable -- this will happen for a volatile register
+ // The RegisterLocation type may be set to eRegisterNotAvailable -- this will happen for a volatile register
// being queried mid-stack. Instead of floating frame 0's contents of that register up the stack (which may
// or may not be the value of that reg when the function was executing), we won't return any value.
//
// If a non-volatile register (a "preserved" register) is requested mid-stack and no frames "below" the requested
// stack have saved the register anywhere, it is safe to assume that frame 0's register values are still the same
// as the requesting frame's.
- //
- // NB this function takes a "check_next_frame" boolean which indicates whether it should call back to the
- // containing UnwindLLDB object to iterate the search down the stack (true) or if this call should look for
- // a register save for that reg in the current frame only (false). Allows UnwindLLDB to iterate through the
- // RegisterContextLLDB's instead of using recursion to find saved register values.
bool
- SavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc, bool check_next_frame);
+ SavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc);
bool
- ReadRegisterValueFromRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
+ ReadRegisterValueFromRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
const lldb_private::RegisterInfo *reg_info,
lldb_private::RegisterValue &value);
bool
- WriteRegisterValueToRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
+ WriteRegisterValueToRegisterLocation (lldb_private::UnwindLLDB::RegisterLocation regloc,
const lldb_private::RegisterInfo *reg_info,
const lldb_private::RegisterValue &value);
- // Get the contents of a general purpose (address-size) register for this frame
+ void
+ InvalidateFullUnwindPlan ();
+
+ // Get the contents of a general purpose (address-size) register for this frame
// (usually retrieved from the next frame)
bool
ReadGPRValue (int register_kind, uint32_t regnum, lldb::addr_t &value);
@@ -160,8 +158,22 @@
lldb::UnwindPlanSP
GetFullUnwindPlanForFrame ();
+ void
+ UnwindLogMsg (const char *fmt, ...)
+#ifndef _MSC_VER
+ __attribute__ ((format (printf, 2, 3)))
+#endif
+ ;
+
+ void
+ UnwindLogMsgVerbose (const char *fmt, ...)
+#ifndef _MSC_VER
+ __attribute__ ((format (printf, 2, 3)))
+#endif
+ ;
+
lldb_private::Thread& m_thread;
-
+
///
// The following tell us how to retrieve the CALLER's register values (ie the "previous" frame, aka the frame above)
// i.e. where THIS frame saved them
@@ -182,7 +194,7 @@
int m_current_offset_backed_up_one; // how far into the function we've executed; -1 if unknown
// 0 if no instructions have been executed yet.
// On architectures where the return address on the stack points
- // to the instruction after the CALL, this value will have 1
+ // to the instruction after the CALL, this value will have 1
// subtracted from it. Else a function that ends in a CALL will
// have an offset pointing into the next function's address range.
// m_current_pc has the actual address of the "current" pc.
Modified: lldb/branches/windows/source/Plugins/Process/Utility/StopInfoMachException.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/StopInfoMachException.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/StopInfoMachException.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/StopInfoMachException.cpp Thu Nov 1 02:04:04 2012
@@ -365,7 +365,8 @@
return StopInfo::CreateStopReasonWithWatchpointID(thread, wp_sp->GetID());
}
// EXC_ARM_DA_DEBUG seems to be reused for EXC_BREAKPOINT as well as EXC_BAD_ACCESS
- return StopInfo::CreateStopReasonToTrace(thread);
+ if (thread.GetTemporaryResumeState() == eStateStepping)
+ return StopInfo::CreateStopReasonToTrace(thread);
}
else if (exc_code == 1)
{
@@ -405,7 +406,8 @@
return StopInfoSP();
}
- if (is_trace_if_software_breakpoint_missing)
+ // Don't call this a trace if we weren't single stepping this thread.
+ if (is_trace_if_software_breakpoint_missing && thread.GetTemporaryResumeState() == eStateStepping)
{
return StopInfo::CreateStopReasonToTrace (thread);
}
Modified: lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.cpp Thu Nov 1 02:04:04 2012
@@ -18,8 +18,8 @@
using namespace lldb_private;
ThreadMemory::ThreadMemory (Process &process,
- tid_t tid,
- const ValueObjectSP &thread_info_valobj_sp) :
+ tid_t tid,
+ const ValueObjectSP &thread_info_valobj_sp) :
Thread (process, tid),
m_thread_info_valobj_sp (thread_info_valobj_sp),
m_name(),
@@ -31,11 +31,13 @@
ThreadMemory::ThreadMemory (Process &process,
lldb::tid_t tid,
const char *name,
- const char *queue) :
+ const char *queue,
+ lldb::addr_t register_data_addr) :
Thread (process, tid),
m_thread_info_valobj_sp (),
m_name(),
- m_queue()
+ m_queue(),
+ m_register_data_addr (register_data_addr)
{
if (name)
m_name = name;
@@ -70,7 +72,7 @@
{
OperatingSystem *os = process_sp->GetOperatingSystem ();
if (os)
- m_reg_context_sp = os->CreateRegisterContextForThread (this);
+ m_reg_context_sp = os->CreateRegisterContextForThread (this, m_register_data_addr);
}
}
return m_reg_context_sp;
Modified: lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.h (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/ThreadMemory.h Thu Nov 1 02:04:04 2012
@@ -24,7 +24,8 @@
ThreadMemory (lldb_private::Process &process,
lldb::tid_t tid,
const char *name,
- const char *queue);
+ const char *queue,
+ lldb::addr_t register_data_addr);
virtual
~ThreadMemory();
@@ -72,6 +73,7 @@
lldb::ValueObjectSP m_thread_info_valobj_sp;
std::string m_name;
std::string m_queue;
+ lldb::addr_t m_register_data_addr;
private:
//------------------------------------------------------------------
// For ThreadMemory only
Modified: lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.cpp Thu Nov 1 02:04:04 2012
@@ -262,14 +262,24 @@
}
bool
-UnwindLLDB::SearchForSavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc, uint32_t starting_frame_num)
+UnwindLLDB::SearchForSavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc, uint32_t starting_frame_num, bool pc_or_return_address_reg)
{
int64_t frame_num = starting_frame_num;
if (frame_num >= m_frames.size())
return false;
+
+ // Never interrogate more than one level while looking for the saved pc value. If the value
+ // isn't saved by frame_num, none of the frames lower on the stack will have a useful value.
+ if (pc_or_return_address_reg)
+ {
+ if (m_frames[frame_num]->reg_ctx_lldb_sp->SavedLocationForRegister (lldb_regnum, regloc))
+ return true;
+ else
+ return false;
+ }
while (frame_num >= 0)
{
- if (m_frames[frame_num]->reg_ctx_lldb_sp->SavedLocationForRegister (lldb_regnum, regloc, false))
+ if (m_frames[frame_num]->reg_ctx_lldb_sp->SavedLocationForRegister (lldb_regnum, regloc))
return true;
frame_num--;
}
Modified: lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.h (original)
+++ lldb/branches/windows/source/Plugins/Process/Utility/UnwindLLDB.h Thu Nov 1 02:04:04 2012
@@ -80,7 +80,7 @@
// Iterate over the RegisterContextLLDB's in our m_frames vector, look for the first one that
// has a saved location for this reg.
bool
- SearchForSavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc, uint32_t starting_frame_num);
+ SearchForSavedLocationForRegister (uint32_t lldb_regnum, lldb_private::UnwindLLDB::RegisterLocation ®loc, uint32_t starting_frame_num, bool pc_or_return_address_reg);
private:
Modified: lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original)
+++ lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Thu Nov 1 02:04:04 2012
@@ -49,6 +49,8 @@
#include "lldb/Host/Symbols.h"
#include "lldb/Host/TimeValue.h"
#include "lldb/Interpreter/CommandInterpreter.h"
+#include "lldb/Interpreter/CommandObject.h"
+#include "lldb/Interpreter/CommandObjectMultiword.h"
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Target/DynamicLoader.h"
@@ -199,6 +201,8 @@
m_register_info (),
m_async_broadcaster (NULL, "lldb.process.gdb-remote.async-broadcaster"),
m_async_thread (LLDB_INVALID_HOST_THREAD),
+ m_async_thread_state(eAsyncThreadNotStarted),
+ m_async_thread_state_mutex(Mutex::eMutexTypeRecursive),
m_thread_ids (),
m_continue_c_tids (),
m_continue_C_tids (),
@@ -231,6 +235,12 @@
// destruct this class, then Process::~Process() might have problems
// trying to fully destroy the broadcaster.
Finalize();
+
+ // The general Finalize is going to try to destroy the process and that SHOULD
+ // shut down the async thread. However, if we don't kill it it will get stranded and
+ // its connection will go away so when it wakes up it will crash. So kill it for sure here.
+ StopAsyncThread();
+ KillDebugserverProcess();
}
//----------------------------------------------------------------------
@@ -1599,9 +1609,13 @@
}
else
{
- // TODO: check for breakpoint or trap opcode in case there is a hard
- // coded software trap
- gdb_thread->SetStopInfo (StopInfo::CreateStopReasonToTrace (*thread_sp));
+ // If we were stepping then assume the stop was the result of the trace. If we were
+ // not stepping then report the SIGTRAP.
+ // FIXME: We are still missing the case where we single step over a trap instruction.
+ if (gdb_thread->GetTemporaryResumeState() == eStateStepping)
+ gdb_thread->SetStopInfo (StopInfo::CreateStopReasonToTrace (*thread_sp));
+ else
+ gdb_thread->SetStopInfo (StopInfo::CreateStopReasonWithSignal(*thread_sp, signo));
}
}
if (!handled)
@@ -2728,11 +2742,32 @@
if (log)
log->Printf ("ProcessGDBRemote::%s ()", __FUNCTION__);
-
- // Create a thread that watches our internal state and controls which
- // events make it to clients (into the DCProcess event queue).
- m_async_thread = Host::ThreadCreate ("<lldb.process.gdb-remote.async>", ProcessGDBRemote::AsyncThread, this, NULL);
- return IS_VALID_LLDB_HOST_THREAD(m_async_thread);
+
+ Mutex::Locker start_locker(m_async_thread_state_mutex);
+ if (m_async_thread_state == eAsyncThreadNotStarted)
+ {
+ // Create a thread that watches our internal state and controls which
+ // events make it to clients (into the DCProcess event queue).
+ m_async_thread = Host::ThreadCreate ("<lldb.process.gdb-remote.async>", ProcessGDBRemote::AsyncThread, this, NULL);
+ if (IS_VALID_LLDB_HOST_THREAD(m_async_thread))
+ {
+ m_async_thread_state = eAsyncThreadRunning;
+ return true;
+ }
+ else
+ return false;
+ }
+ else
+ {
+ // Somebody tried to start the async thread while it was either being started or stopped. If the former, and
+ // it started up successfully, then say all's well. Otherwise it is an error, since we aren't going to restart it.
+ if (log)
+ log->Printf ("ProcessGDBRemote::%s () - Called when Async thread was in state: %d.", __FUNCTION__, m_async_thread_state);
+ if (m_async_thread_state == eAsyncThreadRunning)
+ return true;
+ else
+ return false;
+ }
}
void
@@ -2743,15 +2778,25 @@
if (log)
log->Printf ("ProcessGDBRemote::%s ()", __FUNCTION__);
- m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncThreadShouldExit);
-
- // This will shut down the async thread.
- m_gdb_comm.Disconnect(); // Disconnect from the debug server.
+ Mutex::Locker start_locker(m_async_thread_state_mutex);
+ if (m_async_thread_state == eAsyncThreadRunning)
+ {
+ m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncThreadShouldExit);
+
+ // This will shut down the async thread.
+ m_gdb_comm.Disconnect(); // Disconnect from the debug server.
- // Stop the stdio thread
- if (IS_VALID_LLDB_HOST_THREAD(m_async_thread))
+ // Stop the stdio thread
+ if (IS_VALID_LLDB_HOST_THREAD(m_async_thread))
+ {
+ Host::ThreadJoin (m_async_thread, NULL, NULL);
+ }
+ m_async_thread_state = eAsyncThreadDone;
+ }
+ else
{
- Host::ThreadJoin (m_async_thread, NULL, NULL);
+ if (log)
+ log->Printf ("ProcessGDBRemote::%s () - Called when Async thread was in state: %d.", __FUNCTION__, m_async_thread_state);
}
}
@@ -3037,8 +3082,6 @@
return m_dyld_ap.get();
}
-#include "lldb/Interpreter/CommandObject.h"
-#include "lldb/Interpreter/CommandObjectMultiword.h"
class CommandObjectProcessGDBRemotePacketHistory : public CommandObjectParsed
{
Modified: lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h?rev=167218&r1=167217&r2=167218&view=diff
==============================================================================
--- lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (original)
+++ lldb/branches/windows/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Thu Nov 1 02:04:04 2012
@@ -307,6 +307,13 @@
eBroadcastBitAsyncThreadDidExit = (1 << 2)
};
+ typedef enum AsyncThreadState
+ {
+ eAsyncThreadNotStarted,
+ eAsyncThreadRunning,
+ eAsyncThreadDone
+ } AsyncThreadState;
+
lldb_private::Flags m_flags; // Process specific flags (see eFlags enums)
GDBRemoteCommunicationClient m_gdb_comm;
lldb::pid_t m_debugserver_pid;
@@ -315,6 +322,8 @@
GDBRemoteDynamicRegisterInfo m_register_info;
lldb_private::Broadcaster m_async_broadcaster;
lldb::thread_t m_async_thread;
+ AsyncThreadState m_async_thread_state;
+ lldb_private::Mutex m_async_thread_state_mutex;
typedef std::vector<lldb::tid_t> tid_collection;
typedef std::vector< std::pair<lldb::tid_t,int> > tid_sig_collection;
typedef std::map<lldb::addr_t, lldb::addr_t> MMapMap;
Added: lldb/branches/windows/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp.orig
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/windows/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp.orig?rev=167218&view=auto
==============================================================================
--- lldb/branches/windows/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp.orig (added)
+++ lldb/branches/windows/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp.orig Thu Nov 1 02:04:04 2012
@@ -0,0 +1,2211 @@
+//===-- DWARFDebugInfoEntry.cpp ---------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "DWARFDebugInfoEntry.h"
+
+#include <assert.h>
+
+#include <algorithm>
+
+#include "lldb/Core/Module.h"
+#include "lldb/Core/Stream.h"
+#include "lldb/Expression/DWARFExpression.h"
+#include "lldb/Symbol/ObjectFile.h"
+
+#include "DWARFCompileUnit.h"
+#include "SymbolFileDWARF.h"
+#include "DWARFDebugAbbrev.h"
+#include "DWARFDebugAranges.h"
+#include "DWARFDebugInfo.h"
+#include "DWARFDeclContext.h"
+#include "DWARFDIECollection.h"
+#include "DWARFFormValue.h"
+#include "DWARFLocationDescription.h"
+#include "DWARFLocationList.h"
+#include "DWARFDebugRanges.h"
+
+using namespace lldb_private;
+using namespace std;
+extern int g_verbose;
+
+
+
+DWARFDebugInfoEntry::Attributes::Attributes() :
+ m_infos()
+{
+}
+
+DWARFDebugInfoEntry::Attributes::~Attributes()
+{
+}
+
+
+uint32_t
+DWARFDebugInfoEntry::Attributes::FindAttributeIndex(dw_attr_t attr) const
+{
+ collection::const_iterator end = m_infos.end();
+ collection::const_iterator beg = m_infos.begin();
+ collection::const_iterator pos;
+ for (pos = beg; pos != end; ++pos)
+ {
+ if (pos->attr == attr)
+ return std::distance(beg, pos);
+ }
+ return UINT32_MAX;
+}
+
+void
+DWARFDebugInfoEntry::Attributes::Append(const DWARFCompileUnit *cu, dw_offset_t attr_die_offset, dw_attr_t attr, dw_form_t form)
+{
+ Info info = { cu, attr_die_offset, attr, form };
+ m_infos.push_back(info);
+}
+
+bool
+DWARFDebugInfoEntry::Attributes::ContainsAttribute(dw_attr_t attr) const
+{
+ return FindAttributeIndex(attr) != UINT32_MAX;
+}
+
+bool
+DWARFDebugInfoEntry::Attributes::RemoveAttribute(dw_attr_t attr)
+{
+ uint32_t attr_index = FindAttributeIndex(attr);
+ if (attr_index != UINT32_MAX)
+ {
+ m_infos.erase(m_infos.begin() + attr_index);
+ return true;
+ }
+ return false;
+}
+
+bool
+DWARFDebugInfoEntry::Attributes::ExtractFormValueAtIndex (SymbolFileDWARF* dwarf2Data, uint32_t i, DWARFFormValue &form_value) const
+{
+ form_value.SetForm(FormAtIndex(i));
+ dw_offset_t offset = DIEOffsetAtIndex(i);
+ return form_value.ExtractValue(dwarf2Data->get_debug_info_data(), &offset, CompileUnitAtIndex(i));
+}
+
+uint64_t
+DWARFDebugInfoEntry::Attributes::FormValueAsUnsigned (SymbolFileDWARF* dwarf2Data, dw_attr_t attr, uint64_t fail_value) const
+{
+ const uint32_t attr_idx = FindAttributeIndex (attr);
+ if (attr_idx != UINT32_MAX)
+ return FormValueAsUnsignedAtIndex (dwarf2Data, attr_idx, fail_value);
+ return fail_value;
+}
+
+uint64_t
+DWARFDebugInfoEntry::Attributes::FormValueAsUnsignedAtIndex(SymbolFileDWARF* dwarf2Data, uint32_t i, uint64_t fail_value) const
+{
+ DWARFFormValue form_value;
+ if (ExtractFormValueAtIndex(dwarf2Data, i, form_value))
+ return form_value.Reference(CompileUnitAtIndex(i));
+ return fail_value;
+}
+
+
+
+bool
+DWARFDebugInfoEntry::FastExtract
+(
+ const DataExtractor& debug_info_data,
+ const DWARFCompileUnit* cu,
+ const uint8_t *fixed_form_sizes,
+ uint32_t* offset_ptr
+)
+{
+ m_offset = *offset_ptr;
+ m_parent_idx = 0;
+ m_sibling_idx = 0;
+ m_empty_children = false;
+ const uint64_t abbr_idx = debug_info_data.GetULEB128 (offset_ptr);
+ assert (abbr_idx < (1 << DIE_ABBR_IDX_BITSIZE));
+ m_abbr_idx = abbr_idx;
+
+ //assert (fixed_form_sizes); // For best performance this should be specified!
+
+ if (m_abbr_idx)
+ {
+ uint32_t offset = *offset_ptr;
+
+ const DWARFAbbreviationDeclaration *abbrevDecl = cu->GetAbbreviations()->GetAbbreviationDeclaration(m_abbr_idx);
+
+ if (abbrevDecl == NULL)
+ {
+ cu->GetSymbolFileDWARF()->GetObjectFile()->GetModule()->ReportError ("{0x%8.8x}: invalid abbreviation code %u, please file a bug and attach the file at the start of this error message",
+ m_offset,
+ (unsigned)abbr_idx);
+ // WE can't parse anymore if the DWARF is borked...
+ *offset_ptr = UINT32_MAX;
+ return false;
+ }
+ m_tag = abbrevDecl->Tag();
+ m_has_children = abbrevDecl->HasChildren();
+ // Skip all data in the .debug_info for the attributes
+ const uint32_t numAttributes = abbrevDecl->NumAttributes();
+ register uint32_t i;
+ register dw_form_t form;
+ for (i=0; i<numAttributes; ++i)
+ {
+ form = abbrevDecl->GetFormByIndexUnchecked(i);
+
+ const uint8_t fixed_skip_size = fixed_form_sizes [form];
+ if (fixed_skip_size)
+ offset += fixed_skip_size;
+ else
+ {
+ bool form_is_indirect = false;
+ do
+ {
+ form_is_indirect = false;
+ register uint32_t form_size = 0;
+ switch (form)
+ {
+ // Blocks if inlined data that have a length field and the data bytes
+ // inlined in the .debug_info
+ case DW_FORM_exprloc :
+ case DW_FORM_block : form_size = debug_info_data.GetULEB128 (&offset); break;
+ case DW_FORM_block1 : form_size = debug_info_data.GetU8_unchecked (&offset); break;
+ case DW_FORM_block2 : form_size = debug_info_data.GetU16_unchecked (&offset);break;
+ case DW_FORM_block4 : form_size = debug_info_data.GetU32_unchecked (&offset);break;
+
+ // Inlined NULL terminated C-strings
+ case DW_FORM_string :
+ debug_info_data.GetCStr (&offset);
+ break;
+
+ // Compile unit address sized values
+ case DW_FORM_addr :
+ case DW_FORM_ref_addr :
+ form_size = cu->GetAddressByteSize();
+ break;
+
+ // zero sized field
+ case DW_FORM_flag_present:
+ form_size = 0;
+ break;
+
+ // 0 sized form
+ case DW_FORM_flag_present:
+ form_size = 0;
+ break;
+
+ // 1 byte values
+ case DW_FORM_data1 :
+ case DW_FORM_flag :
+ case DW_FORM_ref1 :
+ form_size = 1;
+ break;
+
+ // 2 byte values
+ case DW_FORM_data2 :
+ case DW_FORM_ref2 :
+ form_size = 2;
+ break;
+
+ // 4 byte values
+ case DW_FORM_strp :
+ case DW_FORM_data4 :
+ case DW_FORM_ref4 :
+ form_size = 4;
+ break;
+
+ // 8 byte values
+ case DW_FORM_data8 :
+ case DW_FORM_ref8 :
+ case DW_FORM_ref_sig8 :
+ form_size = 8;
+ break;
+
+ // signed or unsigned LEB 128 values
+ case DW_FORM_sdata :
+ case DW_FORM_udata :
+ case DW_FORM_ref_udata :
+ debug_info_data.Skip_LEB128 (&offset);
+ break;
+
+ case DW_FORM_indirect :
+ form_is_indirect = true;
+ form = debug_info_data.GetULEB128 (&offset);
+ break;
+
+ case DW_FORM_sec_offset :
+ if (cu->GetAddressByteSize () == 4)
+ debug_info_data.GetU32 (offset_ptr);
+ else
+ debug_info_data.GetU64 (offset_ptr);
+ break;
+
+ default:
+ *offset_ptr = m_offset;
+ return false;
+ }
+ offset += form_size;
+
+ } while (form_is_indirect);
+ }
+ }
+ *offset_ptr = offset;
+ return true;
+ }
+ else
+ {
+ m_tag = 0;
+ m_has_children = false;
+ return true; // NULL debug tag entry
+ }
+
+ return false;
+}
+
+//----------------------------------------------------------------------
+// Extract
+//
+// Extract a debug info entry for a given compile unit from the
+// .debug_info and .debug_abbrev data within the SymbolFileDWARF class
+// starting at the given offset
+//----------------------------------------------------------------------
+bool
+DWARFDebugInfoEntry::Extract
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ uint32_t* offset_ptr
+)
+{
+ const DataExtractor& debug_info_data = dwarf2Data->get_debug_info_data();
+// const DataExtractor& debug_str_data = dwarf2Data->get_debug_str_data();
+ const uint32_t cu_end_offset = cu->GetNextCompileUnitOffset();
+ const uint8_t cu_addr_size = cu->GetAddressByteSize();
+ uint32_t offset = *offset_ptr;
+// if (offset >= cu_end_offset)
+// Log::Error("DIE at offset 0x%8.8x is beyond the end of the current compile unit (0x%8.8x)", m_offset, cu_end_offset);
+ if ((offset < cu_end_offset) && debug_info_data.ValidOffset(offset))
+ {
+ m_offset = offset;
+
+ const uint64_t abbr_idx = debug_info_data.GetULEB128(&offset);
+ assert (abbr_idx < (1 << DIE_ABBR_IDX_BITSIZE));
+ m_abbr_idx = abbr_idx;
+ if (abbr_idx)
+ {
+ const DWARFAbbreviationDeclaration *abbrevDecl = cu->GetAbbreviations()->GetAbbreviationDeclaration(abbr_idx);
+
+ if (abbrevDecl)
+ {
+ m_tag = abbrevDecl->Tag();
+ m_has_children = abbrevDecl->HasChildren();
+
+ bool isCompileUnitTag = m_tag == DW_TAG_compile_unit;
+ if (cu && isCompileUnitTag)
+ ((DWARFCompileUnit*)cu)->SetBaseAddress(0);
+
+ // Skip all data in the .debug_info for the attributes
+ const uint32_t numAttributes = abbrevDecl->NumAttributes();
+ uint32_t i;
+ dw_attr_t attr;
+ dw_form_t form;
+ for (i=0; i<numAttributes; ++i)
+ {
+ abbrevDecl->GetAttrAndFormByIndexUnchecked(i, attr, form);
+
+ if (isCompileUnitTag && ((attr == DW_AT_entry_pc) || (attr == DW_AT_low_pc)))
+ {
+ DWARFFormValue form_value(form);
+ if (form_value.ExtractValue(debug_info_data, &offset, cu))
+ {
+ if (attr == DW_AT_low_pc || attr == DW_AT_entry_pc)
+ ((DWARFCompileUnit*)cu)->SetBaseAddress(form_value.Unsigned());
+ }
+ }
+ else
+ {
+ bool form_is_indirect = false;
+ do
+ {
+ form_is_indirect = false;
+ register uint32_t form_size = 0;
+ switch (form)
+ {
+ // Blocks if inlined data that have a length field and the data bytes
+ // inlined in the .debug_info
+ case DW_FORM_exprloc :
+ case DW_FORM_block : form_size = debug_info_data.GetULEB128(&offset); break;
+ case DW_FORM_block1 : form_size = debug_info_data.GetU8(&offset); break;
+ case DW_FORM_block2 : form_size = debug_info_data.GetU16(&offset); break;
+ case DW_FORM_block4 : form_size = debug_info_data.GetU32(&offset); break;
+
+ // Inlined NULL terminated C-strings
+ case DW_FORM_string : debug_info_data.GetCStr(&offset); break;
+
+ // Compile unit address sized values
+ case DW_FORM_addr :
+ case DW_FORM_ref_addr :
+ form_size = cu_addr_size;
+ break;
+
+<<<<<<< .working
+ // zero sized field
+ case DW_FORM_flag_present:
+ form_size = 0;
+ break;
+
+=======
+ // 0 sized form
+ case DW_FORM_flag_present:
+ form_size = 0;
+ break;
+
+>>>>>>> .merge-right.r164814
+ // 1 byte values
+ case DW_FORM_data1 :
+ case DW_FORM_flag :
+ case DW_FORM_ref1 :
+ form_size = 1;
+ break;
+
+ // 2 byte values
+ case DW_FORM_data2 :
+ case DW_FORM_ref2 :
+ form_size = 2;
+ break;
+
+ // 4 byte values
+ case DW_FORM_strp :
+ form_size = 4;
+ break;
+
+ case DW_FORM_data4 :
+ case DW_FORM_ref4 :
+ form_size = 4;
+ break;
+
+ // 8 byte values
+ case DW_FORM_data8 :
+ case DW_FORM_ref8 :
+ case DW_FORM_ref_sig8 :
+ form_size = 8;
+ break;
+
+ // signed or unsigned LEB 128 values
+ case DW_FORM_sdata :
+ case DW_FORM_udata :
+ case DW_FORM_ref_udata :
+ debug_info_data.Skip_LEB128(&offset);
+ break;
+
+ case DW_FORM_indirect :
+ form = debug_info_data.GetULEB128(&offset);
+ form_is_indirect = true;
+ break;
+
+ case DW_FORM_sec_offset :
+ if (cu->GetAddressByteSize () == 4)
+ debug_info_data.GetU32 (offset_ptr);
+ else
+ debug_info_data.GetU64 (offset_ptr);
+ break;
+
+ default:
+ *offset_ptr = offset;
+ return false;
+ }
+
+ offset += form_size;
+ } while (form_is_indirect);
+ }
+ }
+ *offset_ptr = offset;
+ return true;
+ }
+ }
+ else
+ {
+ m_tag = 0;
+ m_has_children = false;
+ *offset_ptr = offset;
+ return true; // NULL debug tag entry
+ }
+ }
+
+ return false;
+}
+
+//----------------------------------------------------------------------
+// DumpAncestry
+//
+// Dumps all of a debug information entries parents up until oldest and
+// all of it's attributes to the specified stream.
+//----------------------------------------------------------------------
+void
+DWARFDebugInfoEntry::DumpAncestry
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const DWARFDebugInfoEntry* oldest,
+ Stream &s,
+ uint32_t recurse_depth
+) const
+{
+ const DWARFDebugInfoEntry* parent = GetParent();
+ if (parent && parent != oldest)
+ parent->DumpAncestry(dwarf2Data, cu, oldest, s, 0);
+ Dump(dwarf2Data, cu, s, recurse_depth);
+}
+
+//----------------------------------------------------------------------
+// Compare two DIE by comparing all their attributes values, and
+// following all DW_FORM_ref attributes and comparing their contents as
+// well (except for DW_AT_sibling attributes.
+//
+// DWARFDebugInfoEntry::CompareState compare_state;
+// int result = DWARFDebugInfoEntry::Compare(this, 0x00017ccb, 0x0001eb2b, compare_state, false, true);
+//----------------------------------------------------------------------
+//int
+//DWARFDebugInfoEntry::Compare
+//(
+// SymbolFileDWARF* dwarf2Data,
+// dw_offset_t a_die_offset,
+// dw_offset_t b_die_offset,
+// CompareState &compare_state,
+// bool compare_siblings,
+// bool compare_children
+//)
+//{
+// if (a_die_offset == b_die_offset)
+// return 0;
+//
+// DWARFCompileUnitSP a_cu_sp;
+// DWARFCompileUnitSP b_cu_sp;
+// const DWARFDebugInfoEntry* a_die = dwarf2Data->DebugInfo()->GetDIEPtr(a_die_offset, &a_cu_sp);
+// const DWARFDebugInfoEntry* b_die = dwarf2Data->DebugInfo()->GetDIEPtr(b_die_offset, &b_cu_sp);
+//
+// return Compare(dwarf2Data, a_cu_sp.get(), a_die, b_cu_sp.get(), b_die, compare_state, compare_siblings, compare_children);
+//}
+//
+//int
+//DWARFDebugInfoEntry::Compare
+//(
+// SymbolFileDWARF* dwarf2Data,
+// DWARFCompileUnit* a_cu, const DWARFDebugInfoEntry* a_die,
+// DWARFCompileUnit* b_cu, const DWARFDebugInfoEntry* b_die,
+// CompareState &compare_state,
+// bool compare_siblings,
+// bool compare_children
+//)
+//{
+// if (a_die == b_die)
+// return 0;
+//
+// if (!compare_state.AddTypePair(a_die->GetOffset(), b_die->GetOffset()))
+// {
+// // We are already comparing both of these types, so let
+// // compares complete for the real result
+// return 0;
+// }
+//
+// //printf("DWARFDebugInfoEntry::Compare(0x%8.8x, 0x%8.8x)\n", a_die->GetOffset(), b_die->GetOffset());
+//
+// // Do we have two valid DIEs?
+// if (a_die && b_die)
+// {
+// // Both DIE are valid
+// int result = 0;
+//
+// const dw_tag_t a_tag = a_die->Tag();
+// const dw_tag_t b_tag = b_die->Tag();
+// if (a_tag == 0 && b_tag == 0)
+// return 0;
+//
+// //printf(" comparing tags: %s and %s\n", DW_TAG_value_to_name(a_tag), DW_TAG_value_to_name(b_tag));
+//
+// if (a_tag < b_tag)
+// return -1;
+// else if (a_tag > b_tag)
+// return 1;
+//
+// DWARFDebugInfoEntry::Attributes a_attrs;
+// DWARFDebugInfoEntry::Attributes b_attrs;
+// size_t a_attr_count = a_die->GetAttributes(dwarf2Data, a_cu, a_attrs);
+// size_t b_attr_count = b_die->GetAttributes(dwarf2Data, b_cu, b_attrs);
+// if (a_attr_count != b_attr_count)
+// {
+// a_attrs.RemoveAttribute(DW_AT_sibling);
+// b_attrs.RemoveAttribute(DW_AT_sibling);
+// }
+//
+// a_attr_count = a_attrs.Size();
+// b_attr_count = b_attrs.Size();
+//
+// DWARFFormValue a_form_value;
+// DWARFFormValue b_form_value;
+//
+// if (a_attr_count != b_attr_count)
+// {
+// uint32_t is_decl_index = a_attrs.FindAttributeIndex(DW_AT_declaration);
+// uint32_t a_name_index = UINT32_MAX;
+// uint32_t b_name_index = UINT32_MAX;
+// if (is_decl_index != UINT32_MAX)
+// {
+// if (a_attr_count == 2)
+// {
+// a_name_index = a_attrs.FindAttributeIndex(DW_AT_name);
+// b_name_index = b_attrs.FindAttributeIndex(DW_AT_name);
+// }
+// }
+// else
+// {
+// is_decl_index = b_attrs.FindAttributeIndex(DW_AT_declaration);
+// if (is_decl_index != UINT32_MAX && a_attr_count == 2)
+// {
+// a_name_index = a_attrs.FindAttributeIndex(DW_AT_name);
+// b_name_index = b_attrs.FindAttributeIndex(DW_AT_name);
+// }
+// }
+// if (a_name_index != UINT32_MAX && b_name_index != UINT32_MAX)
+// {
+// if (a_attrs.ExtractFormValueAtIndex(dwarf2Data, a_name_index, a_form_value) &&
+// b_attrs.ExtractFormValueAtIndex(dwarf2Data, b_name_index, b_form_value))
+// {
+// result = DWARFFormValue::Compare (a_form_value, b_form_value, a_cu, b_cu, &dwarf2Data->get_debug_str_data());
+// if (result == 0)
+// {
+// a_attr_count = b_attr_count = 0;
+// compare_children = false;
+// }
+// }
+// }
+// }
+//
+// if (a_attr_count < b_attr_count)
+// return -1;
+// if (a_attr_count > b_attr_count)
+// return 1;
+//
+//
+// // The number of attributes are the same...
+// if (a_attr_count > 0)
+// {
+// const DataExtractor* debug_str_data_ptr = &dwarf2Data->get_debug_str_data();
+//
+// uint32_t i;
+// for (i=0; i<a_attr_count; ++i)
+// {
+// const dw_attr_t a_attr = a_attrs.AttributeAtIndex(i);
+// const dw_attr_t b_attr = b_attrs.AttributeAtIndex(i);
+// //printf(" comparing attributes\n\t\t0x%8.8x: %s %s\t\t0x%8.8x: %s %s\n",
+// // a_attrs.DIEOffsetAtIndex(i), DW_FORM_value_to_name(a_attrs.FormAtIndex(i)), DW_AT_value_to_name(a_attr),
+// // b_attrs.DIEOffsetAtIndex(i), DW_FORM_value_to_name(b_attrs.FormAtIndex(i)), DW_AT_value_to_name(b_attr));
+//
+// if (a_attr < b_attr)
+// return -1;
+// else if (a_attr > b_attr)
+// return 1;
+//
+// switch (a_attr)
+// {
+// // Since we call a form of GetAttributes which inlines the
+// // attributes from DW_AT_abstract_origin and DW_AT_specification
+// // we don't care if their values mismatch...
+// case DW_AT_abstract_origin:
+// case DW_AT_specification:
+// case DW_AT_sibling:
+// case DW_AT_containing_type:
+// //printf(" action = IGNORE\n");
+// result = 0;
+// break; // ignore
+//
+// default:
+// if (a_attrs.ExtractFormValueAtIndex(dwarf2Data, i, a_form_value) &&
+// b_attrs.ExtractFormValueAtIndex(dwarf2Data, i, b_form_value))
+// result = DWARFFormValue::Compare (a_form_value, b_form_value, a_cu, b_cu, debug_str_data_ptr);
+// break;
+// }
+//
+// //printf("\t result = %i\n", result);
+//
+// if (result != 0)
+// {
+// // Attributes weren't equal, lets see if we care?
+// switch (a_attr)
+// {
+// case DW_AT_decl_file:
+// // TODO: add the ability to compare files in two different compile units
+// if (a_cu == b_cu)
+// {
+// //printf(" action = RETURN RESULT\n");
+// return result; // Only return the compare results when the compile units are the same and the decl_file attributes can be compared
+// }
+// else
+// {
+// result = 0;
+// //printf(" action = IGNORE\n");
+// }
+// break;
+//
+// default:
+// switch (a_attrs.FormAtIndex(i))
+// {
+// case DW_FORM_ref1:
+// case DW_FORM_ref2:
+// case DW_FORM_ref4:
+// case DW_FORM_ref8:
+// case DW_FORM_ref_udata:
+// case DW_FORM_ref_addr:
+// //printf(" action = COMPARE DIEs 0x%8.8x 0x%8.8x\n", (dw_offset_t)a_form_value.Reference(a_cu), (dw_offset_t)b_form_value.Reference(b_cu));
+// // These attribute values refer to other DIEs, so lets compare those instead of their DIE offsets...
+// result = Compare(dwarf2Data, a_form_value.Reference(a_cu), b_form_value.Reference(b_cu), compare_state, false, true);
+// if (result != 0)
+// return result;
+// break;
+//
+// default:
+// // We do care that they were different, return this result...
+// //printf(" action = RETURN RESULT\n");
+// return result;
+// }
+// }
+// }
+// }
+// }
+// //printf(" SUCCESS\n\t\t0x%8.8x: %s\n\t\t0x%8.8x: %s\n", a_die->GetOffset(), DW_TAG_value_to_name(a_tag), b_die->GetOffset(), DW_TAG_value_to_name(b_tag));
+//
+// if (compare_children)
+// {
+// bool a_has_children = a_die->HasChildren();
+// bool b_has_children = b_die->HasChildren();
+// if (a_has_children == b_has_children)
+// {
+// // Both either have kids or don't
+// if (a_has_children)
+// result = Compare( dwarf2Data,
+// a_cu, a_die->GetFirstChild(),
+// b_cu, b_die->GetFirstChild(),
+// compare_state, true, compare_children);
+// else
+// result = 0;
+// }
+// else if (!a_has_children)
+// result = -1; // A doesn't have kids, but B does
+// else
+// result = 1; // A has kids, but B doesn't
+// }
+//
+// if (compare_siblings)
+// {
+// result = Compare( dwarf2Data,
+// a_cu, a_die->GetSibling(),
+// b_cu, b_die->GetSibling(),
+// compare_state, true, compare_children);
+// }
+//
+// return result;
+// }
+//
+// if (a_die == NULL)
+// return -1; // a_die is NULL, yet b_die is non-NULL
+// else
+// return 1; // a_die is non-NULL, yet b_die is NULL
+//
+//}
+//
+//
+//int
+//DWARFDebugInfoEntry::Compare
+//(
+// SymbolFileDWARF* dwarf2Data,
+// const DWARFCompileUnit* cu_a,
+// const DWARFDebugInfoEntry* die_a,
+// const DWARFCompileUnit* cu_a,
+// const DWARFDebugInfoEntry* die_b,
+// CompareState &compare_state
+//)
+//{
+//}
+
+//----------------------------------------------------------------------
+// GetDIENamesAndRanges
+//
+// Gets the valid address ranges for a given DIE by looking for a
+// DW_AT_low_pc/DW_AT_high_pc pair, DW_AT_entry_pc, or DW_AT_ranges
+// attributes.
+//----------------------------------------------------------------------
+bool
+DWARFDebugInfoEntry::GetDIENamesAndRanges
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const char * &name,
+ const char * &mangled,
+ DWARFDebugRanges::RangeList& ranges,
+ int& decl_file,
+ int& decl_line,
+ int& decl_column,
+ int& call_file,
+ int& call_line,
+ int& call_column,
+ DWARFExpression *frame_base
+) const
+{
+ if (dwarf2Data == NULL)
+ return false;
+
+ dw_addr_t lo_pc = DW_INVALID_ADDRESS;
+ dw_addr_t hi_pc = DW_INVALID_ADDRESS;
+ std::vector<dw_offset_t> die_offsets;
+ bool set_frame_base_loclist_addr = false;
+
+ dw_offset_t offset;
+ const DWARFAbbreviationDeclaration* abbrevDecl = GetAbbreviationDeclarationPtr(dwarf2Data, cu, offset);
+
+ if (abbrevDecl)
+ {
+ const DataExtractor& debug_info_data = dwarf2Data->get_debug_info_data();
+
+ if (!debug_info_data.ValidOffset(offset))
+ return false;
+
+ const uint32_t numAttributes = abbrevDecl->NumAttributes();
+ uint32_t i;
+ dw_attr_t attr;
+ dw_form_t form;
+ for (i=0; i<numAttributes; ++i)
+ {
+ abbrevDecl->GetAttrAndFormByIndexUnchecked(i, attr, form);
+ DWARFFormValue form_value(form);
+ if (form_value.ExtractValue(debug_info_data, &offset, cu))
+ {
+ switch (attr)
+ {
+ case DW_AT_low_pc:
+ case DW_AT_entry_pc:
+ lo_pc = form_value.Unsigned();
+ break;
+
+ case DW_AT_high_pc:
+ hi_pc = form_value.Unsigned();
+ break;
+
+ case DW_AT_ranges:
+ {
+ const DWARFDebugRanges* debug_ranges = dwarf2Data->DebugRanges();
+ debug_ranges->FindRanges(form_value.Unsigned(), ranges);
+ // All DW_AT_ranges are relative to the base address of the
+ // compile unit. We add the compile unit base address to make
+ // sure all the addresses are properly fixed up.
+ ranges.Slide(cu->GetBaseAddress());
+ }
+ break;
+
+ case DW_AT_name:
+ if (name == NULL)
+ name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ break;
+
+ case DW_AT_MIPS_linkage_name:
+ if (mangled == NULL)
+ mangled = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ break;
+
+ case DW_AT_abstract_origin:
+ die_offsets.push_back(form_value.Reference(cu));
+ break;
+
+ case DW_AT_specification:
+ die_offsets.push_back(form_value.Reference(cu));
+ break;
+
+ case DW_AT_decl_file:
+ if (decl_file == 0)
+ decl_file = form_value.Unsigned();
+ break;
+
+ case DW_AT_decl_line:
+ if (decl_line == 0)
+ decl_line = form_value.Unsigned();
+ break;
+
+ case DW_AT_decl_column:
+ if (decl_column == 0)
+ decl_column = form_value.Unsigned();
+ break;
+
+ case DW_AT_call_file:
+ if (call_file == 0)
+ call_file = form_value.Unsigned();
+ break;
+
+ case DW_AT_call_line:
+ if (call_line == 0)
+ call_line = form_value.Unsigned();
+ break;
+
+ case DW_AT_call_column:
+ if (call_column == 0)
+ call_column = form_value.Unsigned();
+ break;
+
+ case DW_AT_frame_base:
+ if (frame_base)
+ {
+ if (form_value.BlockData())
+ {
+ uint32_t block_offset = form_value.BlockData() - debug_info_data.GetDataStart();
+ uint32_t block_length = form_value.Unsigned();
+ frame_base->SetOpcodeData(debug_info_data, block_offset, block_length);
+ }
+ else
+ {
+ const DataExtractor &debug_loc_data = dwarf2Data->get_debug_loc_data();
+ const dw_offset_t debug_loc_offset = form_value.Unsigned();
+
+ size_t loc_list_length = DWARFLocationList::Size(debug_loc_data, debug_loc_offset);
+ if (loc_list_length > 0)
+ {
+ frame_base->SetOpcodeData(debug_loc_data, debug_loc_offset, loc_list_length);
+ if (lo_pc != DW_INVALID_ADDRESS)
+ {
+ assert (lo_pc >= cu->GetBaseAddress());
+ frame_base->SetLocationListSlide(lo_pc - cu->GetBaseAddress());
+ }
+ else
+ {
+ set_frame_base_loclist_addr = true;
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+ }
+
+ if (ranges.IsEmpty())
+ {
+ if (lo_pc != DW_INVALID_ADDRESS)
+ {
+ if (hi_pc != DW_INVALID_ADDRESS && hi_pc > lo_pc)
+ ranges.Append(DWARFDebugRanges::Range (lo_pc, hi_pc - lo_pc));
+ else
+ ranges.Append(DWARFDebugRanges::Range (lo_pc, 0));
+ }
+ }
+
+ if (set_frame_base_loclist_addr)
+ {
+ dw_addr_t lowest_range_pc = ranges.GetMinRangeBase(0);
+ assert (lowest_range_pc >= cu->GetBaseAddress());
+ frame_base->SetLocationListSlide (lowest_range_pc - cu->GetBaseAddress());
+ }
+
+ if (ranges.IsEmpty() || name == NULL || mangled == NULL)
+ {
+ std::vector<dw_offset_t>::const_iterator pos;
+ std::vector<dw_offset_t>::const_iterator end = die_offsets.end();
+ for (pos = die_offsets.begin(); pos != end; ++pos)
+ {
+ DWARFCompileUnitSP cu_sp_ptr;
+ const DWARFDebugInfoEntry* die = NULL;
+ dw_offset_t die_offset = *pos;
+ if (die_offset != DW_INVALID_OFFSET)
+ {
+ die = dwarf2Data->DebugInfo()->GetDIEPtr(die_offset, &cu_sp_ptr);
+ if (die)
+ die->GetDIENamesAndRanges(dwarf2Data, cu_sp_ptr.get(), name, mangled, ranges, decl_file, decl_line, decl_column, call_file, call_line, call_column);
+ }
+ }
+ }
+ return !ranges.IsEmpty();
+}
+
+//----------------------------------------------------------------------
+// Dump
+//
+// Dumps a debug information entry and all of it's attributes to the
+// specified stream.
+//----------------------------------------------------------------------
+void
+DWARFDebugInfoEntry::Dump
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ Stream &s,
+ uint32_t recurse_depth
+) const
+{
+ const DataExtractor& debug_info_data = dwarf2Data->get_debug_info_data();
+ uint32_t offset = m_offset;
+
+ if (debug_info_data.ValidOffset(offset))
+ {
+ dw_uleb128_t abbrCode = debug_info_data.GetULEB128(&offset);
+
+ s.Printf("\n0x%8.8x: ", m_offset);
+ s.Indent();
+ if (abbrCode != m_abbr_idx)
+ {
+ s.Printf( "error: DWARF has been modified\n");
+ }
+ else if (abbrCode)
+ {
+ const DWARFAbbreviationDeclaration* abbrevDecl = cu->GetAbbreviations()->GetAbbreviationDeclaration (abbrCode);
+
+ if (abbrevDecl)
+ {
+ s.PutCString(DW_TAG_value_to_name(abbrevDecl->Tag()));
+ s.Printf( " [%u] %c\n", abbrCode, abbrevDecl->HasChildren() ? '*':' ');
+
+ // Dump all data in the .debug_info for the attributes
+ const uint32_t numAttributes = abbrevDecl->NumAttributes();
+ uint32_t i;
+ dw_attr_t attr;
+ dw_form_t form;
+ for (i=0; i<numAttributes; ++i)
+ {
+ abbrevDecl->GetAttrAndFormByIndexUnchecked(i, attr, form);
+
+ DumpAttribute(dwarf2Data, cu, debug_info_data, &offset, s, attr, form);
+ }
+
+ const DWARFDebugInfoEntry* child = GetFirstChild();
+ if (recurse_depth > 0 && child)
+ {
+ s.IndentMore();
+
+ while (child)
+ {
+ child->Dump(dwarf2Data, cu, s, recurse_depth-1);
+ child = child->GetSibling();
+ }
+ s.IndentLess();
+ }
+ }
+ else
+ s.Printf( "Abbreviation code note found in 'debug_abbrev' class for code: %u\n", abbrCode);
+ }
+ else
+ {
+ s.Printf( "NULL\n");
+ }
+ }
+}
+
+void
+DWARFDebugInfoEntry::DumpLocation
+(
+ SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ Stream &s
+) const
+{
+ const DWARFDebugInfoEntry *cu_die = cu->GetCompileUnitDIEOnly();
+ const char *cu_name = NULL;
+ if (cu_die != NULL)
+ cu_name = cu_die->GetName (dwarf2Data, cu);
+ const char *obj_file_name = NULL;
+ ObjectFile *obj_file = dwarf2Data->GetObjectFile();
+ if (obj_file)
+ obj_file_name = obj_file->GetFileSpec().GetFilename().AsCString();
+ const char *die_name = GetName (dwarf2Data, cu);
+ s.Printf ("0x%8.8x/0x%8.8x: %-30s (from %s in %s)",
+ cu->GetOffset(),
+ GetOffset(),
+ die_name ? die_name : "",
+ cu_name ? cu_name : "<NULL>",
+ obj_file_name ? obj_file_name : "<NULL>");
+}
+
+//----------------------------------------------------------------------
+// DumpAttribute
+//
+// Dumps a debug information entry attribute along with it's form. Any
+// special display of attributes is done (disassemble location lists,
+// show enumeration values for attributes, etc).
+//----------------------------------------------------------------------
+void
+DWARFDebugInfoEntry::DumpAttribute
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const DataExtractor& debug_info_data,
+ uint32_t* offset_ptr,
+ Stream &s,
+ dw_attr_t attr,
+ dw_form_t form
+)
+{
+ bool verbose = s.GetVerbose();
+ bool show_form = s.GetFlags().Test(DWARFDebugInfo::eDumpFlag_ShowForm);
+ const DataExtractor* debug_str_data = dwarf2Data ? &dwarf2Data->get_debug_str_data() : NULL;
+ if (verbose)
+ s.Offset (*offset_ptr);
+ else
+ s.Printf (" ");
+ s.Indent(DW_AT_value_to_name(attr));
+
+ if (show_form)
+ {
+ s.Printf( "[%s", DW_FORM_value_to_name(form));
+ }
+
+ DWARFFormValue form_value(form);
+
+ if (!form_value.ExtractValue(debug_info_data, offset_ptr, cu))
+ return;
+
+ if (show_form)
+ {
+ if (form == DW_FORM_indirect)
+ {
+ s.Printf( " [%s]", DW_FORM_value_to_name(form_value.Form()));
+ }
+
+ s.PutCString("] ");
+ }
+
+ s.PutCString("( ");
+
+ // Always dump form value if verbose is enabled
+ if (verbose)
+ {
+ form_value.Dump(s, debug_str_data, cu);
+ }
+
+
+ // Check to see if we have any special attribute formatters
+ switch (attr)
+ {
+ case DW_AT_stmt_list:
+ if ( verbose ) s.PutCString(" ( ");
+ s.Printf( "0x%8.8llx", form_value.Unsigned());
+ if ( verbose ) s.PutCString(" )");
+ break;
+
+ case DW_AT_language:
+ if ( verbose ) s.PutCString(" ( ");
+ s.PutCString(DW_LANG_value_to_name(form_value.Unsigned()));
+ if ( verbose ) s.PutCString(" )");
+ break;
+
+ case DW_AT_encoding:
+ if ( verbose ) s.PutCString(" ( ");
+ s.PutCString(DW_ATE_value_to_name(form_value.Unsigned()));
+ if ( verbose ) s.PutCString(" )");
+ break;
+
+ case DW_AT_frame_base:
+ case DW_AT_location:
+ case DW_AT_data_member_location:
+ {
+ const uint8_t* blockData = form_value.BlockData();
+ if (blockData)
+ {
+ if (!verbose)
+ form_value.Dump(s, debug_str_data, cu);
+
+ // Location description is inlined in data in the form value
+ DataExtractor locationData(debug_info_data, (*offset_ptr) - form_value.Unsigned(), form_value.Unsigned());
+ if ( verbose ) s.PutCString(" ( ");
+ print_dwarf_expression (s, locationData, DWARFCompileUnit::GetAddressByteSize(cu), 4, false);
+ if ( verbose ) s.PutCString(" )");
+ }
+ else
+ {
+ // We have a location list offset as the value that is
+ // the offset into the .debug_loc section that describes
+ // the value over it's lifetime
+ uint64_t debug_loc_offset = form_value.Unsigned();
+ if (dwarf2Data)
+ {
+ if ( !verbose )
+ form_value.Dump(s, debug_str_data, cu);
+ DWARFLocationList::Dump(s, cu, dwarf2Data->get_debug_loc_data(), debug_loc_offset);
+ }
+ else
+ {
+ if ( !verbose )
+ form_value.Dump(s, NULL, cu);
+ }
+ }
+ }
+ break;
+
+ case DW_AT_abstract_origin:
+ case DW_AT_specification:
+ {
+ uint64_t abstract_die_offset = form_value.Reference(cu);
+ form_value.Dump(s, debug_str_data, cu);
+ // *ostrm_ptr << HEX32 << abstract_die_offset << " ( ";
+ if ( verbose ) s.PutCString(" ( ");
+ GetName(dwarf2Data, cu, abstract_die_offset, s);
+ if ( verbose ) s.PutCString(" )");
+ }
+ break;
+
+ case DW_AT_type:
+ {
+ uint64_t type_die_offset = form_value.Reference(cu);
+ if (!verbose)
+ form_value.Dump(s, debug_str_data, cu);
+ s.PutCString(" ( ");
+ AppendTypeName(dwarf2Data, cu, type_die_offset, s);
+ s.PutCString(" )");
+ }
+ break;
+
+ case DW_AT_ranges:
+ {
+ if ( !verbose )
+ form_value.Dump(s, debug_str_data, cu);
+ uint32_t ranges_offset = form_value.Unsigned();
+ dw_addr_t base_addr = cu ? cu->GetBaseAddress() : 0;
+ DWARFDebugRanges::Dump(s, dwarf2Data->get_debug_ranges_data(), &ranges_offset, base_addr);
+ }
+ break;
+
+ default:
+ if ( !verbose )
+ form_value.Dump(s, debug_str_data, cu);
+ break;
+ }
+
+ s.PutCString(" )\n");
+}
+
+//----------------------------------------------------------------------
+// Get all attribute values for a given DIE, including following any
+// specification or abstract origin attributes and including those in
+// the results. Any duplicate attributes will have the first instance
+// take precedence (this can happen for declaration attributes).
+//----------------------------------------------------------------------
+size_t
+DWARFDebugInfoEntry::GetAttributes
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const uint8_t *fixed_form_sizes,
+ DWARFDebugInfoEntry::Attributes& attributes,
+ uint32_t curr_depth
+) const
+{
+ uint32_t offset;
+ const DWARFAbbreviationDeclaration* abbrevDecl = GetAbbreviationDeclarationPtr(dwarf2Data, cu, offset);
+
+ if (abbrevDecl)
+ {
+ const DataExtractor& debug_info_data = dwarf2Data->get_debug_info_data();
+
+ if (fixed_form_sizes == NULL)
+ fixed_form_sizes = DWARFFormValue::GetFixedFormSizesForAddressSize(cu->GetAddressByteSize());
+
+ const uint32_t num_attributes = abbrevDecl->NumAttributes();
+ uint32_t i;
+ dw_attr_t attr;
+ dw_form_t form;
+ DWARFFormValue form_value;
+ for (i=0; i<num_attributes; ++i)
+ {
+ abbrevDecl->GetAttrAndFormByIndexUnchecked (i, attr, form);
+
+ // If we are tracking down DW_AT_specification or DW_AT_abstract_origin
+ // attributes, the depth will be non-zero. We need to omit certain
+ // attributes that don't make sense.
+ switch (attr)
+ {
+ case DW_AT_sibling:
+ case DW_AT_declaration:
+ if (curr_depth > 0)
+ {
+ // This attribute doesn't make sense when combined with
+ // the DIE that references this DIE. We know a DIE is
+ // referencing this DIE because curr_depth is not zero
+ break;
+ }
+ // Fall through...
+ default:
+ attributes.Append(cu, offset, attr, form);
+ break;
+ }
+
+ if ((attr == DW_AT_specification) || (attr == DW_AT_abstract_origin))
+ {
+ form_value.SetForm(form);
+ if (form_value.ExtractValue(debug_info_data, &offset, cu))
+ {
+ const DWARFDebugInfoEntry* die = NULL;
+ dw_offset_t die_offset = form_value.Reference(cu);
+ if (cu->ContainsDIEOffset(die_offset))
+ {
+ die = const_cast<DWARFCompileUnit*>(cu)->GetDIEPtr(die_offset);
+ if (die)
+ die->GetAttributes(dwarf2Data, cu, fixed_form_sizes, attributes, curr_depth + 1);
+ }
+ else
+ {
+ DWARFCompileUnitSP cu_sp_ptr;
+ die = const_cast<SymbolFileDWARF*>(dwarf2Data)->DebugInfo()->GetDIEPtr(die_offset, &cu_sp_ptr);
+ if (die)
+ die->GetAttributes(dwarf2Data, cu_sp_ptr.get(), fixed_form_sizes, attributes, curr_depth + 1);
+ }
+ }
+ }
+ else
+ {
+ const uint8_t fixed_skip_size = fixed_form_sizes [form];
+ if (fixed_skip_size)
+ offset += fixed_skip_size;
+ else
+ DWARFFormValue::SkipValue(form, debug_info_data, &offset, cu);
+ }
+ }
+ }
+ else
+ {
+ attributes.Clear();
+ }
+ return attributes.Size();
+
+}
+
+//----------------------------------------------------------------------
+// GetAttributeValue
+//
+// Get the value of an attribute and return the .debug_info offset of the
+// attribute if it was properly extracted into form_value, or zero
+// if we fail since an offset of zero is invalid for an attribute (it
+// would be a compile unit header).
+//----------------------------------------------------------------------
+dw_offset_t
+DWARFDebugInfoEntry::GetAttributeValue
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const dw_attr_t attr,
+ DWARFFormValue& form_value,
+ dw_offset_t* end_attr_offset_ptr
+) const
+{
+ uint32_t offset;
+ const DWARFAbbreviationDeclaration* abbrevDecl = GetAbbreviationDeclarationPtr(dwarf2Data, cu, offset);
+
+ if (abbrevDecl)
+ {
+ uint32_t attr_idx = abbrevDecl->FindAttributeIndex(attr);
+
+ if (attr_idx != DW_INVALID_INDEX)
+ {
+ const DataExtractor& debug_info_data = dwarf2Data->get_debug_info_data();
+
+ uint32_t idx=0;
+ while (idx<attr_idx)
+ DWARFFormValue::SkipValue(abbrevDecl->GetFormByIndex(idx++), debug_info_data, &offset, cu);
+
+ const dw_offset_t attr_offset = offset;
+ form_value.SetForm(abbrevDecl->GetFormByIndex(idx));
+ if (form_value.ExtractValue(debug_info_data, &offset, cu))
+ {
+ if (end_attr_offset_ptr)
+ *end_attr_offset_ptr = offset;
+ return attr_offset;
+ }
+ }
+ }
+
+ return 0;
+}
+
+//----------------------------------------------------------------------
+// GetAttributeValueAsString
+//
+// Get the value of an attribute as a string return it. The resulting
+// pointer to the string data exists within the supplied SymbolFileDWARF
+// and will only be available as long as the SymbolFileDWARF is still around
+// and it's content doesn't change.
+//----------------------------------------------------------------------
+const char*
+DWARFDebugInfoEntry::GetAttributeValueAsString
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const dw_attr_t attr,
+ const char* fail_value) const
+{
+ DWARFFormValue form_value;
+ if (GetAttributeValue(dwarf2Data, cu, attr, form_value))
+ return form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ return fail_value;
+}
+
+//----------------------------------------------------------------------
+// GetAttributeValueAsUnsigned
+//
+// Get the value of an attribute as unsigned and return it.
+//----------------------------------------------------------------------
+uint64_t
+DWARFDebugInfoEntry::GetAttributeValueAsUnsigned
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const dw_attr_t attr,
+ uint64_t fail_value
+) const
+{
+ DWARFFormValue form_value;
+ if (GetAttributeValue(dwarf2Data, cu, attr, form_value))
+ return form_value.Unsigned();
+ return fail_value;
+}
+
+//----------------------------------------------------------------------
+// GetAttributeValueAsSigned
+//
+// Get the value of an attribute a signed value and return it.
+//----------------------------------------------------------------------
+int64_t
+DWARFDebugInfoEntry::GetAttributeValueAsSigned
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const dw_attr_t attr,
+ int64_t fail_value
+) const
+{
+ DWARFFormValue form_value;
+ if (GetAttributeValue(dwarf2Data, cu, attr, form_value))
+ return form_value.Signed();
+ return fail_value;
+}
+
+//----------------------------------------------------------------------
+// GetAttributeValueAsReference
+//
+// Get the value of an attribute as reference and fix up and compile
+// unit relative offsets as needed.
+//----------------------------------------------------------------------
+uint64_t
+DWARFDebugInfoEntry::GetAttributeValueAsReference
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const dw_attr_t attr,
+ uint64_t fail_value
+) const
+{
+ DWARFFormValue form_value;
+ if (GetAttributeValue(dwarf2Data, cu, attr, form_value))
+ return form_value.Reference(cu);
+ return fail_value;
+}
+
+//----------------------------------------------------------------------
+// GetAttributeValueAsLocation
+//
+// Get the value of an attribute as reference and fix up and compile
+// unit relative offsets as needed.
+//----------------------------------------------------------------------
+dw_offset_t
+DWARFDebugInfoEntry::GetAttributeValueAsLocation
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const dw_attr_t attr,
+ DataExtractor& location_data,
+ uint32_t &block_size
+) const
+{
+ block_size = 0;
+ DWARFFormValue form_value;
+
+ // Empty out data in case we don't find anything
+ location_data.Clear();
+ dw_offset_t end_addr_offset = DW_INVALID_OFFSET;
+ const dw_offset_t attr_offset = GetAttributeValue(dwarf2Data, cu, attr, form_value, &end_addr_offset);
+ if (attr_offset)
+ {
+ const uint8_t* blockData = form_value.BlockData();
+ if (blockData)
+ {
+ // We have an inlined location list in the .debug_info section
+ const DataExtractor& debug_info = dwarf2Data->get_debug_info_data();
+ dw_offset_t block_offset = blockData - debug_info.GetDataStart();
+ block_size = (end_addr_offset - attr_offset) - form_value.Unsigned();
+ location_data.SetData(debug_info, block_offset, block_size);
+ }
+ else
+ {
+ // We have a location list offset as the value that is
+ // the offset into the .debug_loc section that describes
+ // the value over it's lifetime
+ dw_offset_t debug_loc_offset = form_value.Unsigned();
+ if (dwarf2Data)
+ {
+ assert(dwarf2Data->get_debug_loc_data().GetAddressByteSize() == cu->GetAddressByteSize());
+ return DWARFLocationList::Extract(dwarf2Data->get_debug_loc_data(), &debug_loc_offset, location_data);
+ }
+ }
+ }
+ return attr_offset;
+}
+
+//----------------------------------------------------------------------
+// GetName
+//
+// Get value of the DW_AT_name attribute and return it if one exists,
+// else return NULL.
+//----------------------------------------------------------------------
+const char*
+DWARFDebugInfoEntry::GetName
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu
+) const
+{
+ DWARFFormValue form_value;
+ if (GetAttributeValue(dwarf2Data, cu, DW_AT_name, form_value))
+ return form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ return NULL;
+}
+
+
+//----------------------------------------------------------------------
+// GetMangledName
+//
+// Get value of the DW_AT_MIPS_linkage_name attribute and return it if
+// one exists, else return the value of the DW_AT_name attribute
+//----------------------------------------------------------------------
+const char*
+DWARFDebugInfoEntry::GetMangledName
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ bool substitute_name_allowed
+) const
+{
+ const char* name = NULL;
+ DWARFFormValue form_value;
+
+ if (GetAttributeValue(dwarf2Data, cu, DW_AT_MIPS_linkage_name, form_value))
+ name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+
+ if (substitute_name_allowed && name == NULL)
+ {
+ if (GetAttributeValue(dwarf2Data, cu, DW_AT_name, form_value))
+ name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ }
+ return name;
+}
+
+
+//----------------------------------------------------------------------
+// GetPubname
+//
+// Get value the name for a DIE as it should appear for a
+// .debug_pubnames or .debug_pubtypes section.
+//----------------------------------------------------------------------
+const char*
+DWARFDebugInfoEntry::GetPubname
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu
+) const
+{
+ const char* name = NULL;
+ DWARFFormValue form_value;
+
+ if (GetAttributeValue(dwarf2Data, cu, DW_AT_MIPS_linkage_name, form_value))
+ name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ else if (GetAttributeValue(dwarf2Data, cu, DW_AT_name, form_value))
+ name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ else if (GetAttributeValue(dwarf2Data, cu, DW_AT_specification, form_value))
+ {
+ // The specification DIE may be in another compile unit so we need
+ // to get a die and its compile unit.
+ DWARFCompileUnitSP cu_sp_ptr;
+ const DWARFDebugInfoEntry* die = const_cast<SymbolFileDWARF*>(dwarf2Data)->DebugInfo()->GetDIEPtr(form_value.Reference(cu), &cu_sp_ptr);
+ if (die)
+ return die->GetPubname(dwarf2Data, cu_sp_ptr.get());
+ }
+ return name;
+}
+
+
+//----------------------------------------------------------------------
+// GetName
+//
+// Get value of the DW_AT_name attribute for a debug information entry
+// that exists at offset "die_offset" and place that value into the
+// supplied stream object. If the DIE is a NULL object "NULL" is placed
+// into the stream, and if no DW_AT_name attribute exists for the DIE
+// then nothing is printed.
+//----------------------------------------------------------------------
+bool
+DWARFDebugInfoEntry::GetName
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const uint32_t die_offset,
+ Stream &s
+)
+{
+ DWARFDebugInfoEntry die;
+ uint32_t offset = die_offset;
+ if (die.Extract(dwarf2Data, cu, &offset))
+ {
+ if (die.IsNULL())
+ {
+ s.PutCString("NULL");
+ return true;
+ }
+ else
+ {
+ DWARFFormValue form_value;
+ if (die.GetAttributeValue(dwarf2Data, cu, DW_AT_name, form_value))
+ {
+ const char* name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ if (name)
+ {
+ s.PutCString(name);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+//----------------------------------------------------------------------
+// AppendTypeName
+//
+// Follows the type name definition down through all needed tags to
+// end up with a fully qualified type name and dump the results to
+// the supplied stream. This is used to show the name of types given
+// a type identifier.
+//----------------------------------------------------------------------
+bool
+DWARFDebugInfoEntry::AppendTypeName
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ const uint32_t die_offset,
+ Stream &s
+)
+{
+ DWARFDebugInfoEntry die;
+ uint32_t offset = die_offset;
+ if (die.Extract(dwarf2Data, cu, &offset))
+ {
+ if (die.IsNULL())
+ {
+ s.PutCString("NULL");
+ return true;
+ }
+ else
+ {
+ const char* name = die.GetPubname(dwarf2Data, cu);
+ // if (die.GetAttributeValue(dwarf2Data, cu, DW_AT_name, form_value))
+ // name = form_value.AsCString(&dwarf2Data->get_debug_str_data());
+ if (name)
+ s.PutCString(name);
+ else
+ {
+ bool result = true;
+ const DWARFAbbreviationDeclaration* abbrevDecl = die.GetAbbreviationDeclarationPtr(dwarf2Data, cu, offset);
+
+ switch (abbrevDecl->Tag())
+ {
+ case DW_TAG_array_type: break; // print out a "[]" after printing the full type of the element below
+ case DW_TAG_base_type: s.PutCString("base "); break;
+ case DW_TAG_class_type: s.PutCString("class "); break;
+ case DW_TAG_const_type: s.PutCString("const "); break;
+ case DW_TAG_enumeration_type: s.PutCString("enum "); break;
+ case DW_TAG_file_type: s.PutCString("file "); break;
+ case DW_TAG_interface_type: s.PutCString("interface "); break;
+ case DW_TAG_packed_type: s.PutCString("packed "); break;
+ case DW_TAG_pointer_type: break; // print out a '*' after printing the full type below
+ case DW_TAG_ptr_to_member_type: break; // print out a '*' after printing the full type below
+ case DW_TAG_reference_type: break; // print out a '&' after printing the full type below
+ case DW_TAG_restrict_type: s.PutCString("restrict "); break;
+ case DW_TAG_set_type: s.PutCString("set "); break;
+ case DW_TAG_shared_type: s.PutCString("shared "); break;
+ case DW_TAG_string_type: s.PutCString("string "); break;
+ case DW_TAG_structure_type: s.PutCString("struct "); break;
+ case DW_TAG_subrange_type: s.PutCString("subrange "); break;
+ case DW_TAG_subroutine_type: s.PutCString("function "); break;
+ case DW_TAG_thrown_type: s.PutCString("thrown "); break;
+ case DW_TAG_union_type: s.PutCString("union "); break;
+ case DW_TAG_unspecified_type: s.PutCString("unspecified "); break;
+ case DW_TAG_volatile_type: s.PutCString("volatile "); break;
+ default:
+ return false;
+ }
+
+ // Follow the DW_AT_type if possible
+ DWARFFormValue form_value;
+ if (die.GetAttributeValue(dwarf2Data, cu, DW_AT_type, form_value))
+ {
+ uint64_t next_die_offset = form_value.Reference(cu);
+ result = AppendTypeName(dwarf2Data, cu, next_die_offset, s);
+ }
+
+ switch (abbrevDecl->Tag())
+ {
+ case DW_TAG_array_type: s.PutCString("[]"); break;
+ case DW_TAG_pointer_type: s.PutChar('*'); break;
+ case DW_TAG_ptr_to_member_type: s.PutChar('*'); break;
+ case DW_TAG_reference_type: s.PutChar('&'); break;
+ default:
+ break;
+ }
+ return result;
+ }
+ }
+ }
+ return false;
+}
+
+bool
+DWARFDebugInfoEntry::Contains (const DWARFDebugInfoEntry *die) const
+{
+ if (die)
+ {
+ const dw_offset_t die_offset = die->GetOffset();
+ if (die_offset > GetOffset())
+ {
+ const DWARFDebugInfoEntry *sibling = GetSibling();
+ assert (sibling); // TODO: take this out
+ if (sibling)
+ return die_offset < sibling->GetOffset();
+ }
+ }
+ return false;
+}
+
+//----------------------------------------------------------------------
+// BuildAddressRangeTable
+//----------------------------------------------------------------------
+void
+DWARFDebugInfoEntry::BuildAddressRangeTable
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ DWARFDebugAranges* debug_aranges
+) const
+{
+ if (m_tag)
+ {
+ if (m_tag == DW_TAG_subprogram)
+ {
+ dw_addr_t hi_pc = DW_INVALID_ADDRESS;
+ dw_addr_t lo_pc = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_low_pc, DW_INVALID_ADDRESS);
+ if (lo_pc != DW_INVALID_ADDRESS)
+ hi_pc = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_high_pc, DW_INVALID_ADDRESS);
+ if (hi_pc != DW_INVALID_ADDRESS)
+ {
+ /// printf("BuildAddressRangeTable() 0x%8.8x: %30s: [0x%8.8x - 0x%8.8x)\n", m_offset, DW_TAG_value_to_name(tag), lo_pc, hi_pc);
+ debug_aranges->AppendRange (cu->GetOffset(), lo_pc, hi_pc);
+ }
+ }
+
+
+ const DWARFDebugInfoEntry* child = GetFirstChild();
+ while (child)
+ {
+ child->BuildAddressRangeTable(dwarf2Data, cu, debug_aranges);
+ child = child->GetSibling();
+ }
+ }
+}
+
+//----------------------------------------------------------------------
+// BuildFunctionAddressRangeTable
+//
+// This function is very similar to the BuildAddressRangeTable function
+// except that the actual DIE offset for the function is placed in the
+// table instead of the compile unit offset (which is the way the
+// standard .debug_aranges section does it).
+//----------------------------------------------------------------------
+void
+DWARFDebugInfoEntry::BuildFunctionAddressRangeTable
+(
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ DWARFDebugAranges* debug_aranges
+) const
+{
+ if (m_tag)
+ {
+ if (m_tag == DW_TAG_subprogram)
+ {
+ dw_addr_t hi_pc = DW_INVALID_ADDRESS;
+ dw_addr_t lo_pc = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_low_pc, DW_INVALID_ADDRESS);
+ if (lo_pc != DW_INVALID_ADDRESS)
+ hi_pc = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_high_pc, DW_INVALID_ADDRESS);
+ if (hi_pc != DW_INVALID_ADDRESS)
+ {
+ // printf("BuildAddressRangeTable() 0x%8.8x: [0x%16.16llx - 0x%16.16llx)\n", m_offset, lo_pc, hi_pc); // DEBUG ONLY
+ debug_aranges->AppendRange (GetOffset(), lo_pc, hi_pc);
+ }
+ }
+
+ const DWARFDebugInfoEntry* child = GetFirstChild();
+ while (child)
+ {
+ child->BuildFunctionAddressRangeTable(dwarf2Data, cu, debug_aranges);
+ child = child->GetSibling();
+ }
+ }
+}
+
+void
+DWARFDebugInfoEntry::GetDeclContextDIEs (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ DWARFDIECollection &decl_context_dies) const
+{
+ const DWARFDebugInfoEntry *parent_decl_ctx_die = GetParentDeclContextDIE (dwarf2Data, cu);
+ if (parent_decl_ctx_die && parent_decl_ctx_die != this)
+ {
+ decl_context_dies.Append(parent_decl_ctx_die);
+ parent_decl_ctx_die->GetDeclContextDIEs (dwarf2Data, cu, decl_context_dies);
+ }
+}
+
+void
+DWARFDebugInfoEntry::GetDWARFDeclContext (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ DWARFDeclContext &dwarf_decl_ctx) const
+{
+ const dw_tag_t tag = Tag();
+ if (tag != DW_TAG_compile_unit)
+ {
+ dwarf_decl_ctx.AppendDeclContext(tag, GetName(dwarf2Data, cu));
+ const DWARFDebugInfoEntry *parent_decl_ctx_die = GetParentDeclContextDIE (dwarf2Data, cu);
+ if (parent_decl_ctx_die && parent_decl_ctx_die != this)
+ {
+ if (parent_decl_ctx_die->Tag() != DW_TAG_compile_unit)
+ parent_decl_ctx_die->GetDWARFDeclContext (dwarf2Data, cu, dwarf_decl_ctx);
+ }
+ }
+}
+
+
+bool
+DWARFDebugInfoEntry::MatchesDWARFDeclContext (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ const DWARFDeclContext &dwarf_decl_ctx) const
+{
+
+ DWARFDeclContext this_dwarf_decl_ctx;
+ GetDWARFDeclContext (dwarf2Data, cu, this_dwarf_decl_ctx);
+ return this_dwarf_decl_ctx == dwarf_decl_ctx;
+}
+
+const DWARFDebugInfoEntry *
+DWARFDebugInfoEntry::GetParentDeclContextDIE (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu) const
+{
+ DWARFDebugInfoEntry::Attributes attributes;
+ GetAttributes(dwarf2Data, cu, NULL, attributes);
+ return GetParentDeclContextDIE (dwarf2Data, cu, attributes);
+}
+
+const DWARFDebugInfoEntry *
+DWARFDebugInfoEntry::GetParentDeclContextDIE (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ const DWARFDebugInfoEntry::Attributes& attributes) const
+{
+ const DWARFDebugInfoEntry * die = this;
+
+ while (die != NULL)
+ {
+ // If this is the original DIE that we are searching for a declaration
+ // for, then don't look in the cache as we don't want our own decl
+ // context to be our decl context...
+ if (die != this)
+ {
+ switch (die->Tag())
+ {
+ case DW_TAG_compile_unit:
+ case DW_TAG_namespace:
+ case DW_TAG_structure_type:
+ case DW_TAG_union_type:
+ case DW_TAG_class_type:
+ return die;
+
+ default:
+ break;
+ }
+ }
+
+ dw_offset_t die_offset;
+
+ die_offset = attributes.FormValueAsUnsigned(dwarf2Data, DW_AT_specification, DW_INVALID_OFFSET);
+ if (die_offset != DW_INVALID_OFFSET)
+ {
+ const DWARFDebugInfoEntry *spec_die = cu->GetDIEPtr (die_offset);
+ if (spec_die)
+ {
+ const DWARFDebugInfoEntry *spec_die_decl_ctx_die = spec_die->GetParentDeclContextDIE (dwarf2Data, cu);
+ if (spec_die_decl_ctx_die)
+ return spec_die_decl_ctx_die;
+ }
+ }
+
+ die_offset = attributes.FormValueAsUnsigned(dwarf2Data, DW_AT_abstract_origin, DW_INVALID_OFFSET);
+ if (die_offset != DW_INVALID_OFFSET)
+ {
+ const DWARFDebugInfoEntry *abs_die = cu->GetDIEPtr (die_offset);
+ if (abs_die)
+ {
+ const DWARFDebugInfoEntry *abs_die_decl_ctx_die = abs_die->GetParentDeclContextDIE (dwarf2Data, cu);
+ if (abs_die_decl_ctx_die)
+ return abs_die_decl_ctx_die;
+ }
+ }
+
+ die = die->GetParent();
+ }
+ return NULL;
+}
+
+
+const char *
+DWARFDebugInfoEntry::GetQualifiedName (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ std::string &storage) const
+{
+ DWARFDebugInfoEntry::Attributes attributes;
+ GetAttributes(dwarf2Data, cu, NULL, attributes);
+ return GetQualifiedName (dwarf2Data, cu, attributes, storage);
+}
+
+const char*
+DWARFDebugInfoEntry::GetQualifiedName (SymbolFileDWARF* dwarf2Data,
+ DWARFCompileUnit* cu,
+ const DWARFDebugInfoEntry::Attributes& attributes,
+ std::string &storage) const
+{
+
+ const char *name = GetName (dwarf2Data, cu);
+
+ if (name)
+ {
+ const DWARFDebugInfoEntry *parent_decl_ctx_die = GetParentDeclContextDIE (dwarf2Data, cu);
+ storage.clear();
+ // TODO: change this to get the correct decl context parent....
+ while (parent_decl_ctx_die)
+ {
+ const dw_tag_t parent_tag = parent_decl_ctx_die->Tag();
+ switch (parent_tag)
+ {
+ case DW_TAG_namespace:
+ {
+ const char *namespace_name = parent_decl_ctx_die->GetName (dwarf2Data, cu);
+ if (namespace_name)
+ {
+ storage.insert (0, "::");
+ storage.insert (0, namespace_name);
+ }
+ else
+ {
+ storage.insert (0, "(anonymous namespace)::");
+ }
+ parent_decl_ctx_die = parent_decl_ctx_die->GetParentDeclContextDIE(dwarf2Data, cu);
+ }
+ break;
+
+ case DW_TAG_class_type:
+ case DW_TAG_structure_type:
+ case DW_TAG_union_type:
+ {
+ const char *class_union_struct_name = parent_decl_ctx_die->GetName (dwarf2Data, cu);
+
+ if (class_union_struct_name)
+ {
+ storage.insert (0, "::");
+ storage.insert (0, class_union_struct_name);
+ }
+ parent_decl_ctx_die = parent_decl_ctx_die->GetParentDeclContextDIE(dwarf2Data, cu);
+ }
+ break;
+
+ default:
+ parent_decl_ctx_die = NULL;
+ break;
+ }
+ }
+
+ if (storage.empty())
+ storage.append ("::");
+
+ storage.append (name);
+ }
+ if (storage.empty())
+ return NULL;
+ return storage.c_str();
+}
+
+
+//----------------------------------------------------------------------
+// LookupAddress
+//----------------------------------------------------------------------
+bool
+DWARFDebugInfoEntry::LookupAddress
+(
+ const dw_addr_t address,
+ SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit* cu,
+ DWARFDebugInfoEntry** function_die,
+ DWARFDebugInfoEntry** block_die
+)
+{
+ bool found_address = false;
+ if (m_tag)
+ {
+ bool check_children = false;
+ bool match_addr_range = false;
+ // printf("0x%8.8x: %30s: address = 0x%8.8x - ", m_offset, DW_TAG_value_to_name(tag), address);
+ switch (m_tag)
+ {
+ case DW_TAG_array_type : break;
+ case DW_TAG_class_type : check_children = true; break;
+ case DW_TAG_entry_point : break;
+ case DW_TAG_enumeration_type : break;
+ case DW_TAG_formal_parameter : break;
+ case DW_TAG_imported_declaration : break;
+ case DW_TAG_label : break;
+ case DW_TAG_lexical_block : check_children = true; match_addr_range = true; break;
+ case DW_TAG_member : break;
+ case DW_TAG_pointer_type : break;
+ case DW_TAG_reference_type : break;
+ case DW_TAG_compile_unit : match_addr_range = true; break;
+ case DW_TAG_string_type : break;
+ case DW_TAG_structure_type : check_children = true; break;
+ case DW_TAG_subroutine_type : break;
+ case DW_TAG_typedef : break;
+ case DW_TAG_union_type : break;
+ case DW_TAG_unspecified_parameters : break;
+ case DW_TAG_variant : break;
+ case DW_TAG_common_block : check_children = true; break;
+ case DW_TAG_common_inclusion : break;
+ case DW_TAG_inheritance : break;
+ case DW_TAG_inlined_subroutine : check_children = true; match_addr_range = true; break;
+ case DW_TAG_module : match_addr_range = true; break;
+ case DW_TAG_ptr_to_member_type : break;
+ case DW_TAG_set_type : break;
+ case DW_TAG_subrange_type : break;
+ case DW_TAG_with_stmt : break;
+ case DW_TAG_access_declaration : break;
+ case DW_TAG_base_type : break;
+ case DW_TAG_catch_block : match_addr_range = true; break;
+ case DW_TAG_const_type : break;
+ case DW_TAG_constant : break;
+ case DW_TAG_enumerator : break;
+ case DW_TAG_file_type : break;
+ case DW_TAG_friend : break;
+ case DW_TAG_namelist : break;
+ case DW_TAG_namelist_item : break;
+ case DW_TAG_packed_type : break;
+ case DW_TAG_subprogram : match_addr_range = true; break;
+ case DW_TAG_template_type_parameter : break;
+ case DW_TAG_template_value_parameter : break;
+ case DW_TAG_thrown_type : break;
+ case DW_TAG_try_block : match_addr_range = true; break;
+ case DW_TAG_variant_part : break;
+ case DW_TAG_variable : break;
+ case DW_TAG_volatile_type : break;
+ case DW_TAG_dwarf_procedure : break;
+ case DW_TAG_restrict_type : break;
+ case DW_TAG_interface_type : break;
+ case DW_TAG_namespace : check_children = true; break;
+ case DW_TAG_imported_module : break;
+ case DW_TAG_unspecified_type : break;
+ case DW_TAG_partial_unit : break;
+ case DW_TAG_imported_unit : break;
+ case DW_TAG_shared_type : break;
+ default: break;
+ }
+
+ if (match_addr_range)
+ {
+ dw_addr_t lo_pc = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_low_pc, DW_INVALID_ADDRESS);
+ if (lo_pc != DW_INVALID_ADDRESS)
+ {
+ dw_addr_t hi_pc = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_high_pc, DW_INVALID_ADDRESS);
+ if (hi_pc != DW_INVALID_ADDRESS)
+ {
+ // printf("\n0x%8.8x: %30s: address = 0x%8.8x [0x%8.8x - 0x%8.8x) ", m_offset, DW_TAG_value_to_name(tag), address, lo_pc, hi_pc);
+ if ((lo_pc <= address) && (address < hi_pc))
+ {
+ found_address = true;
+ // puts("***MATCH***");
+ switch (m_tag)
+ {
+ case DW_TAG_compile_unit: // File
+ check_children = ((function_die != NULL) || (block_die != NULL));
+ break;
+
+ case DW_TAG_subprogram: // Function
+ if (function_die)
+ *function_die = this;
+ check_children = (block_die != NULL);
+ break;
+
+ case DW_TAG_inlined_subroutine: // Inlined Function
+ case DW_TAG_lexical_block: // Block { } in code
+ if (block_die)
+ {
+ *block_die = this;
+ check_children = true;
+ }
+ break;
+
+ default:
+ check_children = true;
+ break;
+ }
+ }
+ }
+ else
+ { // compile units may not have a valid high/low pc when there
+ // are address gaps in subroutines so we must always search
+ // if there is no valid high and low PC
+ check_children = (m_tag == DW_TAG_compile_unit) && ((function_die != NULL) || (block_die != NULL));
+ }
+ }
+ else
+ {
+ dw_offset_t debug_ranges_offset = GetAttributeValueAsUnsigned(dwarf2Data, cu, DW_AT_ranges, DW_INVALID_OFFSET);
+ if (debug_ranges_offset != DW_INVALID_OFFSET)
+ {
+ DWARFDebugRanges::RangeList ranges;
+ DWARFDebugRanges* debug_ranges = dwarf2Data->DebugRanges();
+ debug_ranges->FindRanges(debug_ranges_offset, ranges);
+ // All DW_AT_ranges are relative to the base address of the
+ // compile unit. We add the compile unit base address to make
+ // sure all the addresses are properly fixed up.
+ ranges.Slide (cu->GetBaseAddress());
+ if (ranges.FindEntryThatContains(address))
+ {
+ found_address = true;
+ // puts("***MATCH***");
+ switch (m_tag)
+ {
+ case DW_TAG_compile_unit: // File
+ check_children = ((function_die != NULL) || (block_die != NULL));
+ break;
+
+ case DW_TAG_subprogram: // Function
+ if (function_die)
+ *function_die = this;
+ check_children = (block_die != NULL);
+ break;
+
+ case DW_TAG_inlined_subroutine: // Inlined Function
+ case DW_TAG_lexical_block: // Block { } in code
+ if (block_die)
+ {
+ *block_die = this;
+ check_children = true;
+ }
+ break;
+
+ default:
+ check_children = true;
+ break;
+ }
+ }
+ else
+ {
+ check_children = false;
+ }
+ }
+ }
+ }
+
+
+ if (check_children)
+ {
+ // printf("checking children\n");
+ DWARFDebugInfoEntry* child = GetFirstChild();
+ while (child)
+ {
+ if (child->LookupAddress(address, dwarf2Data, cu, function_die, block_die))
+ return true;
+ child = child->GetSibling();
+ }
+ }
+ }
+ return found_address;
+}
+
+const DWARFAbbreviationDeclaration*
+DWARFDebugInfoEntry::GetAbbreviationDeclarationPtr (SymbolFileDWARF* dwarf2Data,
+ const DWARFCompileUnit *cu,
+ dw_offset_t &offset) const
+{
+ offset = GetOffset();
+
+ const DWARFAbbreviationDeclaration* abbrev_decl = cu->GetAbbreviations()->GetAbbreviationDeclaration (m_abbr_idx);
+ if (abbrev_decl)
+ {
+ // Make sure the abbreviation code still matches. If it doesn't and
+ // the DWARF data was mmap'ed, the backing file might have been modified
+ // which is bad news.
+ const uint64_t abbrev_code = dwarf2Data->get_debug_info_data().GetULEB128 (&offset);
+
+ if (abbrev_decl->Code() == abbrev_code)
+ return abbrev_decl;
+
+ dwarf2Data->GetObjectFile()->GetModule()->ReportErrorIfModifyDetected ("0x%8.8x: the DWARF debug information has been modified (abbrev code was %u, and is now %u)",
+ GetOffset(),
+ (uint32_t)abbrev_decl->Code(),
+ (uint32_t)abbrev_code);
+ }
+ offset = DW_INVALID_OFFSET;
+ return NULL;
+}
+
+
+bool
+DWARFDebugInfoEntry::OffsetLessThan (const DWARFDebugInfoEntry& a, const DWARFDebugInfoEntry& b)
+{
+ return a.GetOffset() < b.GetOffset();
+}
+
+void
+DWARFDebugInfoEntry::DumpDIECollection (Stream &strm, DWARFDebugInfoEntry::collection &die_collection)
+{
+ DWARFDebugInfoEntry::const_iterator pos;
+ DWARFDebugInfoEntry::const_iterator end = die_collection.end();
+ strm.PutCString("\noffset parent sibling child\n");
+ strm.PutCString("-------- -------- -------- --------\n");
+ for (pos = die_collection.begin(); pos != end; ++pos)
+ {
+ const DWARFDebugInfoEntry& die_ref = *pos;
+ const DWARFDebugInfoEntry* p = die_ref.GetParent();
+ const DWARFDebugInfoEntry* s = die_ref.GetSibling();
+ const DWARFDebugInfoEntry* c = die_ref.GetFirstChild();
+ strm.Printf("%.8x: %.8x %.8x %.8x 0x%4.4x %s%s\n",
+ die_ref.GetOffset(),
+ p ? p->GetOffset() : 0,
+ s ? s->GetOffset() : 0,
+ c ? c->GetOffset() : 0,
+ die_ref.Tag(),
+ DW_TAG_value_to_name(die_ref.Tag()),
+ die_ref.HasChildren() ? " *" : "");
+ }
+}
+
+
More information about the lldb-commits
mailing list