From 51cd51d658636a0e9e253650d8a6da12e98099dd Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Thu, 30 Sep 2021 09:53:12 -0400 Subject: [PATCH] GP-1005: Added new agent for lldb on macOS and Linux --- .../Debug/Debugger-agent-lldb/Module.manifest | 0 Ghidra/Debug/Debugger-agent-lldb/build.gradle | 114 + .../certification.manifest | 21 + .../src/llvm/lldb/CMakeLists.txt | 109 + .../src/llvm/lldb/LLDBWrapJava.cpp | 41193 ++++++++++++++++ .../src/llvm/lldb/bindings/CMakeLists.txt | 48 + .../llvm/lldb/bindings/java/CMakeLists.txt | 23 + .../lldb/bindings/java/java-typemaps.swig | 21 + .../src/llvm/lldb/bindings/java/java.swig | 25 + .../lldb/cmake/modules/FindJavaAndSwig.cmake | 32 + .../llvm/lldb/cmake/modules/LLDBConfig.cmake | 319 + .../src/llvm/lldb/include/jni.h | 1964 + .../src/llvm/lldb/include/jni_md.h | 26 + .../lldb/include/lldb/Host/Config.h.cmake | 64 + .../src/llvm/lldb/source/API/CMakeLists.txt | 247 + .../src/llvm/lldb/source/API/SBDebugger.cpp | 1904 + .../lldb/source/API/liblldb-private.exports | 8 + .../src/llvm/lldb/source/API/liblldb.exports | 8 + .../Plugins/ScriptInterpreter/CMakeLists.txt | 17 + .../ScriptInterpreter/Java/CMakeLists.txt | 16 + .../Plugins/ScriptInterpreter/Java/Java.cpp | 170 + .../Plugins/ScriptInterpreter/Java/Java.h | 50 + .../Java/ScriptInterpreterJava.cpp | 246 + .../Java/ScriptInterpreterJava.h | 81 + .../tools/debugserver/source/CMakeLists.txt | 348 + .../src/main/java/SWIG/AccessType.java | 62 + .../src/main/java/SWIG/BasicType.java | 90 + .../main/java/SWIG/BreakpointEventType.java | 70 + .../src/main/java/SWIG/ByteArray.java | 62 + .../src/main/java/SWIG/ByteOrder.java | 61 + .../main/java/SWIG/CommandArgumentType.java | 146 + .../src/main/java/SWIG/CommandFlags.java | 66 + .../java/SWIG/CommandInterpreterResult.java | 61 + .../src/main/java/SWIG/ConnectionStatus.java | 64 + .../src/main/java/SWIG/DescriptionLevel.java | 62 + .../src/main/java/SWIG/DynamicValueType.java | 60 + .../java/SWIG/EmulateInstructionOptions.java | 60 + .../src/main/java/SWIG/Encoding.java | 62 + .../src/main/java/SWIG/ErrorType.java | 63 + .../java/SWIG/ExpressionEvaluationPhase.java | 61 + .../src/main/java/SWIG/ExpressionResults.java | 67 + .../src/main/java/SWIG/FilePermissions.java | 83 + .../src/main/java/SWIG/Format.java | 100 + .../src/main/java/SWIG/FrameComparison.java | 63 + .../src/main/java/SWIG/FunctionNameType.java | 64 + .../src/main/java/SWIG/GdbSignal.java | 63 + .../src/main/java/SWIG/InputReaderAction.java | 65 + .../java/SWIG/InputReaderGranularity.java | 62 + .../java/SWIG/InstrumentationRuntimeType.java | 63 + .../src/main/java/SWIG/LanguageType.java | 96 + .../src/main/java/SWIG/LaunchFlags.java | 71 + .../src/main/java/SWIG/MatchType.java | 60 + .../main/java/SWIG/MemberFunctionKind.java | 62 + .../src/main/java/SWIG/PathType.java | 66 + .../src/main/java/SWIG/Permissions.java | 60 + .../src/main/java/SWIG/QueueItemKind.java | 60 + .../src/main/java/SWIG/QueueKind.java | 60 + .../src/main/java/SWIG/RegisterKind.java | 63 + .../src/main/java/SWIG/ReturnStatus.java | 65 + .../src/main/java/SWIG/RunMode.java | 60 + .../src/main/java/SWIG/SBAddress.java | 132 + .../src/main/java/SWIG/SBAttachInfo.java | 184 + .../src/main/java/SWIG/SBBlock.java | 124 + .../src/main/java/SWIG/SBBreakpoint.java | 256 + .../src/main/java/SWIG/SBBreakpointList.java | 76 + .../main/java/SWIG/SBBreakpointLocation.java | 172 + .../src/main/java/SWIG/SBBreakpointName.java | 200 + .../src/main/java/SWIG/SBBroadcaster.java | 104 + .../main/java/SWIG/SBCommandInterpreter.java | 178 + .../SWIG/SBCommandInterpreterRunOptions.java | 96 + .../main/java/SWIG/SBCommandReturnObject.java | 176 + .../src/main/java/SWIG/SBCommunication.java | 119 + .../src/main/java/SWIG/SBCompileUnit.java | 108 + .../src/main/java/SWIG/SBData.java | 200 + .../src/main/java/SWIG/SBDebugger.java | 443 + .../src/main/java/SWIG/SBDeclaration.java | 88 + .../src/main/java/SWIG/SBEnvironment.java | 92 + .../src/main/java/SWIG/SBError.java | 120 + .../src/main/java/SWIG/SBEvent.java | 92 + .../main/java/SWIG/SBExecutionContext.java | 84 + .../main/java/SWIG/SBExpressionOptions.java | 236 + .../src/main/java/SWIG/SBFile.java | 92 + .../src/main/java/SWIG/SBFileSpec.java | 108 + .../src/main/java/SWIG/SBFileSpecList.java | 80 + .../src/main/java/SWIG/SBFrame.java | 220 + .../src/main/java/SWIG/SBFunction.java | 116 + .../src/main/java/SWIG/SBHostOS.java | 84 + .../src/main/java/SWIG/SBInstruction.java | 120 + .../src/main/java/SWIG/SBInstructionList.java | 96 + .../src/main/java/SWIG/SBLanguageRuntime.java | 56 + .../src/main/java/SWIG/SBLaunchInfo.java | 223 + .../src/main/java/SWIG/SBLineEntry.java | 96 + .../src/main/java/SWIG/SBListener.java | 124 + .../main/java/SWIG/SBMemoryRegionInfo.java | 92 + .../java/SWIG/SBMemoryRegionInfoList.java | 72 + .../src/main/java/SWIG/SBModule.java | 232 + .../src/main/java/SWIG/SBModuleSpec.java | 121 + .../src/main/java/SWIG/SBModuleSpecList.java | 88 + .../src/main/java/SWIG/SBPlatform.java | 164 + .../java/SWIG/SBPlatformConnectOptions.java | 80 + .../java/SWIG/SBPlatformShellCommand.java | 104 + .../src/main/java/SWIG/SBProcess.java | 358 + .../src/main/java/SWIG/SBProcessInfo.java | 104 + .../src/main/java/SWIG/SBQueue.java | 100 + .../src/main/java/SWIG/SBQueueItem.java | 84 + .../src/main/java/SWIG/SBReproducer.java | 64 + .../src/main/java/SWIG/SBSection.java | 124 + .../src/main/java/SWIG/SBSourceManager.java | 56 + .../src/main/java/SWIG/SBStream.java | 88 + .../src/main/java/SWIG/SBStringList.java | 79 + .../src/main/java/SWIG/SBStructuredData.java | 124 + .../src/main/java/SWIG/SBSymbol.java | 108 + .../src/main/java/SWIG/SBSymbolContext.java | 116 + .../main/java/SWIG/SBSymbolContextList.java | 84 + .../src/main/java/SWIG/SBTarget.java | 556 + .../src/main/java/SWIG/SBThread.java | 314 + .../main/java/SWIG/SBThreadCollection.java | 64 + .../src/main/java/SWIG/SBThreadPlan.java | 140 + .../src/main/java/SWIG/SBTrace.java | 72 + .../src/main/java/SWIG/SBTraceOptions.java | 92 + .../src/main/java/SWIG/SBType.java | 224 + .../src/main/java/SWIG/SBTypeCategory.java | 184 + .../src/main/java/SWIG/SBTypeEnumMember.java | 80 + .../main/java/SWIG/SBTypeEnumMemberList.java | 68 + .../src/main/java/SWIG/SBTypeFilter.java | 100 + .../src/main/java/SWIG/SBTypeFormat.java | 108 + .../src/main/java/SWIG/SBTypeList.java | 64 + .../src/main/java/SWIG/SBTypeMember.java | 84 + .../main/java/SWIG/SBTypeMemberFunction.java | 96 + .../main/java/SWIG/SBTypeNameSpecifier.java | 92 + .../src/main/java/SWIG/SBTypeSummary.java | 128 + .../main/java/SWIG/SBTypeSummaryOptions.java | 72 + .../src/main/java/SWIG/SBTypeSynthetic.java | 108 + .../src/main/java/SWIG/SBUnixSignals.java | 100 + .../src/main/java/SWIG/SBValue.java | 397 + .../src/main/java/SWIG/SBValueList.java | 88 + .../main/java/SWIG/SBVariablesOptions.java | 112 + .../src/main/java/SWIG/SBWatchpoint.java | 124 + .../src/main/java/SWIG/SWIGTYPE_p_JNIEnv.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_bool.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_byte.java | 30 + .../src/main/java/SWIG/SWIGTYPE_p_char.java | 30 + .../src/main/java/SWIG/SWIGTYPE_p_double.java | 31 + ...TYPE_p_f_p_q_const__char_p_void__void.java | 31 + .../SWIG/SWIGTYPE_p_f_p_void__p_void.java | 31 + ...f_p_void_p_q_const__void_size_t__void.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_float.java | 30 + .../src/main/java/SWIG/SWIGTYPE_p_int.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_jbyte.java | 30 + .../SWIGTYPE_p_lldb__ConnectionStatus.java | 31 + .../java/SWIG/SWIGTYPE_p_long_double.java | 31 + .../main/java/SWIG/SWIGTYPE_p_long_long.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_p_char.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_p_void.java | 31 + .../main/java/SWIG/SWIGTYPE_p_pthread_t.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_size_t.java | 31 + ...td__shared_ptrT_lldb_private__Event_t.java | 31 + ...std__shared_ptrT_lldb_private__File_t.java | 31 + ...shared_ptrT_lldb_private__QueueItem_t.java | 31 + ...td__shared_ptrT_lldb_private__Queue_t.java | 31 + ...hared_ptrT_lldb_private__ThreadPlan_t.java | 31 + .../java/SWIG/SWIGTYPE_p_unsigned_char.java | 31 + .../java/SWIG/SWIGTYPE_p_unsigned_int.java | 31 + .../SWIG/SWIGTYPE_p_unsigned_long_long.java | 31 + .../src/main/java/SWIG/SWIGTYPE_p_void.java | 31 + .../src/main/java/SWIG/ScriptLanguage.java | 62 + .../src/main/java/SWIG/SearchDepth.java | 65 + .../src/main/java/SWIG/SectionType.java | 117 + .../src/main/java/SWIG/StateType.java | 70 + .../src/main/java/SWIG/StopReason.java | 68 + .../src/main/java/SWIG/StopShowColumn.java | 61 + .../main/java/SWIG/StructuredDataType.java | 66 + .../src/main/java/SWIG/SymbolContextItem.java | 66 + .../src/main/java/SWIG/SymbolType.java | 87 + .../main/java/SWIG/TemplateArgumentKind.java | 67 + .../src/main/java/SWIG/TraceType.java | 59 + .../src/main/java/SWIG/TypeClass.java | 78 + .../src/main/java/SWIG/TypeFlags.java | 80 + .../src/main/java/SWIG/TypeOptions.java | 68 + .../main/java/SWIG/TypeSummaryCapping.java | 59 + .../src/main/java/SWIG/ValueType.java | 66 + .../main/java/SWIG/WatchpointEventType.java | 67 + .../src/main/java/SWIG/WatchpointKind.java | 59 + .../src/main/java/SWIG/lldb.java | 15 + .../src/main/java/SWIG/lldbConstants.java | 72 + .../src/main/java/SWIG/lldbJNI.java | 2221 + .../lldb/LldbInJvmDebuggerModelFactory.java | 51 + .../java/agent/lldb/gadp/LldbGadpServer.java | 188 + .../gadp/LldbLocalDebuggerModelFactory.java | 78 + .../impl/AbstractClientThreadExecutor.java | 201 + .../gadp/impl/LldbClientThreadExecutor.java | 64 + .../lldb/gadp/impl/LldbGadpServerImpl.java | 64 + .../java/agent/lldb/lldb/DebugBreakpoint.java | 86 + .../agent/lldb/lldb/DebugBreakpointInfo.java | 39 + .../java/agent/lldb/lldb/DebugClient.java | 424 + .../java/agent/lldb/lldb/DebugClientImpl.java | 518 + .../agent/lldb/lldb/DebugClientReentrant.java | 40 + .../agent/lldb/lldb/DebugEventCallbacks.java | 118 + .../java/agent/lldb/lldb/DebugEventInfo.java | 58 + .../java/agent/lldb/lldb/DebugModuleInfo.java | 93 + .../agent/lldb/lldb/DebugOutputCallbacks.java | 24 + .../agent/lldb/lldb/DebugProcessInfo.java | 56 + .../java/agent/lldb/lldb/DebugRegisters.java | 162 + .../java/agent/lldb/lldb/DebugServerId.java | 58 + .../agent/lldb/lldb/DebugSessionInfo.java | 54 + .../java/agent/lldb/lldb/DebugThreadInfo.java | 55 + .../main/java/agent/lldb/lldb/DebugValue.java | 452 + .../lldb/util/DebugEventCallbacksAdapter.java | 139 + .../java/agent/lldb/manager/LldbCause.java | 31 + .../java/agent/lldb/manager/LldbCommand.java | 76 + .../java/agent/lldb/manager/LldbEvent.java | 64 + .../lldb/manager/LldbEventsListener.java | 229 + .../manager/LldbEventsListenerAdapter.java | 147 + .../java/agent/lldb/manager/LldbManager.java | 434 + .../java/agent/lldb/manager/LldbReason.java | 44 + .../agent/lldb/manager/LldbStateListener.java | 37 + .../breakpoint/LldbBreakpointDisp.java | 32 + .../breakpoint/LldbBreakpointInfo.java | 212 + .../breakpoint/LldbBreakpointInsertions.java | 84 + .../breakpoint/LldbBreakpointType.java | 59 + .../lldb/manager/cmd/AbstractLldbCommand.java | 65 + .../manager/cmd/LldbAddProcessCommand.java | 36 + .../manager/cmd/LldbAddSessionCommand.java | 36 + .../lldb/manager/cmd/LldbAttachCommand.java | 91 + .../manager/cmd/LldbAttachKernelCommand.java | 73 + .../lldb/manager/cmd/LldbCommandError.java | 59 + .../manager/cmd/LldbConsoleExecCommand.java | 67 + .../lldb/manager/cmd/LldbContinueCommand.java | 74 + .../cmd/LldbDeleteBreakpointsCommand.java | 57 + .../lldb/manager/cmd/LldbDestroyCommand.java | 38 + .../lldb/manager/cmd/LldbDetachCommand.java | 51 + .../cmd/LldbDisableBreakpointsCommand.java | 60 + .../cmd/LldbEnableBreakpointsCommand.java | 60 + .../lldb/manager/cmd/LldbEvaluateCommand.java | 41 + .../cmd/LldbInsertBreakpointCommand.java | 102 + .../lldb/manager/cmd/LldbKillCommand.java | 38 + .../manager/cmd/LldbLaunchProcessCommand.java | 89 + .../LldbLaunchProcessWithOptionsCommand.java | 122 + .../LldbListAvailableProcessesCommand.java | 64 + .../LldbListBreakpointLocationsCommand.java | 54 + .../cmd/LldbListBreakpointsCommand.java | 73 + .../cmd/LldbListEnvironmentCommand.java | 48 + .../cmd/LldbListMemoryRegionsCommand.java | 51 + .../cmd/LldbListModuleSectionsCommand.java | 49 + .../cmd/LldbListModuleSymbolsCommand.java | 49 + .../manager/cmd/LldbListModulesCommand.java | 62 + .../manager/cmd/LldbListProcessesCommand.java | 65 + .../manager/cmd/LldbListSessionsCommand.java | 60 + ...ldbListStackFrameRegisterBanksCommand.java | 50 + .../LldbListStackFrameRegistersCommand.java | 49 + .../cmd/LldbListStackFramesCommand.java | 49 + .../manager/cmd/LldbListThreadsCommand.java | 64 + .../lldb/manager/cmd/LldbOpenDumpCommand.java | 70 + .../lldb/manager/cmd/LldbPendingCommand.java | 211 + .../manager/cmd/LldbReadMemoryCommand.java | 87 + .../manager/cmd/LldbRemoveProcessCommand.java | 38 + .../cmd/LldbRequestActivationCommand.java | 46 + .../manager/cmd/LldbRequestFocusCommand.java | 45 + .../cmd/LldbSetActiveProcessCommand.java | 44 + .../cmd/LldbSetActiveSessionCommand.java | 43 + .../cmd/LldbSetActiveThreadCommand.java | 46 + .../lldb/manager/cmd/LldbStepCommand.java | 113 + .../manager/cmd/LldbThreadHoldCommand.java | 66 + .../manager/cmd/LldbWriteMemoryCommand.java | 63 + .../AbstractLldbCompletedCommandEvent.java | 34 + .../lldb/manager/evt/AbstractLldbEvent.java | 84 + ...ldbBreakpointAutoContinueChangedEvent.java | 47 + .../LldbBreakpointCommandChangedEvent.java | 47 + .../LldbBreakpointConditionChangedEvent.java | 47 + .../evt/LldbBreakpointCreatedEvent.java | 47 + .../evt/LldbBreakpointDeletedEvent.java | 36 + .../evt/LldbBreakpointDisabledEvent.java | 47 + .../evt/LldbBreakpointEnabledEvent.java | 47 + .../manager/evt/LldbBreakpointHitEvent.java | 25 + .../evt/LldbBreakpointIgnoreChangedEvent.java | 47 + .../evt/LldbBreakpointInvalidatedEvent.java | 47 + .../LldbBreakpointLocationsAddedEvent.java | 47 + .../LldbBreakpointLocationsRemovedEvent.java | 47 + .../LldbBreakpointLocationsResolvedEvent.java | 47 + .../evt/LldbBreakpointModifiedEvent.java | 57 + .../evt/LldbBreakpointThreadChangedEvent.java | 47 + .../evt/LldbBreakpointTypeChangedEvent.java | 45 + .../manager/evt/LldbCommandDoneEvent.java | 46 + .../manager/evt/LldbCommandErrorEvent.java | 45 + .../manager/evt/LldbCommandRunningEvent.java | 33 + .../manager/evt/LldbConsoleOutputEvent.java | 58 + .../lldb/manager/evt/LldbExceptionEvent.java | 25 + .../lldb/manager/evt/LldbInterruptEvent.java | 34 + .../manager/evt/LldbModuleLoadedEvent.java | 28 + .../manager/evt/LldbModuleUnloadedEvent.java | 28 + .../manager/evt/LldbProcessCreatedEvent.java | 33 + .../manager/evt/LldbProcessExitedEvent.java | 31 + .../manager/evt/LldbProcessReplacedEvent.java | 38 + .../manager/evt/LldbProcessSelectedEvent.java | 49 + .../manager/evt/LldbProfileDataEvent.java | 34 + .../lldb/manager/evt/LldbRunningEvent.java | 49 + .../evt/LldbSelectedFrameChangedEvent.java | 66 + .../manager/evt/LldbSessionCreatedEvent.java | 25 + .../manager/evt/LldbSessionExitedEvent.java | 36 + .../manager/evt/LldbSessionReplacedEvent.java | 26 + .../manager/evt/LldbSessionSelectedEvent.java | 49 + .../manager/evt/LldbStateChangedEvent.java | 55 + .../lldb/manager/evt/LldbStoppedEvent.java | 58 + .../manager/evt/LldbStructuredDataEvent.java | 34 + .../manager/evt/LldbSymbolsLoadedEvent.java | 34 + .../lldb/manager/evt/LldbSystemsEvent.java | 29 + .../manager/evt/LldbThreadCreatedEvent.java | 26 + .../manager/evt/LldbThreadExitedEvent.java | 24 + .../manager/evt/LldbThreadReplacedEvent.java | 26 + .../manager/evt/LldbThreadResumedEvent.java | 28 + .../manager/evt/LldbThreadSelectedEvent.java | 66 + .../evt/LldbThreadStackChangedEvent.java | 28 + .../manager/evt/LldbThreadSuspendedEvent.java | 28 + .../manager/evt/LldbWatchpointHitEvent.java | 25 + .../impl/LldbDebugOutputCallbacks.java | 33 + .../lldb/manager/impl/LldbManagerImpl.java | 1649 + .../agent/lldb/model/AbstractLldbModel.java | 45 + .../iface1/LldbModelSelectableObject.java | 35 + .../LldbModelTargetAccessConditioned.java | 36 + .../iface1/LldbModelTargetActiveScope.java | 68 + .../iface1/LldbModelTargetAttachable.java | 31 + .../model/iface1/LldbModelTargetAttacher.java | 40 + .../iface1/LldbModelTargetConfigurable.java | 28 + .../iface1/LldbModelTargetDeletable.java | 35 + .../iface1/LldbModelTargetDetachable.java | 35 + .../iface1/LldbModelTargetEnvironment.java | 40 + .../iface1/LldbModelTargetEventScope.java | 28 + .../LldbModelTargetExecutionStateful.java | 44 + .../iface1/LldbModelTargetFocusScope.java | 78 + .../iface1/LldbModelTargetInterpreter.java | 44 + .../iface1/LldbModelTargetInterruptible.java | 38 + .../model/iface1/LldbModelTargetKillable.java | 37 + .../model/iface1/LldbModelTargetLauncher.java | 36 + .../model/iface1/LldbModelTargetMethod.java | 28 + .../iface1/LldbModelTargetResumable.java | 35 + .../iface1/LldbModelTargetSteppable.java | 30 + .../iface2/LldbModelTargetAvailable.java | 28 + .../LldbModelTargetAvailableContainer.java | 22 + .../LldbModelTargetBreakpointContainer.java | 97 + .../LldbModelTargetBreakpointLocation.java | 28 + ...odelTargetBreakpointLocationContainer.java | 39 + .../iface2/LldbModelTargetBreakpointSpec.java | 97 + .../iface2/LldbModelTargetConnector.java | 41 + .../LldbModelTargetConnectorContainer.java | 22 + .../iface2/LldbModelTargetDebugContainer.java | 24 + .../model/iface2/LldbModelTargetFunction.java | 20 + .../LldbModelTargetMemoryContainer.java | 34 + .../iface2/LldbModelTargetMemoryRegion.java | 35 + .../model/iface2/LldbModelTargetModule.java | 71 + .../LldbModelTargetModuleContainer.java | 38 + .../iface2/LldbModelTargetModuleSection.java | 26 + ...LldbModelTargetModuleSectionContainer.java | 23 + .../model/iface2/LldbModelTargetObject.java | 87 + .../model/iface2/LldbModelTargetProcess.java | 52 + .../LldbModelTargetProcessContainer.java | 28 + .../model/iface2/LldbModelTargetRegister.java | 37 + .../iface2/LldbModelTargetRegisterBank.java | 59 + .../LldbModelTargetRegisterContainer.java | 23 + ...dbModelTargetRegisterContainerAndBank.java | 29 + .../model/iface2/LldbModelTargetRoot.java | 40 + .../model/iface2/LldbModelTargetSession.java | 66 + .../LldbModelTargetSessionAttributes.java | 25 + ...delTargetSessionAttributesEnvironment.java | 24 + ...bModelTargetSessionAttributesPlatform.java | 24 + .../LldbModelTargetSessionContainer.java | 36 + .../model/iface2/LldbModelTargetStack.java | 26 + .../iface2/LldbModelTargetStackFrame.java | 106 + .../LldbModelTargetStackFrameRegister.java | 50 + ...LldbModelTargetStackFrameRegisterBank.java | 38 + ...odelTargetStackFrameRegisterContainer.java | 46 + .../model/iface2/LldbModelTargetSymbol.java | 31 + .../LldbModelTargetSymbolContainer.java | 27 + .../model/iface2/LldbModelTargetThread.java | 62 + .../LldbModelTargetThreadContainer.java | 34 + .../impl/LldbModelDefaultTargetModelRoot.java | 33 + .../agent/lldb/model/impl/LldbModelImpl.java | 188 + .../LldbModelTargetAbstractXpointSpec.java | 184 + ...LldbModelTargetAvailableContainerImpl.java | 104 + .../impl/LldbModelTargetAvailableImpl.java | 91 + ...ldbModelTargetBreakpointContainerImpl.java | 154 + ...TargetBreakpointLocationContainerImpl.java | 90 + ...LldbModelTargetBreakpointLocationImpl.java | 145 + .../LldbModelTargetBreakpointSpecImpl.java | 143 + ...LldbModelTargetConnectorContainerImpl.java | 120 + .../LldbModelTargetDebugContainerImpl.java | 57 + .../impl/LldbModelTargetFunctionImpl.java | 96 + .../LldbModelTargetKernelConnectorImpl.java | 94 + .../LldbModelTargetMemoryContainerImpl.java | 147 + .../impl/LldbModelTargetMemoryRegionImpl.java | 115 + .../LldbModelTargetModuleContainerImpl.java | 129 + .../model/impl/LldbModelTargetModuleImpl.java | 122 + ...ModelTargetModuleSectionContainerImpl.java | 101 + .../LldbModelTargetModuleSectionImpl.java | 83 + .../model/impl/LldbModelTargetObjectImpl.java | 257 + ...argetProcessAttachByNameConnectorImpl.java | 90 + ...argetProcessAttachByPathConnectorImpl.java | 94 + ...TargetProcessAttachByPidConnectorImpl.java | 86 + .../LldbModelTargetProcessContainerImpl.java | 193 + .../impl/LldbModelTargetProcessImpl.java | 285 + ...ModelTargetProcessLaunchConnectorImpl.java | 97 + ...ProcessLaunchWithOptionsConnectorImpl.java | 160 + .../model/impl/LldbModelTargetRootImpl.java | 169 + ...argetSessionAttributesEnvironmentImpl.java | 47 + .../LldbModelTargetSessionAttributesImpl.java | 95 + ...elTargetSessionAttributesPlatformImpl.java | 116 + .../LldbModelTargetSessionContainerImpl.java | 89 + .../impl/LldbModelTargetSessionImpl.java | 142 + .../impl/LldbModelTargetStackFrameImpl.java | 201 + ...ModelTargetStackFrameRegisterBankImpl.java | 160 + ...TargetStackFrameRegisterContainerImpl.java | 100 + ...LldbModelTargetStackFrameRegisterImpl.java | 117 + .../model/impl/LldbModelTargetStackImpl.java | 95 + .../LldbModelTargetSymbolContainerImpl.java | 71 + .../model/impl/LldbModelTargetSymbolImpl.java | 110 + .../LldbModelTargetThreadContainerImpl.java | 175 + .../model/impl/LldbModelTargetThreadImpl.java | 194 + ...dbModelTargetTraceOrDumpConnectorImpl.java | 84 + .../LldbModelTargetWatchpointSpecImpl.java | 89 + .../test/java/agent/lldb/lldb/LLDBTest.java | 978 + .../lldb/model/AbstractLldbModelHost.java | 27 + .../AbstractModelForLldbActivationTest.java | 113 + .../AbstractModelForLldbBreakpointsTest.java | 200 + .../AbstractModelForLldbFactoryTest.java | 28 + ...stractModelForLldbFrameActivationTest.java | 77 + .../AbstractModelForLldbInterpreterTest.java | 84 + ...ractModelForLldbProcessActivationTest.java | 176 + .../AbstractModelForLldbRootAttacherTest.java | 94 + .../AbstractModelForLldbRootLauncherTest.java | 72 + ...ractModelForLldbScenarioCloneExitTest.java | 32 + ...bstractModelForLldbScenarioMemoryTest.java | 73 + ...AbstractModelForLldbScenarioStackTest.java | 67 + ...tModelForLldbScenarioX64RegistersTest.java | 70 + ...ractModelForLldbSessionActivationTest.java | 182 + .../AbstractModelForLldbSteppableTest.java | 39 + ...tractModelForLldbThreadActivationTest.java | 87 + .../AbstractModelForLldbX64RegistersTest.java | 167 + ...tractModelForlldbScenarioForkExitTest.java | 49 + .../java/agent/lldb/model/MacOSSpecimen.java | 140 + .../lldb/model/invm/InVmLldbModelHost.java | 29 + .../invm/InVmModelForLldbBreakpointsTest.java | 114 + .../invm/InVmModelForLldbFactoryTest.java | 25 + .../InVmModelForLldbFrameActivationTest.java | 47 + .../invm/InVmModelForLldbInterpreterTest.java | 64 + ...InVmModelForLldbProcessActivationTest.java | 60 + .../InVmModelForLldbRootAttacherTest.java | 40 + .../InVmModelForLldbRootLauncherTest.java | 25 + ...InVmModelForLldbScenarioCloneExitTest.java | 26 + .../InVmModelForLldbScenarioForkExitTest.java | 35 + .../InVmModelForLldbScenarioMemoryTest.java | 25 + .../InVmModelForLldbScenarioStackTest.java | 25 + ...mModelForLldbScenarioX64RegistersTest.java | 26 + ...InVmModelForLldbSessionActivationTest.java | 60 + .../invm/InVmModelForLldbSteppableTest.java | 25 + .../InVmModelForLldbThreadActivationTest.java | 55 + .../InVmModelForLldbX64RegistersTest.java | 27 + .../gui/listing/DebuggerListingProvider.java | 3 +- .../AbstractLldbDebuggerMappingOffer.java | 41 + .../LldbArmDebuggerMappingOpinion.java | 84 + .../LldbDebuggerProgramLaunchOpinion.java | 118 + .../debug/platform/LldbTargetTraceMapper.java | 41 + .../LldbX86DebuggerMappingOpinion.java | 177 + Ghidra/Debug/Framework-Debugging/build.gradle | 5 + .../src/expSpin/c/expSpin.c | 10 + .../AbstractDebuggerModelRegistersTest.java | 9 + ...actDebuggerModelScenarioRegistersTest.java | 23 +- .../ghidra/dbg/test/AbstractModelHost.java | 18 +- .../testutil/TestDebuggerModelProvider.java | 6 + ...pache_License_2.0_with_LLVM_Exceptions.txt | 279 + licenses/certification.manifest | 1 + 469 files changed, 87645 insertions(+), 8 deletions(-) create mode 100644 Ghidra/Debug/Debugger-agent-lldb/Module.manifest create mode 100644 Ghidra/Debug/Debugger-agent-lldb/build.gradle create mode 100644 Ghidra/Debug/Debugger-agent-lldb/certification.manifest create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/LLDBWrapJava.cpp create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java-typemaps.swig create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java.swig create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/FindJavaAndSwig.cmake create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/LLDBConfig.cmake create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni.h create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni_md.h create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/lldb/Host/Config.h.cmake create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/SBDebugger.cpp create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb-private.exports create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb.exports create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.cpp create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.h create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.cpp create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.h create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/tools/debugserver/source/CMakeLists.txt create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/AccessType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BasicType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BreakpointEventType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteArray.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteOrder.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandArgumentType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandFlags.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandInterpreterResult.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ConnectionStatus.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DescriptionLevel.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DynamicValueType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/EmulateInstructionOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Encoding.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ErrorType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionEvaluationPhase.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionResults.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FilePermissions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Format.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FrameComparison.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FunctionNameType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/GdbSignal.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderAction.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderGranularity.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InstrumentationRuntimeType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LanguageType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LaunchFlags.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MatchType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MemberFunctionKind.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/PathType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Permissions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueItemKind.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueKind.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RegisterKind.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ReturnStatus.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RunMode.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAddress.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAttachInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBlock.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpoint.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointLocation.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointName.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBroadcaster.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreter.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreterRunOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandReturnObject.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommunication.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCompileUnit.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBData.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDebugger.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDeclaration.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEnvironment.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBError.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExecutionContext.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExpressionOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFile.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpec.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpecList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFrame.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFunction.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBHostOS.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstruction.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstructionList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLanguageRuntime.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLaunchInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLineEntry.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBListener.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfoList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModule.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpec.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpecList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatform.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformConnectOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformShellCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcess.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcessInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueue.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueueItem.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBReproducer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSection.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSourceManager.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStream.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStringList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStructuredData.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbol.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContext.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContextList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTarget.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThread.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadCollection.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadPlan.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTrace.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTraceOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeCategory.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMember.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMemberList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFilter.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFormat.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMember.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMemberFunction.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeNameSpecifier.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummary.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummaryOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSynthetic.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBUnixSignals.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValue.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValueList.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBVariablesOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBWatchpoint.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_JNIEnv.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_bool.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_byte.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_char.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_double.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_q_const__char_p_void__void.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void__p_void.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_float.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_int.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_jbyte.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_lldb__ConnectionStatus.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_double.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_long.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_char.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_void.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_pthread_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_size_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_char.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_int.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_long_long.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_void.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ScriptLanguage.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SearchDepth.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SectionType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StateType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopReason.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopShowColumn.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StructuredDataType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolContextItem.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TemplateArgumentKind.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TraceType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeClass.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeFlags.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeOptions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeSummaryCapping.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ValueType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointEventType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointKind.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldb.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbConstants.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbJNI.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/LldbInJvmDebuggerModelFactory.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbGadpServer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbLocalDebuggerModelFactory.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/AbstractClientThreadExecutor.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbClientThreadExecutor.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbGadpServerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpoint.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpointInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClient.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientReentrant.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventCallbacks.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugModuleInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugOutputCallbacks.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugProcessInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugRegisters.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugServerId.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugSessionInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugThreadInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugValue.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/util/DebugEventCallbacksAdapter.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCause.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListener.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListenerAdapter.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbManager.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbReason.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbStateListener.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointDisp.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInfo.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInsertions.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointType.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/AbstractLldbCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddProcessCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddSessionCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachKernelCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbCommandError.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbConsoleExecCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbContinueCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDeleteBreakpointsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDestroyCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDetachCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDisableBreakpointsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEnableBreakpointsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEvaluateCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbInsertBreakpointCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbKillCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessWithOptionsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListAvailableProcessesCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointLocationsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListEnvironmentCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListMemoryRegionsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSectionsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSymbolsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModulesCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListProcessesCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListSessionsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegisterBanksCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegistersCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFramesCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListThreadsCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbOpenDumpCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbPendingCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbReadMemoryCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRemoveProcessCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestActivationCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestFocusCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveProcessCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveSessionCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveThreadCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbStepCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbThreadHoldCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbWriteMemoryCommand.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbCompletedCommandEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointAutoContinueChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCommandChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointConditionChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCreatedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDeletedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDisabledEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointEnabledEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointHitEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointIgnoreChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointInvalidatedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsAddedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsRemovedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsResolvedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointModifiedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointThreadChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointTypeChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandDoneEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandErrorEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandRunningEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbConsoleOutputEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbExceptionEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbInterruptEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleLoadedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleUnloadedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessCreatedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessExitedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessReplacedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessSelectedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProfileDataEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbRunningEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSelectedFrameChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionCreatedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionExitedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionReplacedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionSelectedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStateChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStoppedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStructuredDataEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSymbolsLoadedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSystemsEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadCreatedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadExitedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadReplacedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadResumedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSelectedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadStackChangedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSuspendedEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbWatchpointHitEvent.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbDebugOutputCallbacks.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbManagerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/AbstractLldbModel.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelSelectableObject.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAccessConditioned.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetActiveScope.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttachable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttacher.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetConfigurable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDeletable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDetachable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEnvironment.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEventScope.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetExecutionStateful.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetFocusScope.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterpreter.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterruptible.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetKillable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetLauncher.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetMethod.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetResumable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetSteppable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailable.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailableContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocation.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocationContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointSpec.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnector.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnectorContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetDebugContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetFunction.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryRegion.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModule.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSection.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSectionContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetObject.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcess.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcessContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegister.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterBank.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainerAndBank.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRoot.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSession.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributes.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesEnvironment.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesPlatform.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStack.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrame.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegister.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterBank.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbol.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbolContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThread.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThreadContainer.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelDefaultTargetModelRoot.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAbstractXpointSpec.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointSpecImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetConnectorContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetDebugContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetFunctionImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetKernelConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryRegionImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetObjectImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByNameConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPathConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPidConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchWithOptionsConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetRootImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesEnvironmentImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesPlatformImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterBankImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadContainerImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetTraceOrDumpConnectorImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetWatchpointSpecImpl.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/lldb/LLDBTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractLldbModelHost.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbBreakpointsTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFactoryTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFrameActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbInterpreterTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbProcessActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootAttacherTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootLauncherTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioCloneExitTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioMemoryTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioStackTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioX64RegistersTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSessionActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSteppableTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbThreadActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbX64RegistersTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForlldbScenarioForkExitTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/MacOSSpecimen.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmLldbModelHost.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbBreakpointsTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFactoryTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFrameActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbInterpreterTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbProcessActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootAttacherTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootLauncherTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioCloneExitTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioForkExitTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioMemoryTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioStackTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioX64RegistersTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSessionActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSteppableTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbThreadActivationTest.java create mode 100644 Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbX64RegistersTest.java create mode 100644 Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/AbstractLldbDebuggerMappingOffer.java create mode 100644 Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbArmDebuggerMappingOpinion.java create mode 100644 Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbDebuggerProgramLaunchOpinion.java create mode 100644 Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbTargetTraceMapper.java create mode 100644 Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbX86DebuggerMappingOpinion.java create mode 100644 licenses/Apache_License_2.0_with_LLVM_Exceptions.txt diff --git a/Ghidra/Debug/Debugger-agent-lldb/Module.manifest b/Ghidra/Debug/Debugger-agent-lldb/Module.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Ghidra/Debug/Debugger-agent-lldb/build.gradle b/Ghidra/Debug/Debugger-agent-lldb/build.gradle new file mode 100644 index 0000000000..b92c6c51d3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/build.gradle @@ -0,0 +1,114 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +apply from: "$rootProject.projectDir/gradle/javaProject.gradle" +apply from: "$rootProject.projectDir/gradle/jacocoProject.gradle" +apply from: "$rootProject.projectDir/gradle/javaTestProject.gradle" +apply from: "$rootProject.projectDir/gradle/nativeProject.gradle" +apply from: "$rootProject.projectDir/gradle/distributableGhidraModule.gradle" + +apply plugin: 'eclipse' +eclipse.project.name = 'Debug Debugger-agent-lldb' + +dependencies { + api project(':Framework-AsyncComm') + api project(':Framework-Debugging') + api project(':Debugger-gadp') + + testImplementation project(path: ':Framework-AsyncComm', configuration: 'testArtifacts') + testImplementation project(path: ':Framework-Debugging', configuration: 'testArtifacts') + testImplementation project(path: ':Debugger-gadp', configuration: 'testArtifacts') +} + +def boolean filterJar(File jarfile) { + if (jarfile.name.contains("gradle-api")) { + return false + } else if (jarfile.name.contains("groovy-all")) { + return false + } else if (jarfile.name.contains("gradle-installation-beacon")) { + return false + } + return true +} + +jar { + manifest { + attributes['Main-Class'] = 'agent.lldb.gadp.LldbGadpServer' + } +} + +task configureNodepJar { + doLast { + configurations.default.files.forEach { + if (filterJar(it)) { + nodepJar.from(zipTree(it)) + } + } + } +} + +task nodepJar(type: Jar) { + inputs.file(file(jar.archivePath)) + dependsOn(configureNodepJar) + dependsOn(jar) + + appendix = 'nodep' + manifest { + attributes['Main-Class'] = 'agent.lldb.gadp.LldbGadpServer' + } + + from(zipTree(jar.archivePath)) +} + +// Include llvm patch and SWIG files +rootProject.assembleDistribution { + from (this.project.projectDir.toString()) { + include "src/llvm/**" + into {getZipPath(this.project) + "/data/"} + } +} + +task executableJar { + ext.execsh = file("src/main/sh/execjar.sh") + ext.jarfile = file(nodepJar.archivePath) + ext.outjar = file("${buildDir}/bin/gadp-agent-lldb") + dependsOn(nodepJar) + inputs.file(execsh) + inputs.file(jarfile) + outputs.file(outjar) + doLast { + outjar.parentFile.mkdirs() + outjar.withOutputStream { output -> + execsh.withInputStream { input -> + output << input + } + jarfile.withInputStream { input -> + output << input + } + } + exec { + commandLine("chmod", "+x", outjar) + } + } +} + +test { + if ("linux_x86_64".equals(getCurrentPlatformName())) { + dependsOn(":Framework-Debugging:testSpecimenLinux_x86_64") + } + if ("mac_x86_64".equals(getCurrentPlatformName())) { + dependsOn(":Framework-Debugging:testSpecimenMac_x86_64") + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/certification.manifest b/Ghidra/Debug/Debugger-agent-lldb/certification.manifest new file mode 100644 index 0000000000..18cbde7aaa --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/certification.manifest @@ -0,0 +1,21 @@ +##VERSION: 2.0 +##MODULE IP: Apache License 2.0 +##MODULE IP: Apache License 2.0 with LLVM Exceptions +.classpath||NONE||reviewed||END| +.project||NONE||reviewed||END| +Module.manifest||GHIDRA||||END| +build.gradle||GHIDRA||||END| +src/llvm/lldb/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/bindings/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/bindings/java/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/bindings/java/java-typemaps.swig||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/bindings/java/java.swig||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/cmake/modules/FindJavaAndSwig.cmake||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/cmake/modules/LLDBConfig.cmake||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/include/lldb/Host/Config.h.cmake||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/source/API/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/source/API/liblldb-private.exports||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/source/API/liblldb.exports||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| +src/llvm/lldb/tools/debugserver/source/CMakeLists.txt||Apache License 2.0 with LLVM Exceptions||||END| diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/CMakeLists.txt new file mode 100644 index 0000000000..9bfd06ee97 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/CMakeLists.txt @@ -0,0 +1,109 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +cmake_minimum_required(VERSION 3.13.4) + +# Add path for custom modules. +set(CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" + ) + +# If we are not building as part of LLVM, build LLDB as a standalone project, +# using LLVM as an external library. +if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + project(lldb) + include(LLDBStandalone) + + set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to") + set(CMAKE_CXX_STANDARD_REQUIRED YES) + set(CMAKE_CXX_EXTENSIONS NO) +endif() + +include(LLDBConfig) +include(AddLLDB) + +# Define the LLDB_CONFIGURATION_xxx matching the build type. +if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" ) + add_definitions(-DLLDB_CONFIGURATION_DEBUG) +endif() + +if (WIN32) + add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE) +endif() + +if (LLDB_ENABLE_PYTHON) + if (NOT CMAKE_CROSSCOMPILING) + execute_process( + COMMAND ${Python3_EXECUTABLE} + -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(True, False, ''))" + OUTPUT_VARIABLE LLDB_PYTHON_DEFAULT_RELATIVE_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE) + + file(TO_CMAKE_PATH ${LLDB_PYTHON_DEFAULT_RELATIVE_PATH} LLDB_PYTHON_DEFAULT_RELATIVE_PATH) + else () + if ("${LLDB_PYTHON_RELATIVE_PATH}" STREQUAL "") + message(FATAL_ERROR + "Crosscompiling LLDB with Python requires manually setting + LLDB_PYTHON_RELATIVE_PATH.") + endif () + endif () + + set(LLDB_PYTHON_RELATIVE_PATH ${LLDB_PYTHON_DEFAULT_RELATIVE_PATH} + CACHE STRING "Path where Python modules are installed, relative to install prefix") +endif () + +if (LLDB_ENABLE_PYTHON OR LLDB_ENABLE_LUA OR LLDB_ENABLE_JAVA) + add_subdirectory(bindings) +endif () + +# We need the headers generated by instrinsics_gen before we can compile +# any source file in LLDB as the imported Clang modules might include +# some of these generated headers. This approach is copied from Clang's main +# CMakeLists.txt, so it should kept in sync the code in Clang which was added +# in llvm-svn 308844. +if(LLVM_ENABLE_MODULES) + list(APPEND LLVM_COMMON_DEPENDS intrinsics_gen) +endif() + +if(CMAKE_CROSSCOMPILING AND LLDB_BUILT_STANDALONE) + set(LLVM_USE_HOST_TOOLS ON) + include(CrossCompile) + if (NOT NATIVE_LLVM_DIR OR NOT NATIVE_Clang_DIR) + message(FATAL_ERROR + "Crosscompiling standalone requires the variables NATIVE_{CLANG,LLVM}_DIR + for building the native lldb-tblgen used during the build process.") + endif() + llvm_create_cross_target(lldb NATIVE "" Release + -DLLVM_DIR=${NATIVE_LLVM_DIR} + -DClang_DIR=${NATIVE_Clang_DIR}) +endif() + +# TableGen +add_subdirectory(utils/TableGen) + +add_subdirectory(source) +add_subdirectory(tools) +add_subdirectory(docs) + +if (LLDB_ENABLE_PYTHON) + if(LLDB_BUILD_FRAMEWORK) + set(lldb_python_target_dir "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Resources/Python/lldb") + else() + set(lldb_python_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_PYTHON_RELATIVE_PATH}/lldb") + endif() + get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR) + finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}") +endif() + +option(LLDB_INCLUDE_TESTS "Generate build targets for the LLDB unit tests." ${LLVM_INCLUDE_TESTS}) +if(LLDB_INCLUDE_TESTS) + add_subdirectory(test) + add_subdirectory(unittests) + add_subdirectory(utils) +endif() + +if(LLDB_BUILT_STANDALONE AND NOT LLVM_ENABLE_IDE) + llvm_distribution_add_targets() +endif() diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/LLDBWrapJava.cpp b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/LLDBWrapJava.cpp new file mode 100644 index 0000000000..99068f6250 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/LLDBWrapJava.cpp @@ -0,0 +1,41193 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * 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. + * ----------------------------------------------------------------------------- */ + + +#ifndef SWIGJAVA +#define SWIGJAVA +#endif + + + +#ifdef __cplusplus +/* SwigValueWrapper is described in swig.swg */ +template 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& rhs); + SwigValueWrapper(const SwigValueWrapper& 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 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 defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# 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 + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + + +/* Fix for jlong on some versions of gcc on Windows */ +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) + typedef long long __int64; +#endif + +/* Fix for jlong on 64-bit x86 Solaris */ +#if defined(__x86_64) +# ifdef _LP64 +# undef _LP64 +# endif +#endif + +#include +#include +#include + + +/* Support for throwing Java exceptions */ +typedef enum { + SWIG_JavaOutOfMemoryError = 1, + SWIG_JavaIOException, + SWIG_JavaRuntimeException, + SWIG_JavaIndexOutOfBoundsException, + SWIG_JavaArithmeticException, + SWIG_JavaIllegalArgumentException, + SWIG_JavaNullPointerException, + SWIG_JavaDirectorPureVirtual, + SWIG_JavaUnknownError, + SWIG_JavaIllegalStateException, +} SWIG_JavaExceptionCodes; + +typedef struct { + SWIG_JavaExceptionCodes code; + const char *java_exception; +} SWIG_JavaExceptions_t; + + +static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { + jclass excep; + static const SWIG_JavaExceptions_t java_exceptions[] = { + { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, + { SWIG_JavaIOException, "java/io/IOException" }, + { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, + { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, + { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, + { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, + { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, + { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, + { SWIG_JavaUnknownError, "java/lang/UnknownError" }, + { SWIG_JavaIllegalStateException, "java/lang/IllegalStateException" }, + { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } + }; + const SWIG_JavaExceptions_t *except_ptr = java_exceptions; + + while (except_ptr->code != code && except_ptr->code) + except_ptr++; + + jenv->ExceptionClear(); + excep = jenv->FindClass(except_ptr->java_exception); + if (excep) + jenv->ThrowNew(excep, msg); +} + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else + + +#include + + +typedef jbyte ByteArray; + +SWIGINTERN ByteArray *new_ByteArray(int nelements){ + return new jbyte[nelements](); +} +SWIGINTERN void delete_ByteArray(ByteArray *self){ + delete [] self; +} +SWIGINTERN jbyte ByteArray_getitem(ByteArray *self,int index){ + return self[index]; +} +SWIGINTERN void ByteArray_setitem(ByteArray *self,int index,jbyte value){ + self[index] = value; +} +SWIGINTERN jbyte *ByteArray_cast(ByteArray *self){ + return self; +} +SWIGINTERN ByteArray *ByteArray_frompointer(jbyte *t){ + return (ByteArray *) t; +} + +#include +#include + + +#include "lldb/lldb-public.h" +#include "lldb/API/SBAddress.h" +#include "lldb/API/SBAttachInfo.h" +#include "lldb/API/SBBlock.h" +#include "lldb/API/SBBreakpoint.h" +#include "lldb/API/SBBreakpointLocation.h" +#include "lldb/API/SBBreakpointName.h" +#include "lldb/API/SBBroadcaster.h" +#include "lldb/API/SBCommandInterpreter.h" +#include "lldb/API/SBCommandInterpreterRunOptions.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/SBDeclaration.h" +#include "lldb/API/SBEnvironment.h" +#include "lldb/API/SBError.h" +#include "lldb/API/SBEvent.h" +#include "lldb/API/SBExecutionContext.h" +#include "lldb/API/SBExpressionOptions.h" +#include "lldb/API/SBFile.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/SBInstruction.h" +#include "lldb/API/SBInstructionList.h" +#include "lldb/API/SBLanguageRuntime.h" +#include "lldb/API/SBLaunchInfo.h" +#include "lldb/API/SBLineEntry.h" +#include "lldb/API/SBListener.h" +#include "lldb/API/SBMemoryRegionInfo.h" +#include "lldb/API/SBMemoryRegionInfoList.h" +#include "lldb/API/SBModule.h" +#include "lldb/API/SBModuleSpec.h" +#include "lldb/API/SBPlatform.h" +#include "lldb/API/SBProcess.h" +#include "lldb/API/SBProcessInfo.h" +#include "lldb/API/SBQueue.h" +#include "lldb/API/SBQueueItem.h" +#include "lldb/API/SBReproducer.h" +#include "lldb/API/SBSection.h" +#include "lldb/API/SBSourceManager.h" +#include "lldb/API/SBStream.h" +#include "lldb/API/SBStringList.h" +#include "lldb/API/SBStructuredData.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/SBThreadCollection.h" +#include "lldb/API/SBThreadPlan.h" +#include "lldb/API/SBTrace.h" +#include "lldb/API/SBTraceOptions.h" +#include "lldb/API/SBType.h" +#include "lldb/API/SBTypeCategory.h" +#include "lldb/API/SBTypeEnumMember.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/SBUnixSignals.h" +#include "lldb/API/SBValue.h" +#include "lldb/API/SBValueList.h" +#include "lldb/API/SBVariablesOptions.h" +#include "lldb/API/SBWatchpoint.h" + + +using namespace lldb_private; +using namespace lldb; + + +#include // Use the C99 official header + +SWIGINTERN std::string lldb_SBAddress___str__(lldb::SBAddress *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBBlock___str__(lldb::SBBlock *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBBreakpoint___str__(lldb::SBBreakpoint *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBBreakpointLocation___str__(lldb::SBBreakpointLocation *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelFull); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBBreakpointName___str__(lldb::SBBreakpointName *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBCommandReturnObject___str__(lldb::SBCommandReturnObject *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN void lldb_SBCommandReturnObject_SetImmediateOutputFile__SWIG_2(lldb::SBCommandReturnObject *self,lldb::FileSP BORROWED,bool transfer_ownership){ + self->SetImmediateOutputFile(BORROWED); + } +SWIGINTERN void lldb_SBCommandReturnObject_SetImmediateErrorFile__SWIG_2(lldb::SBCommandReturnObject *self,lldb::FileSP BORROWED,bool transfer_ownership){ + self->SetImmediateErrorFile(BORROWED); + } +SWIGINTERN void lldb_SBCommandReturnObject_Print(lldb::SBCommandReturnObject *self,char const *str){ + self->Printf("%s", str); + } +SWIGINTERN std::string lldb_SBCompileUnit___str__(lldb::SBCompileUnit *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBData___str__(lldb::SBData *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN lldb::FileSP lldb_SBDebugger_GetInputFileHandle(lldb::SBDebugger *self){ + return self->GetInputFile().GetFile(); + } +SWIGINTERN lldb::FileSP lldb_SBDebugger_GetOutputFileHandle(lldb::SBDebugger *self){ + return self->GetOutputFile().GetFile(); + } +SWIGINTERN lldb::FileSP lldb_SBDebugger_GetErrorFileHandle(lldb::SBDebugger *self){ + return self->GetErrorFile().GetFile(); + } +SWIGINTERN std::string lldb_SBDebugger___str__(lldb::SBDebugger *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBDeclaration___str__(lldb::SBDeclaration *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBError___str__(lldb::SBError *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN lldb::SBFile lldb_SBFile_MakeBorrowed(lldb::FileSP BORROWED){ + return lldb::SBFile(BORROWED); + } +SWIGINTERN lldb::SBFile lldb_SBFile_MakeForcingIOMethods(lldb::FileSP FORCE_IO_METHODS){ + return lldb::SBFile(FORCE_IO_METHODS); + } +SWIGINTERN lldb::SBFile lldb_SBFile_MakeBorrowedForcingIOMethods(lldb::FileSP BORROWED_FORCE_IO_METHODS){ + return lldb::SBFile(BORROWED_FORCE_IO_METHODS); + } +SWIGINTERN std::string lldb_SBFileSpec___str__(lldb::SBFileSpec *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBFrame___str__(lldb::SBFrame *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBFunction___str__(lldb::SBFunction *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBInstruction___str__(lldb::SBInstruction *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBInstructionList___str__(lldb::SBInstructionList *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBLineEntry___str__(lldb::SBLineEntry *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBMemoryRegionInfo___str__(lldb::SBMemoryRegionInfo *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBModule___str__(lldb::SBModule *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBModuleSpec___str__(lldb::SBModuleSpec *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBModuleSpecList___str__(lldb::SBModuleSpecList *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBProcess___str__(lldb::SBProcess *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBSection___str__(lldb::SBSection *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN void lldb_SBStream_RedirectToFileHandle(lldb::SBStream *self,lldb::FileSP file,bool transfer_fh_ownership){ + self->RedirectToFile(file); + } +SWIGINTERN std::string lldb_SBSymbol___str__(lldb::SBSymbol *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBSymbolContext___str__(lldb::SBSymbolContext *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBSymbolContextList___str__(lldb::SBSymbolContextList *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTarget___str__(lldb::SBTarget *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBThread___str__(lldb::SBThread *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeMember___str__(lldb::SBTypeMember *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeMemberFunction___str__(lldb::SBTypeMemberFunction *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBType___str__(lldb::SBType *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeCategory___str__(lldb::SBTypeCategory *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeEnumMember___str__(lldb::SBTypeEnumMember *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeFilter___str__(lldb::SBTypeFilter *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeFormat___str__(lldb::SBTypeFormat *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeNameSpecifier___str__(lldb::SBTypeNameSpecifier *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeSummary___str__(lldb::SBTypeSummary *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBTypeSynthetic___str__(lldb::SBTypeSynthetic *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelBrief); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBValue___str__(lldb::SBValue *self){ + lldb::SBStream stream; + self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBValueList___str__(lldb::SBValueList *self){ + lldb::SBStream description; + const size_t n = self->GetSize(); + if (n) + { + for (size_t i=0; iGetValueAtIndex(i).GetDescription(description); + } + else + { + description.Printf(" lldb.SBValueList()"); + } + const char *desc = description.GetData(); + size_t desc_len = description.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) + --desc_len; + return std::string(desc, desc_len); + } +SWIGINTERN std::string lldb_SBWatchpoint___str__(lldb::SBWatchpoint *self){ + lldb::SBStream stream; + self->GetDescription (stream, lldb::eDescriptionLevelVerbose); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) { + --desc_len; + } + return std::string(desc, desc_len); + } + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1ByteArray(JNIEnv *jenv, jclass jcls, jint jarg1) { + jlong jresult = 0 ; + int arg1 ; + ByteArray *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = (ByteArray *)new_ByteArray(arg1); + *(ByteArray **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1ByteArray(JNIEnv *jenv, jclass jcls, jlong jarg1) { + ByteArray *arg1 = (ByteArray *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(ByteArray **)&jarg1; + delete_ByteArray(arg1); +} + + +SWIGEXPORT jbyte JNICALL Java_SWIG_lldbJNI_ByteArray_1getitem(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jbyte jresult = 0 ; + ByteArray *arg1 = (ByteArray *) 0 ; + int arg2 ; + jbyte result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(ByteArray **)&jarg1; + arg2 = (int)jarg2; + result = ByteArray_getitem(arg1,arg2); + jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_ByteArray_1setitem(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jbyte jarg3) { + ByteArray *arg1 = (ByteArray *) 0 ; + int arg2 ; + jbyte arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(ByteArray **)&jarg1; + arg2 = (int)jarg2; + arg3 = jarg3; + ByteArray_setitem(arg1,arg2,arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_ByteArray_1cast(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + ByteArray *arg1 = (ByteArray *) 0 ; + jbyte *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(ByteArray **)&jarg1; + result = (jbyte *)ByteArray_cast(arg1); + *(jbyte **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_ByteArray_1frompointer(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + jbyte *arg1 = (jbyte *) 0 ; + ByteArray *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(jbyte **)&jarg1; + result = (ByteArray *)ByteArray_frompointer(arg1); + *(ByteArray **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_INT32_1MAX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(2147483647); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_UINT32_1MAX_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_UINT64_1MAX_1get(JNIEnv *jenv, jclass jcls) { + jobject jresult = 0 ; + unsigned long long result; + + (void)jenv; + (void)jcls; + result = (unsigned long long)(18446744073709551615ULL); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1GENERIC_1ERROR_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1BREAK_1ID_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1DEFAULT_1BREAK_1SIZE_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1WATCH_1ID_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1WATCH_1TYPE_1READ_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1u << 0)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1WATCH_1TYPE_1WRITE_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1u << 1)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1PC_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1SP_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1FP_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(2); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1RA_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1FLAGS_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(4); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG1_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(5); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG2_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(6); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG3_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(7); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG4_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(8); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG5_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(9); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG6_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(10); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG7_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(11); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1REGNUM_1GENERIC_1ARG8_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(12); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1ADDRESS_1get(JNIEnv *jenv, jclass jcls) { + jobject jresult = 0 ; + unsigned long long result; + + (void)jenv; + (void)jcls; + result = (unsigned long long)(18446744073709551615ULL); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1INDEX32_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1IVAR_1OFFSET_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1IMAGE_1TOKEN_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1MODULE_1VERSION_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1REGNUM_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1UID_1get(JNIEnv *jenv, jclass jcls) { + jobject jresult = 0 ; + unsigned long long result; + + (void)jenv; + (void)jcls; + result = (unsigned long long)(18446744073709551615ULL); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1PROCESS_1ID_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1THREAD_1ID_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1FRAME_1ID_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1SIGNAL_1NUMBER_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(2147483647); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1OFFSET_1get(JNIEnv *jenv, jclass jcls) { + jobject jresult = 0 ; + unsigned long long result; + + (void)jenv; + (void)jcls; + result = (unsigned long long)(18446744073709551615ULL); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1LINE_1NUMBER_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(4294967295U); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1COLUMN_1NUMBER_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1QUEUE_1ID_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(0); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_LLDB_1ARCH_1DEFAULT_1get(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)("systemArch"); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_LLDB_1ARCH_1DEFAULT_132BIT_1get(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)("systemArch32"); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_LLDB_1ARCH_1DEFAULT_164BIT_1get(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)("systemArch64"); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1INVALID_1CPUTYPE_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((0xFFFFFFFEu)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_LLDB_1MAX_1NUM_1OPTION_1SETS_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)(32); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_1ALL_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)(0xFFFFFFFFU); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_11_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 0)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_12_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 1)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_13_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 2)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_14_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 3)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_15_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 4)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_16_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 5)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_17_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 6)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_18_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 7)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_19_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 8)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_110_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 9)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_111_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 10)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_LLDB_1OPT_1SET_112_1get(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + unsigned int result; + + (void)jenv; + (void)jcls; + result = (unsigned int)((1U << 11)); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStateInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StateType result; + + (void)jenv; + (void)jcls; + result = (lldb::StateType)lldb::eStateInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_kLastStateType_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StateType result; + + (void)jenv; + (void)jcls; + result = (lldb::StateType)lldb::kLastStateType; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagExec_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagExec; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagDebug_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagDebug; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagStopAtEntry_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagStopAtEntry; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagDisableASLR_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagDisableASLR; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagDisableSTDIO_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagDisableSTDIO; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagLaunchInTTY_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagLaunchInTTY; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagLaunchInShell_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagLaunchInShell; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagLaunchInSeparateProcessGroup_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagLaunchInSeparateProcessGroup; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagDontSetExitStatus_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagDontSetExitStatus; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagDetachOnError_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagDetachOnError; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagShellExpandArguments_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagShellExpandArguments; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagCloseTTYOnExit_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagCloseTTYOnExit; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLaunchFlagInheritTCCFromParent_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LaunchFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::LaunchFlags)lldb::eLaunchFlagInheritTCCFromParent; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eByteOrderInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + result = (lldb::ByteOrder)lldb::eByteOrderInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eByteOrderBig_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + result = (lldb::ByteOrder)lldb::eByteOrderBig; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eByteOrderPDP_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + result = (lldb::ByteOrder)lldb::eByteOrderPDP; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eByteOrderLittle_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + result = (lldb::ByteOrder)lldb::eByteOrderLittle; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eEncodingInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Encoding result; + + (void)jenv; + (void)jcls; + result = (lldb::Encoding)lldb::eEncodingInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFormatDefault_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Format result; + + (void)jenv; + (void)jcls; + result = (lldb::Format)lldb::eFormatDefault; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFormatInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Format result; + + (void)jenv; + (void)jcls; + result = (lldb::Format)lldb::eFormatInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFormatComplexFloat_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Format result; + + (void)jenv; + (void)jcls; + result = (lldb::Format)lldb::eFormatComplexFloat; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eDescriptionLevelBrief_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::DescriptionLevel result; + + (void)jenv; + (void)jcls; + result = (lldb::DescriptionLevel)lldb::eDescriptionLevelBrief; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eScriptLanguageNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ScriptLanguage result; + + (void)jenv; + (void)jcls; + result = (lldb::ScriptLanguage)lldb::eScriptLanguageNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eScriptLanguageDefault_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ScriptLanguage result; + + (void)jenv; + (void)jcls; + result = (lldb::ScriptLanguage)lldb::eScriptLanguageDefault; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eRegisterKindEHFrame_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::RegisterKind result; + + (void)jenv; + (void)jcls; + result = (lldb::RegisterKind)lldb::eRegisterKindEHFrame; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStopReasonInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StopReason result; + + (void)jenv; + (void)jcls; + result = (lldb::StopReason)lldb::eStopReasonInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eExpressionCompleted_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ExpressionResults result; + + (void)jenv; + (void)jcls; + result = (lldb::ExpressionResults)lldb::eExpressionCompleted; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSearchDepthInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SearchDepth result; + + (void)jenv; + (void)jcls; + result = (lldb::SearchDepth)lldb::eSearchDepthInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_kLastSearchDepthKind_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SearchDepth result; + + (void)jenv; + (void)jcls; + result = (lldb::SearchDepth)lldb::kLastSearchDepthKind; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeVariableGlobal_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeVariableGlobal; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeVariableStatic_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeVariableStatic; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeVariableArgument_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeVariableArgument; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeVariableLocal_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeVariableLocal; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeRegister_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeRegister; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeRegisterSet_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeRegisterSet; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeConstResult_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeConstResult; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eValueTypeVariableThreadLocal_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::ValueType)lldb::eValueTypeVariableThreadLocal; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eInputReaderGranularityInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::InputReaderGranularity result; + + (void)jenv; + (void)jcls; + result = (lldb::InputReaderGranularity)lldb::eInputReaderGranularityInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextTarget_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextTarget; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextModule_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextModule; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextCompUnit_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextCompUnit; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextFunction_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextFunction; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextBlock_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextBlock; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextLineEntry_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextLineEntry; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextSymbol_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextSymbol; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextEverything_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextEverything; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolContextVariable_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolContextItem result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolContextItem)lldb::eSymbolContextVariable; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_ePermissionsWritable_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Permissions result; + + (void)jenv; + (void)jcls; + result = (lldb::Permissions)lldb::ePermissionsWritable; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_ePermissionsReadable_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Permissions result; + + (void)jenv; + (void)jcls; + result = (lldb::Permissions)lldb::ePermissionsReadable; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_ePermissionsExecutable_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::Permissions result; + + (void)jenv; + (void)jcls; + result = (lldb::Permissions)lldb::ePermissionsExecutable; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeInvalidType_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeInvalidType; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeAdded_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeAdded; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeRemoved_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeRemoved; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeLocationsAdded_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeLocationsAdded; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeLocationsRemoved_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeLocationsRemoved; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeLocationsResolved_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeLocationsResolved; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeEnabled_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeEnabled; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeDisabled_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeDisabled; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeCommandChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeCommandChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeConditionChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeConditionChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeIgnoreChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeIgnoreChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeThreadChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeThreadChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBreakpointEventTypeAutoContinueChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::BreakpointEventType)lldb::eBreakpointEventTypeAutoContinueChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeInvalidType_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeInvalidType; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeAdded_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeAdded; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeRemoved_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeRemoved; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeEnabled_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeEnabled; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeDisabled_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeDisabled; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeCommandChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeCommandChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeConditionChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeConditionChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeIgnoreChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeIgnoreChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeThreadChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeThreadChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointEventTypeTypeChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointEventType)lldb::eWatchpointEventTypeTypeChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeUnknown_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeUnknown; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC89_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC89; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeAda83_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeAda83; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC_1plus_1plus_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC_plus_plus; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeCobol74_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeCobol74; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeCobol85_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeCobol85; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeFortran77_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeFortran77; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeFortran90_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeFortran90; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypePascal83_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypePascal83; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeModula2_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeModula2; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeJava_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeJava; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC99_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC99; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeAda95_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeAda95; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeFortran95_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeFortran95; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypePLI_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypePLI; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeObjC_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeObjC; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeObjC_1plus_1plus_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeObjC_plus_plus; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeUPC_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeUPC; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeD_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeD; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypePython_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypePython; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeOpenCL_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeOpenCL; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeGo_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeGo; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeModula3_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeModula3; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeHaskell_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeHaskell; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC_1plus_1plus_103_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC_plus_plus_03; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC_1plus_1plus_111_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC_plus_plus_11; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeOCaml_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeOCaml; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeRust_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeRust; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC11_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC11; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeSwift_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeSwift; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeJulia_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeJulia; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeDylan_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeDylan; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeC_1plus_1plus_114_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeC_plus_plus_14; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeFortran03_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeFortran03; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeFortran08_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeFortran08; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeMipsAssembler_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeMipsAssembler; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eLanguageTypeExtRenderScript_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + result = (lldb::LanguageType)lldb::eLanguageTypeExtRenderScript; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eInstrumentationRuntimeTypeAddressSanitizer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::InstrumentationRuntimeType result; + + (void)jenv; + (void)jcls; + result = (lldb::InstrumentationRuntimeType)lldb::eInstrumentationRuntimeTypeAddressSanitizer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eInstrumentationRuntimeTypeThreadSanitizer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::InstrumentationRuntimeType result; + + (void)jenv; + (void)jcls; + result = (lldb::InstrumentationRuntimeType)lldb::eInstrumentationRuntimeTypeThreadSanitizer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::InstrumentationRuntimeType result; + + (void)jenv; + (void)jcls; + result = (lldb::InstrumentationRuntimeType)lldb::eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eInstrumentationRuntimeTypeMainThreadChecker_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::InstrumentationRuntimeType result; + + (void)jenv; + (void)jcls; + result = (lldb::InstrumentationRuntimeType)lldb::eInstrumentationRuntimeTypeMainThreadChecker; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eInstrumentationRuntimeTypeSwiftRuntimeReporting_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::InstrumentationRuntimeType result; + + (void)jenv; + (void)jcls; + result = (lldb::InstrumentationRuntimeType)lldb::eInstrumentationRuntimeTypeSwiftRuntimeReporting; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eNoDynamicValues_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::DynamicValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::DynamicValueType)lldb::eNoDynamicValues; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eDynamicCanRunTarget_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::DynamicValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::DynamicValueType)lldb::eDynamicCanRunTarget; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eDynamicDontRunTarget_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::DynamicValueType result; + + (void)jenv; + (void)jcls; + result = (lldb::DynamicValueType)lldb::eDynamicDontRunTarget; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStopShowColumnAnsiOrCaret_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StopShowColumn result; + + (void)jenv; + (void)jcls; + result = (lldb::StopShowColumn)lldb::eStopShowColumnAnsiOrCaret; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStopShowColumnAnsi_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StopShowColumn result; + + (void)jenv; + (void)jcls; + result = (lldb::StopShowColumn)lldb::eStopShowColumnAnsi; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStopShowColumnCaret_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StopShowColumn result; + + (void)jenv; + (void)jcls; + result = (lldb::StopShowColumn)lldb::eStopShowColumnCaret; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStopShowColumnNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StopShowColumn result; + + (void)jenv; + (void)jcls; + result = (lldb::StopShowColumn)lldb::eStopShowColumnNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eArgTypeAddress_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandArgumentType result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandArgumentType)lldb::eArgTypeAddress; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolTypeAny_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolType result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolType)lldb::eSymbolTypeAny; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSymbolTypeInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SymbolType result; + + (void)jenv; + (void)jcls; + result = (lldb::SymbolType)lldb::eSymbolTypeInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eEmulateInstructionOptionNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::EmulateInstructionOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::EmulateInstructionOptions)lldb::eEmulateInstructionOptionNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eEmulateInstructionOptionAutoAdvancePC_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::EmulateInstructionOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::EmulateInstructionOptions)lldb::eEmulateInstructionOptionAutoAdvancePC; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eEmulateInstructionOptionIgnoreConditions_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::EmulateInstructionOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::EmulateInstructionOptions)lldb::eEmulateInstructionOptionIgnoreConditions; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeAuto_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeAuto; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeFull_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeFull; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeBase_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeBase; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeMethod_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeMethod; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeSelector_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeSelector; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFunctionNameTypeAny_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FunctionNameType result; + + (void)jenv; + (void)jcls; + result = (lldb::FunctionNameType)lldb::eFunctionNameTypeAny; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBasicTypeInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BasicType result; + + (void)jenv; + (void)jcls; + result = (lldb::BasicType)lldb::eBasicTypeInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eBasicTypeVoid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::BasicType result; + + (void)jenv; + (void)jcls; + result = (lldb::BasicType)lldb::eBasicTypeVoid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTraceTypeNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TraceType result; + + (void)jenv; + (void)jcls; + result = (lldb::TraceType)lldb::eTraceTypeNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStructuredDataTypeInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StructuredDataType result; + + (void)jenv; + (void)jcls; + result = (lldb::StructuredDataType)lldb::eStructuredDataTypeInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eStructuredDataTypeNull_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::StructuredDataType result; + + (void)jenv; + (void)jcls; + result = (lldb::StructuredDataType)lldb::eStructuredDataTypeNull; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassInvalid_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassInvalid; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassArray_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassArray; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassBlockPointer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassBlockPointer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassBuiltin_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassBuiltin; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassClass_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassClass; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassComplexFloat_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassComplexFloat; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassComplexInteger_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassComplexInteger; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassEnumeration_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassEnumeration; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassFunction_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassFunction; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassMemberPointer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassMemberPointer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassObjCObject_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassObjCObject; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassObjCInterface_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassObjCInterface; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassObjCObjectPointer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassObjCObjectPointer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassPointer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassPointer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassReference_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassReference; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassStruct_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassStruct; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassTypedef_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassTypedef; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassUnion_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassUnion; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassVector_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassVector; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassOther_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassOther; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeClassAny_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeClass)lldb::eTypeClassAny; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTemplateArgumentKindNull_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TemplateArgumentKind result; + + (void)jenv; + (void)jcls; + result = (lldb::TemplateArgumentKind)lldb::eTemplateArgumentKindNull; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionNone_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionNone; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionCascade_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionCascade; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionSkipPointers_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionSkipPointers; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionSkipReferences_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionSkipReferences; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionHideChildren_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionHideChildren; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionHideValue_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionHideValue; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionShowOneLiner_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionShowOneLiner; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionHideNames_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionHideNames; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionNonCacheable_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionNonCacheable; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionHideEmptyAggregates_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionHideEmptyAggregates; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeOptionFrontEndWantsDereference_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeOptions result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeOptions)lldb::eTypeOptionFrontEndWantsDereference; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsUserRead_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsUserRead; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsUserWrite_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsUserWrite; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsUserExecute_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsUserExecute; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsGroupRead_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsGroupRead; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsGroupWrite_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsGroupWrite; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsGroupExecute_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsGroupExecute; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsWorldRead_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsWorldRead; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsWorldWrite_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsWorldWrite; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsWorldExecute_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsWorldExecute; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsUserRW_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsUserRW; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFileFilePermissionsUserRX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFileFilePermissionsUserRX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsUserRWX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsUserRWX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsGroupRW_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsGroupRW; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsGroupRX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsGroupRX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsGroupRWX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsGroupRWX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsWorldRW_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsWorldRW; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsWorldRX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsWorldRX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsWorldRWX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsWorldRWX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsEveryoneR_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsEveryoneR; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsEveryoneW_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsEveryoneW; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsEveryoneX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsEveryoneX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsEveryoneRW_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsEveryoneRW; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsEveryoneRX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsEveryoneRX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsEveryoneRWX_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsEveryoneRWX; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsFileDefault_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsFileDefault; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eFilePermissionsDirectoryDefault_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::FilePermissions result; + + (void)jenv; + (void)jcls; + result = (lldb::FilePermissions)lldb::eFilePermissionsDirectoryDefault; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eQueueItemKindUnknown_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::QueueItemKind result; + + (void)jenv; + (void)jcls; + result = (lldb::QueueItemKind)lldb::eQueueItemKindUnknown; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eQueueKindUnknown_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::QueueKind result; + + (void)jenv; + (void)jcls; + result = (lldb::QueueKind)lldb::eQueueKindUnknown; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eExpressionEvaluationParse_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::ExpressionEvaluationPhase result; + + (void)jenv; + (void)jcls; + result = (lldb::ExpressionEvaluationPhase)lldb::eExpressionEvaluationParse; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointKindWrite_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointKind result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointKind)lldb::eWatchpointKindWrite; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eWatchpointKindRead_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::WatchpointKind result; + + (void)jenv; + (void)jcls; + result = (lldb::WatchpointKind)lldb::eWatchpointKindRead; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eGdbSignalBadAccess_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::GdbSignal result; + + (void)jenv; + (void)jcls; + result = (lldb::GdbSignal)lldb::eGdbSignalBadAccess; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eGdbSignalBadInstruction_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::GdbSignal result; + + (void)jenv; + (void)jcls; + result = (lldb::GdbSignal)lldb::eGdbSignalBadInstruction; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eGdbSignalArithmetic_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::GdbSignal result; + + (void)jenv; + (void)jcls; + result = (lldb::GdbSignal)lldb::eGdbSignalArithmetic; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eGdbSignalEmulation_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::GdbSignal result; + + (void)jenv; + (void)jcls; + result = (lldb::GdbSignal)lldb::eGdbSignalEmulation; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eGdbSignalSoftware_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::GdbSignal result; + + (void)jenv; + (void)jcls; + result = (lldb::GdbSignal)lldb::eGdbSignalSoftware; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eGdbSignalBreakpoint_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::GdbSignal result; + + (void)jenv; + (void)jcls; + result = (lldb::GdbSignal)lldb::eGdbSignalBreakpoint; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eMemberFunctionKindUnknown_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::MemberFunctionKind result; + + (void)jenv; + (void)jcls; + result = (lldb::MemberFunctionKind)lldb::eMemberFunctionKindUnknown; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeHasChildren_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeHasChildren; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeHasValue_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeHasValue; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsArray_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsArray; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsBlock_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsBlock; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsBuiltIn_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsBuiltIn; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsClass_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsClass; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsCPlusPlus_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsCPlusPlus; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsEnumeration_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsEnumeration; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsFuncPrototype_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsFuncPrototype; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsMember_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsMember; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsObjC_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsObjC; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsPointer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsPointer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsReference_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsReference; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsStructUnion_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsStructUnion; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsTemplate_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsTemplate; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsTypedef_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsTypedef; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsVector_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsVector; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsScalar_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsScalar; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsInteger_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsInteger; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsFloat_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsFloat; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsComplex_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsComplex; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeIsSigned_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeIsSigned; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeInstanceIsPointer_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeFlags)lldb::eTypeInstanceIsPointer; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandRequiresTarget_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandRequiresTarget; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandRequiresProcess_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandRequiresProcess; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandRequiresThread_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandRequiresThread; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandRequiresFrame_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandRequiresFrame; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandRequiresRegContext_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandRequiresRegContext; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandTryTargetAPILock_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandTryTargetAPILock; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandProcessMustBeLaunched_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandProcessMustBeLaunched; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandProcessMustBePaused_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandProcessMustBePaused; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eCommandProcessMustBeTraced_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::CommandFlags result; + + (void)jenv; + (void)jcls; + result = (lldb::CommandFlags)lldb::eCommandProcessMustBeTraced; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeSummaryCapped_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeSummaryCapping result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeSummaryCapping)lldb::eTypeSummaryCapped; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eTypeSummaryUncapped_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::TypeSummaryCapping result; + + (void)jenv; + (void)jcls; + result = (lldb::TypeSummaryCapping)lldb::eTypeSummaryUncapped; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAddress_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBAddress *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBAddress *)new lldb::SBAddress(); + *(lldb::SBAddress **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAddress_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = 0 ; + lldb::SBAddress *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress const & reference is null"); + return 0; + } + result = (lldb::SBAddress *)new lldb::SBAddress((lldb::SBAddress const &)*arg1); + *(lldb::SBAddress **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAddress_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBSection arg1 ; + lldb::addr_t arg2 ; + lldb::SBSection *argp1 ; + lldb::SBAddress *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + argp1 = *(lldb::SBSection **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBSection"); + return 0; + } + arg1 = *argp1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (lldb::SBAddress *)new lldb::SBAddress(arg1,arg2); + *(lldb::SBAddress **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAddress_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jobject jarg1, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::addr_t arg1 ; + lldb::SBTarget *arg2 = 0 ; + lldb::SBAddress *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg2_; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg1); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg1, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg1 = 0; + if (sz > 0) { + arg1 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + result = (lldb::SBAddress *)new lldb::SBAddress(arg1,*arg2); + *(lldb::SBAddress **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBAddress(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBAddress **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAddress_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (bool)((lldb::SBAddress const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAddress_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBAddress_1GetFileAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (lldb::addr_t)((lldb::SBAddress const *)arg1)->GetFileAddress(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBAddress_1GetLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jobject jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBTarget *arg2 = 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBAddress **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget const & reference is null"); + return 0; + } + result = (lldb::addr_t)((lldb::SBAddress const *)arg1)->GetLoadAddress((lldb::SBTarget const &)*arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAddress_1SetLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jobject jarg3_) { + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::addr_t arg2 ; + lldb::SBTarget *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBAddress **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(lldb::SBTarget **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return ; + } + (arg1)->SetLoadAddress(arg2,*arg3); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAddress_1OffsetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jboolean jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::addr_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (bool)(arg1)->OffsetAddress(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAddress_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBAddress **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetSection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBSection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetSection(); + *(lldb::SBSection **)&jresult = new lldb::SBSection((const lldb::SBSection &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBAddress_1GetOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (lldb::addr_t)(arg1)->GetOffset(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAddress_1SetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBSection arg2 ; + lldb::addr_t arg3 ; + lldb::SBSection *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBAddress **)&jarg1; + argp2 = *(lldb::SBSection **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBSection"); + return ; + } + arg2 = *argp2; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetAddress(arg2,arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetSymbolContext(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + uint32_t arg2 ; + lldb::SBSymbolContext result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetSymbolContext(arg2); + *(lldb::SBSymbolContext **)&jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetModule(); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetCompileUnit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBCompileUnit result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetCompileUnit(); + *(lldb::SBCompileUnit **)&jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetFunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBFunction result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetFunction(); + *(lldb::SBFunction **)&jresult = new lldb::SBFunction((const lldb::SBFunction &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetBlock(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetSymbol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBSymbol result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetSymbol(); + *(lldb::SBSymbol **)&jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAddress_1GetLineEntry(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + lldb::SBLineEntry result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = (arg1)->GetLineEntry(); + *(lldb::SBLineEntry **)&jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBAddress_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBAddress *arg1 = (lldb::SBAddress *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAddress **)&jarg1; + result = lldb_SBAddress___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAttachInfo_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBAttachInfo *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo(); + *(lldb::SBAttachInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAttachInfo_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jobject jarg1) { + jlong jresult = 0 ; + lldb::pid_t arg1 ; + lldb::SBAttachInfo *result = 0 ; + + (void)jenv; + (void)jcls; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg1); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg1, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg1 = 0; + if (sz > 0) { + arg1 = (lldb::pid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo(arg1); + *(lldb::SBAttachInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAttachInfo_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + bool arg2 ; + lldb::SBAttachInfo *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = jarg2 ? true : false; + result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo((char const *)arg1,arg2); + *(lldb::SBAttachInfo **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAttachInfo_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2, jboolean jarg3) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + bool arg2 ; + bool arg3 ; + lldb::SBAttachInfo *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = jarg2 ? true : false; + arg3 = jarg3 ? true : false; + result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo((char const *)arg1,arg2,arg3); + *(lldb::SBAttachInfo **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBAttachInfo_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = 0 ; + lldb::SBAttachInfo *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAttachInfo const & reference is null"); + return 0; + } + result = (lldb::SBAttachInfo *)new lldb::SBAttachInfo((lldb::SBAttachInfo const &)*arg1); + *(lldb::SBAttachInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::pid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (lldb::pid_t)(arg1)->GetProcessID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::pid_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::pid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetProcessID(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetExecutable_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetExecutable((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetExecutable_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::SBFileSpec arg2 ; + lldb::SBFileSpec *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + argp2 = *(lldb::SBFileSpec **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFileSpec"); + return ; + } + arg2 = *argp2; + (arg1)->SetExecutable(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetWaitForLaunch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->GetWaitForLaunch(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetWaitForLaunch_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetWaitForLaunch(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetWaitForLaunch_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jboolean jarg3) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool arg2 ; + bool arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = jarg2 ? true : false; + arg3 = jarg3 ? true : false; + (arg1)->SetWaitForLaunch(arg2,arg3); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetIgnoreExisting(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->GetIgnoreExisting(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetIgnoreExisting(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIgnoreExisting(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetResumeCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (uint32_t)(arg1)->GetResumeCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetResumeCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetResumeCount(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetProcessPluginName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (char *)(arg1)->GetProcessPluginName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetProcessPluginName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetProcessPluginName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (uint32_t)(arg1)->GetUserID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (uint32_t)(arg1)->GetGroupID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1UserIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->UserIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GroupIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->GroupIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetUserID(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetGroupID(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetEffectiveUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (uint32_t)(arg1)->GetEffectiveUserID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetEffectiveGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (uint32_t)(arg1)->GetEffectiveGroupID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1EffectiveUserIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->EffectiveUserIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1EffectiveGroupIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->EffectiveGroupIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetEffectiveUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetEffectiveUserID(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetEffectiveGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetEffectiveGroupID(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetParentProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::pid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (lldb::pid_t)(arg1)->GetParentProcessID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetParentProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::pid_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::pid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetParentProcessID(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1ParentProcessIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (bool)(arg1)->ParentProcessIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1GetListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::SBListener result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + result = (arg1)->GetListener(); + *(lldb::SBListener **)&jresult = new lldb::SBListener((const lldb::SBListener &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBAttachInfo_1SetListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + lldb::SBListener *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener & reference is null"); + return ; + } + (arg1)->SetListener(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBAttachInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBAttachInfo *arg1 = (lldb::SBAttachInfo *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBAttachInfo **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBlock_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBBlock *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBBlock *)new lldb::SBBlock(); + *(lldb::SBBlock **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBlock_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = 0 ; + lldb::SBBlock *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBlock const & reference is null"); + return 0; + } + result = (lldb::SBBlock *)new lldb::SBBlock((lldb::SBBlock const &)*arg1); + *(lldb::SBBlock **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBBlock(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBBlock **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBlock_1IsInlined(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (bool)((lldb::SBBlock const *)arg1)->IsInlined(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBlock_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (bool)((lldb::SBBlock const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBlock_1GetInlinedName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (char *)((lldb::SBBlock const *)arg1)->GetInlinedName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetInlinedCallSiteFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = ((lldb::SBBlock const *)arg1)->GetInlinedCallSiteFile(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetInlinedCallSiteLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (uint32_t)((lldb::SBBlock const *)arg1)->GetInlinedCallSiteLine(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetInlinedCallSiteColumn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (uint32_t)((lldb::SBBlock const *)arg1)->GetInlinedCallSiteColumn(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetParent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (arg1)->GetParent(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetContainingInlinedBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (arg1)->GetContainingInlinedBlock(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetSibling(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (arg1)->GetSibling(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetFirstChild(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (arg1)->GetFirstChild(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetNumRanges(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = (uint32_t)(arg1)->GetNumRanges(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetRangeStartAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + uint32_t arg2 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetRangeStartAddress(arg2); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetRangeEndAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + uint32_t arg2 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetRangeEndAddress(arg2); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetRangeIndexForBlockAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBAddress arg2 ; + lldb::SBAddress *argp2 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBlock **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg2 = *argp2; + result = (uint32_t)(arg1)->GetRangeIndexForBlockAddress(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBlock_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBlock **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetVariables_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3, jboolean jarg4, jboolean jarg5, jint jarg6) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBFrame *arg2 = 0 ; + bool arg3 ; + bool arg4 ; + bool arg5 ; + lldb::DynamicValueType arg6 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBlock **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame & reference is null"); + 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); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBlock_1GetVariables_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3, jboolean jarg4, jboolean jarg5) { + jlong jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + lldb::SBTarget *arg2 = 0 ; + bool arg3 ; + bool arg4 ; + bool arg5 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBlock **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + arg3 = jarg3 ? true : false; + arg4 = jarg4 ? true : false; + arg5 = jarg5 ? true : false; + result = (arg1)->GetVariables(*arg2,arg3,arg4,arg5); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBlock_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBlock *arg1 = (lldb::SBBlock *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBlock **)&jarg1; + result = lldb_SBBlock___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpoint_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBBreakpoint *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBBreakpoint *)new lldb::SBBreakpoint(); + *(lldb::SBBreakpoint **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpoint_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = 0 ; + lldb::SBBreakpoint *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpoint const & reference is null"); + return 0; + } + result = (lldb::SBBreakpoint *)new lldb::SBBreakpoint((lldb::SBBreakpoint const &)*arg1); + *(lldb::SBBreakpoint **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBBreakpoint(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::break_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (lldb::break_id_t)((lldb::SBBreakpoint const *)arg1)->GetID(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (bool)((lldb::SBBreakpoint const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1ClearAllBreakpointSites(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + (arg1)->ClearAllBreakpointSites(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = ((lldb::SBBreakpoint const *)arg1)->GetTarget(); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1FindLocationByAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::addr_t arg2 ; + lldb::SBBreakpointLocation result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->FindLocationByAddress(arg2); + *(lldb::SBBreakpointLocation **)&jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1FindLocationIDByAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jint jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::addr_t arg2 ; + lldb::break_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (lldb::break_id_t)(arg1)->FindLocationIDByAddress(arg2); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1FindLocationByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::break_id_t arg2 ; + lldb::SBBreakpointLocation result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = (lldb::break_id_t)jarg2; + result = (arg1)->FindLocationByID(arg2); + *(lldb::SBBreakpointLocation **)&jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetLocationAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + uint32_t arg2 ; + lldb::SBBreakpointLocation result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetLocationAtIndex(arg2); + *(lldb::SBBreakpointLocation **)&jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetEnabled(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1IsEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (bool)(arg1)->IsEnabled(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetOneShot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetOneShot(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1IsOneShot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (bool)(arg1)->IsOneShot(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1IsInternal(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (bool)(arg1)->IsInternal(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetHitCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (uint32_t)((lldb::SBBreakpoint const *)arg1)->GetHitCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetIgnoreCount(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (uint32_t)((lldb::SBBreakpoint const *)arg1)->GetIgnoreCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetCondition((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (char *)(arg1)->GetCondition(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetAutoContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAutoContinue(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetAutoContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (bool)(arg1)->GetAutoContinue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::tid_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetThreadID(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::tid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (lldb::tid_t)(arg1)->GetThreadID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetThreadIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetThreadIndex(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetThreadIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (uint32_t)((lldb::SBBreakpoint const *)arg1)->GetThreadIndex(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetThreadName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetThreadName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetThreadName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (char *)((lldb::SBBreakpoint const *)arg1)->GetThreadName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetQueueName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (char *)((lldb::SBBreakpoint const *)arg1)->GetQueueName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetScriptCallbackFunction_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetScriptCallbackFunction((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetScriptCallbackFunction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + result = (arg1)->SetScriptCallbackFunction((char const *)arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetScriptCallbackBody(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->SetScriptCallbackBody((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SetCommandLineCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBStringList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return ; + } + (arg1)->SetCommandLineCommands(*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetCommandLineCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBStringList *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + result = (bool)(arg1)->GetCommandLineCommands(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1AddName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->AddName((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1AddNameWithErrorHandling(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->AddNameWithErrorHandling((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1RemoveName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->RemoveName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1MatchesName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->MatchesName((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetNames(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBStringList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return ; + } + (arg1)->GetNames(*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetNumResolvedLocations(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = ((lldb::SBBreakpoint const *)arg1)->GetNumResolvedLocations(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetNumLocations(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = ((lldb::SBBreakpoint const *)arg1)->GetNumLocations(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetDescription_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetDescription_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = jarg3 ? true : false; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1AddLocation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBAddress *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress & reference is null"); + return 0; + } + result = (arg1)->AddLocation(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1SerializeToStructuredData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (arg1)->SerializeToStructuredData(); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1EventIsBreakpointEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBBreakpoint::EventIsBreakpointEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetBreakpointEventTypeFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::BreakpointEventType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (lldb::BreakpointEventType)lldb::SBBreakpoint::GetBreakpointEventTypeFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetBreakpointFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBBreakpoint::GetBreakpointFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetBreakpointLocationAtIndexFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + uint32_t arg2 ; + lldb::SBBreakpointLocation result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + arg2 = (uint32_t)jarg2; + result = lldb::SBBreakpoint::GetBreakpointLocationAtIndexFromEvent((lldb::SBEvent const &)*arg1,arg2); + *(lldb::SBBreakpointLocation **)&jresult = new lldb::SBBreakpointLocation((const lldb::SBBreakpointLocation &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1GetNumBreakpointLocationsFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (uint32_t)lldb::SBBreakpoint::GetNumBreakpointLocationsFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1IsHardware(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = (bool)(arg1)->IsHardware(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpoint_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpoint *arg1 = (lldb::SBBreakpoint *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + result = lldb_SBBreakpoint___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointList(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = 0 ; + lldb::SBBreakpointList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + result = (lldb::SBBreakpointList *)new lldb::SBBreakpointList(*arg1); + *(lldb::SBBreakpointList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBBreakpointList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + result = ((lldb::SBBreakpointList const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1GetBreakpointAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + size_t arg2 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetBreakpointAtIndex(arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1FindBreakpointByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + lldb::break_id_t arg2 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + arg2 = (lldb::break_id_t)jarg2; + result = (arg1)->FindBreakpointByID(arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1Append(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + lldb::SBBreakpoint *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + arg2 = *(lldb::SBBreakpoint **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpoint const & reference is null"); + return ; + } + (arg1)->Append((lldb::SBBreakpoint const &)*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1AppendIfUnique(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + lldb::SBBreakpoint *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + arg2 = *(lldb::SBBreakpoint **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpoint const & reference is null"); + return 0; + } + result = (bool)(arg1)->AppendIfUnique((lldb::SBBreakpoint const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1AppendByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + lldb::break_id_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + arg2 = (lldb::break_id_t)jarg2; + (arg1)->AppendByID(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBBreakpointList *arg1 = (lldb::SBBreakpointList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointLocation_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBBreakpointLocation *)new lldb::SBBreakpointLocation(); + *(lldb::SBBreakpointLocation **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointLocation_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = 0 ; + lldb::SBBreakpointLocation *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointLocation const & reference is null"); + return 0; + } + result = (lldb::SBBreakpointLocation *)new lldb::SBBreakpointLocation((lldb::SBBreakpointLocation const &)*arg1); + *(lldb::SBBreakpointLocation **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBBreakpointLocation(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::break_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (lldb::break_id_t)(arg1)->GetID(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (bool)((lldb::SBBreakpointLocation const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (arg1)->GetAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (lldb::addr_t)(arg1)->GetLoadAddress(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetEnabled(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1IsEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (bool)(arg1)->IsEnabled(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetHitCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (uint32_t)(arg1)->GetHitCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (uint32_t)(arg1)->GetIgnoreCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetIgnoreCount(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetCondition((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (char *)(arg1)->GetCondition(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetAutoContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (bool)(arg1)->GetAutoContinue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetAutoContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAutoContinue(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetScriptCallbackFunction_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetScriptCallbackFunction((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetScriptCallbackFunction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + result = (arg1)->SetScriptCallbackFunction((char const *)arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetScriptCallbackBody(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->SetScriptCallbackBody((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetCommandLineCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::SBStringList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return ; + } + (arg1)->SetCommandLineCommands(*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetCommandLineCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::SBStringList *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + result = (bool)(arg1)->GetCommandLineCommands(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::tid_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetThreadID(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::tid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (lldb::tid_t)(arg1)->GetThreadID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetThreadIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetThreadIndex(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetThreadIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (uint32_t)((lldb::SBBreakpointLocation const *)arg1)->GetThreadIndex(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetThreadName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetThreadName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetThreadName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (char *)((lldb::SBBreakpointLocation const *)arg1)->GetThreadName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1SetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetQueueName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (char *)((lldb::SBBreakpointLocation const *)arg1)->GetQueueName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1IsResolved(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (bool)(arg1)->IsResolved(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1GetBreakpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = (arg1)->GetBreakpoint(); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointLocation_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointLocation *arg1 = (lldb::SBBreakpointLocation *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointLocation **)&jarg1; + result = lldb_SBBreakpointLocation___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointName_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBBreakpointName *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBBreakpointName *)new lldb::SBBreakpointName(); + *(lldb::SBBreakpointName **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointName_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = 0 ; + char *arg2 = (char *) 0 ; + lldb::SBBreakpointName *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (lldb::SBBreakpointName *)new lldb::SBBreakpointName(*arg1,(char const *)arg2); + *(lldb::SBBreakpointName **)&jresult = result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointName_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpoint *arg1 = 0 ; + char *arg2 = (char *) 0 ; + lldb::SBBreakpointName *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpoint **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpoint & reference is null"); + return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (lldb::SBBreakpointName *)new lldb::SBBreakpointName(*arg1,(char const *)arg2); + *(lldb::SBBreakpointName **)&jresult = result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBreakpointName_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointName *arg1 = 0 ; + lldb::SBBreakpointName *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointName const & reference is null"); + return 0; + } + result = (lldb::SBBreakpointName *)new lldb::SBBreakpointName((lldb::SBBreakpointName const &)*arg1); + *(lldb::SBBreakpointName **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBBreakpointName(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)((lldb::SBBreakpointName const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (char *)((lldb::SBBreakpointName const *)arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetEnabled(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1IsEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)(arg1)->IsEnabled(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetOneShot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetOneShot(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1IsOneShot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)((lldb::SBBreakpointName const *)arg1)->IsOneShot(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetIgnoreCount(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (uint32_t)((lldb::SBBreakpointName const *)arg1)->GetIgnoreCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetCondition((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (char *)(arg1)->GetCondition(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetAutoContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAutoContinue(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetAutoContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)(arg1)->GetAutoContinue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + lldb::tid_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetThreadID(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + lldb::tid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (lldb::tid_t)(arg1)->GetThreadID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetThreadIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetThreadIndex(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetThreadIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (uint32_t)((lldb::SBBreakpointName const *)arg1)->GetThreadIndex(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetThreadName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetThreadName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetThreadName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (char *)((lldb::SBBreakpointName const *)arg1)->GetThreadName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetQueueName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (char *)((lldb::SBBreakpointName const *)arg1)->GetQueueName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetScriptCallbackFunction_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetScriptCallbackFunction((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetScriptCallbackFunction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + result = (arg1)->SetScriptCallbackFunction((char const *)arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetCommandLineCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + lldb::SBStringList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return ; + } + (arg1)->SetCommandLineCommands(*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetCommandLineCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + lldb::SBStringList *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + result = (bool)(arg1)->GetCommandLineCommands(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetScriptCallbackBody(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->SetScriptCallbackBody((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetHelpString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (char *)((lldb::SBBreakpointName const *)arg1)->GetHelpString(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetHelpString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetHelpString((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetAllowList(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)((lldb::SBBreakpointName const *)arg1)->GetAllowList(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetAllowList(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAllowList(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetAllowDelete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)(arg1)->GetAllowDelete(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetAllowDelete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAllowDelete(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetAllowDisable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = (bool)(arg1)->GetAllowDisable(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1SetAllowDisable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAllowDisable(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBreakpointName_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBreakpointName *arg1 = (lldb::SBBreakpointName *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBreakpointName **)&jarg1; + result = lldb_SBBreakpointName___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBroadcaster_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBBroadcaster *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBBroadcaster *)new lldb::SBBroadcaster(); + *(lldb::SBBroadcaster **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBroadcaster_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBBroadcaster *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBBroadcaster *)new lldb::SBBroadcaster((char const *)arg1); + *(lldb::SBBroadcaster **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBBroadcaster_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBBroadcaster *arg1 = 0 ; + lldb::SBBroadcaster *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + result = (lldb::SBBroadcaster *)new lldb::SBBroadcaster((lldb::SBBroadcaster const &)*arg1); + *(lldb::SBBroadcaster **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + result = (bool)((lldb::SBBroadcaster const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1BroadcastEventByType_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jboolean jarg3) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + uint32_t arg2 ; + bool arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = jarg3 ? true : false; + (arg1)->BroadcastEventByType(arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1BroadcastEventByType_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->BroadcastEventByType(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1BroadcastEvent_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + lldb::SBEvent *arg2 = 0 ; + bool arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + arg3 = jarg3 ? true : false; + (arg1)->BroadcastEvent((lldb::SBEvent const &)*arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1BroadcastEvent_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + lldb::SBEvent *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + (arg1)->BroadcastEvent((lldb::SBEvent const &)*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1AddInitialEventsToListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + lldb::SBListener *arg2 = 0 ; + uint32_t arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener const & reference is null"); + return ; + } + arg3 = (uint32_t)jarg3; + (arg1)->AddInitialEventsToListener((lldb::SBListener const &)*arg2,arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1AddListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + lldb::SBListener *arg2 = 0 ; + uint32_t arg3 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (uint32_t)(arg1)->AddListener((lldb::SBListener const &)*arg2,arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + result = (char *)((lldb::SBBroadcaster const *)arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1EventTypeHasListeners(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jboolean jresult = 0 ; + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + uint32_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (bool)(arg1)->EventTypeHasListeners(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1RemoveListener_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + lldb::SBListener *arg2 = 0 ; + uint32_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (bool)(arg1)->RemoveListener((lldb::SBListener const &)*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBBroadcaster_1RemoveListener_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBBroadcaster *arg1 = (lldb::SBBroadcaster *) 0 ; + lldb::SBListener *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBBroadcaster **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener const & reference is null"); + return 0; + } + result = (bool)(arg1)->RemoveListener((lldb::SBListener const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1eBroadcastBitThreadShouldExit_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommandInterpreter::eBroadcastBitThreadShouldExit; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1eBroadcastBitResetPrompt_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommandInterpreter::eBroadcastBitResetPrompt; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1eBroadcastBitQuitCommandReceived_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommandInterpreter::eBroadcastBitQuitCommandReceived; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1eBroadcastBitAsynchronousOutputData_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommandInterpreter::eBroadcastBitAsynchronousOutputData; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1eBroadcastBitAsynchronousErrorData_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommandInterpreter::eBroadcastBitAsynchronousErrorData; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCommandInterpreter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = 0 ; + lldb::SBCommandInterpreter *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandInterpreter const & reference is null"); + return 0; + } + result = (lldb::SBCommandInterpreter *)new lldb::SBCommandInterpreter((lldb::SBCommandInterpreter const &)*arg1); + *(lldb::SBCommandInterpreter **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBCommandInterpreter(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetArgumentTypeAsCString(JNIEnv *jenv, jclass jcls, jint jarg1) { + jstring jresult = 0 ; + lldb::CommandArgumentType arg1 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (lldb::CommandArgumentType)jarg1; + result = (char *)lldb::SBCommandInterpreter::GetArgumentTypeAsCString(arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetArgumentDescriptionAsCString(JNIEnv *jenv, jclass jcls, jint jarg1) { + jstring jresult = 0 ; + lldb::CommandArgumentType arg1 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (lldb::CommandArgumentType)jarg1; + result = (char *)lldb::SBCommandInterpreter::GetArgumentDescriptionAsCString(arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1EventIsCommandInterpreterEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBCommandInterpreter::EventIsCommandInterpreterEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)((lldb::SBCommandInterpreter const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetIOHandlerControlSequence(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jchar jarg2) { + jstring jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = (char)jarg2; + result = (char *)(arg1)->GetIOHandlerControlSequence(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetPromptOnQuit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)(arg1)->GetPromptOnQuit(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1SetPromptOnQuit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetPromptOnQuit(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1AllowExitCodeOnQuit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->AllowExitCodeOnQuit(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HasCustomQuitExitCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)(arg1)->HasCustomQuitExitCode(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetQuitStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (int)(arg1)->GetQuitStatus(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1ResolveCommand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBCommandReturnObject *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = *(lldb::SBCommandReturnObject **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return ; + } + (arg1)->ResolveCommand((char const *)arg2,*arg3); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1CommandExists(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->CommandExists((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1AliasExists(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->AliasExists((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + lldb::SBBroadcaster result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (arg1)->GetBroadcaster(); + *(lldb::SBBroadcaster **)&jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetBroadcasterClass(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)lldb::SBCommandInterpreter::GetBroadcasterClass(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HasCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)(arg1)->HasCommands(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HasAliases(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)(arg1)->HasAliases(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HasAliasOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)(arg1)->HasAliasOptions(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetProcess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (arg1)->GetProcess(); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1GetDebugger(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + lldb::SBDebugger result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (arg1)->GetDebugger(); + *(lldb::SBDebugger **)&jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1SourceInitFileInHomeDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + lldb::SBCommandReturnObject *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = *(lldb::SBCommandReturnObject **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return ; + } + (arg1)->SourceInitFileInHomeDirectory(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1SourceInitFileInCurrentWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + lldb::SBCommandReturnObject *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = *(lldb::SBCommandReturnObject **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return ; + } + (arg1)->SourceInitFileInCurrentWorkingDirectory(*arg2); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCommand_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jboolean jarg4) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBCommandReturnObject *arg3 = 0 ; + bool arg4 ; + lldb::ReturnStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBCommandReturnObject **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return 0; + } + arg4 = jarg4 ? true : false; + result = (lldb::ReturnStatus)(arg1)->HandleCommand((char const *)arg2,*arg3,arg4); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCommand_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBCommandReturnObject *arg3 = 0 ; + lldb::ReturnStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBCommandReturnObject **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return 0; + } + result = (lldb::ReturnStatus)(arg1)->HandleCommand((char const *)arg2,*arg3); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCommand_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jboolean jarg5) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBExecutionContext *arg3 = 0 ; + lldb::SBCommandReturnObject *arg4 = 0 ; + bool arg5 ; + lldb::ReturnStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBExecutionContext **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExecutionContext & reference is null"); + return 0; + } + arg4 = *(lldb::SBCommandReturnObject **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return 0; + } + arg5 = jarg5 ? true : false; + result = (lldb::ReturnStatus)(arg1)->HandleCommand((char const *)arg2,*arg3,*arg4,arg5); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCommand_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBExecutionContext *arg3 = 0 ; + lldb::SBCommandReturnObject *arg4 = 0 ; + lldb::ReturnStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBExecutionContext **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExecutionContext & reference is null"); + return 0; + } + arg4 = *(lldb::SBCommandReturnObject **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return 0; + } + result = (lldb::ReturnStatus)(arg1)->HandleCommand((char const *)arg2,*arg3,*arg4); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCommandsFromFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBExecutionContext *arg3 = 0 ; + lldb::SBCommandInterpreterRunOptions *arg4 = 0 ; + lldb::SBCommandReturnObject arg5 ; + lldb::SBCommandReturnObject *argp5 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return ; + } + arg3 = *(lldb::SBExecutionContext **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExecutionContext & reference is null"); + return ; + } + arg4 = *(lldb::SBCommandInterpreterRunOptions **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandInterpreterRunOptions & reference is null"); + return ; + } + argp5 = *(lldb::SBCommandReturnObject **)&jarg5; + if (!argp5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBCommandReturnObject"); + return ; + } + arg5 = *argp5; + (arg1)->HandleCommandsFromFile(*arg2,*arg3,*arg4,arg5); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCompletion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jint jarg4, jint jarg5, jlong jarg6, jobject jarg6_) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + int arg4 ; + int arg5 ; + lldb::SBStringList *arg6 = 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg6_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (int)jarg4; + arg5 = (int)jarg5; + arg6 = *(lldb::SBStringList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + result = (int)(arg1)->HandleCompletion((char const *)arg2,arg3,arg4,arg5,*arg6); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1HandleCompletionWithDescriptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jint jarg4, jint jarg5, jlong jarg6, jobject jarg6_, jlong jarg7, jobject jarg7_) { + jint jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + int arg4 ; + int arg5 ; + lldb::SBStringList *arg6 = 0 ; + lldb::SBStringList *arg7 = 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg6_; + (void)jarg7_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (int)jarg4; + arg5 = (int)jarg5; + arg6 = *(lldb::SBStringList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + arg7 = *(lldb::SBStringList **)&jarg7; + if (!arg7) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + result = (int)(arg1)->HandleCompletionWithDescriptions((char const *)arg2,arg3,arg4,arg5,*arg6,*arg7); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1IsActive(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)(arg1)->IsActive(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreter_1WasInterrupted(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreter *arg1 = (lldb::SBCommandInterpreter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreter **)&jarg1; + result = (bool)((lldb::SBCommandInterpreter const *)arg1)->WasInterrupted(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCommandInterpreterRunOptions(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBCommandInterpreterRunOptions *)new lldb::SBCommandInterpreterRunOptions(); + *(lldb::SBCommandInterpreterRunOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBCommandInterpreterRunOptions(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetStopOnContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetStopOnContinue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetStopOnContinue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetStopOnContinue(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetStopOnError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetStopOnError(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetStopOnError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetStopOnError(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetStopOnCrash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetStopOnCrash(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetStopOnCrash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetStopOnCrash(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetEchoCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetEchoCommands(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetEchoCommands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetEchoCommands(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetPrintResults(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetPrintResults(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetPrintResults(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetPrintResults(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetPrintErrors(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetPrintErrors(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetPrintErrors(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetPrintErrors(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1GetAddToHistory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + result = (bool)((lldb::SBCommandInterpreterRunOptions const *)arg1)->GetAddToHistory(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandInterpreterRunOptions_1SetAddToHistory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommandInterpreterRunOptions *arg1 = (lldb::SBCommandInterpreterRunOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandInterpreterRunOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAddToHistory(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCommandReturnObject_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBCommandReturnObject *)new lldb::SBCommandReturnObject(); + *(lldb::SBCommandReturnObject **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCommandReturnObject_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = 0 ; + lldb::SBCommandReturnObject *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject const & reference is null"); + return 0; + } + result = (lldb::SBCommandReturnObject *)new lldb::SBCommandReturnObject((lldb::SBCommandReturnObject const &)*arg1); + *(lldb::SBCommandReturnObject **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBCommandReturnObject(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (bool)((lldb::SBCommandReturnObject const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetOutput_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (char *)(arg1)->GetOutput(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetError_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (char *)(arg1)->GetError(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetOutputSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (arg1)->GetOutputSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetErrorSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (arg1)->GetErrorSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetOutput_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + jstring jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + bool arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = jarg2 ? true : false; + result = (char *)(arg1)->GetOutput(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetError_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + jstring jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + bool arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = jarg2 ? true : false; + result = (char *)(arg1)->GetError(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1PutOutput_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return 0; + } + arg2 = *argp2; + result = (arg1)->PutOutput(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1PutError_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return 0; + } + arg2 = *argp2; + result = (arg1)->PutError(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1PutOutput_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg2 = *argp2; + result = (arg1)->PutOutput(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1PutError_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg2 = *argp2; + result = (arg1)->PutError(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::ReturnStatus arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = (lldb::ReturnStatus)jarg2; + (arg1)->SetStatus(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetError_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBError *arg2 = 0 ; + char *arg3 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return ; + } + (arg1)->SetError(*arg2,(char const *)arg3); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetError_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBError *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->SetError(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetError_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetError((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::ReturnStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (lldb::ReturnStatus)(arg1)->GetStatus(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1Succeeded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (bool)(arg1)->Succeeded(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1HasResult(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = (bool)(arg1)->HasResult(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1AppendMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->AppendMessage((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1AppendWarning(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->AppendWarning((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetImmediateOutputFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg2 = *argp2; + (arg1)->SetImmediateOutputFile(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetImmediateErrorFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg2 = *argp2; + (arg1)->SetImmediateErrorFile(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetImmediateOutputFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + (arg1)->SetImmediateOutputFile(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetImmediateErrorFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + (arg1)->SetImmediateErrorFile(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + result = lldb_SBCommandReturnObject___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetImmediateOutputFile_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jboolean jarg3) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + bool arg3 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + arg3 = jarg3 ? true : false; + lldb_SBCommandReturnObject_SetImmediateOutputFile__SWIG_2(arg1,arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1SetImmediateErrorFile_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jboolean jarg3) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + bool arg3 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + arg3 = jarg3 ? true : false; + lldb_SBCommandReturnObject_SetImmediateErrorFile__SWIG_2(arg1,arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1PutCString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *arg2 = (char *) 0 ; + int arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = (int)jarg3; + (arg1)->PutCString((char const *)arg2,arg3); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommandReturnObject_1Print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBCommandReturnObject *arg1 = (lldb::SBCommandReturnObject *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommandReturnObject **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + lldb_SBCommandReturnObject_Print(arg1,(char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1eBroadcastBitDisconnected_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommunication::eBroadcastBitDisconnected; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1eBroadcastBitReadThreadGotBytes_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommunication::eBroadcastBitReadThreadGotBytes; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1eBroadcastBitReadThreadDidExit_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommunication::eBroadcastBitReadThreadDidExit; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1eBroadcastBitReadThreadShouldExit_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommunication::eBroadcastBitReadThreadShouldExit; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1eBroadcastBitPacketAvailable_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommunication::eBroadcastBitPacketAvailable; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1eAllEventBits_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBCommunication::eAllEventBits; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCommunication_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBCommunication *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBCommunication *)new lldb::SBCommunication(); + *(lldb::SBCommunication **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCommunication_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBCommunication *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBCommunication *)new lldb::SBCommunication((char const *)arg1); + *(lldb::SBCommunication **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBCommunication(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBCommunication **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (bool)((lldb::SBCommunication const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommunication_1GetBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + lldb::SBBroadcaster result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (arg1)->GetBroadcaster(); + *(lldb::SBBroadcaster **)&jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCommunication_1GetBroadcasterClass(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)lldb::SBCommunication::GetBroadcasterClass(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1AdoptFileDesriptor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) { + jint jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + int arg2 ; + bool arg3 ; + lldb::ConnectionStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + arg2 = (int)jarg2; + arg3 = jarg3 ? true : false; + result = (lldb::ConnectionStatus)(arg1)->AdoptFileDesriptor(arg2,arg3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1Connect(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jint jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + char *arg2 = (char *) 0 ; + lldb::ConnectionStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (lldb::ConnectionStatus)(arg1)->Connect((char const *)arg2); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCommunication_1Disconnect(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + lldb::ConnectionStatus result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (lldb::ConnectionStatus)(arg1)->Disconnect(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1IsConnected(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (bool)((lldb::SBCommunication const *)arg1)->IsConnected(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1GetCloseOnEOF(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (bool)(arg1)->GetCloseOnEOF(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBCommunication_1SetCloseOnEOF(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetCloseOnEOF(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommunication_1Read(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5) { + jlong jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + void *arg2 = (void *) 0 ; + size_t arg3 ; + uint32_t arg4 ; + lldb::ConnectionStatus *arg5 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + arg2 = *(void **)&jarg2; + arg3 = (size_t)jarg3; + arg4 = (uint32_t)jarg4; + arg5 = *(lldb::ConnectionStatus **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::ConnectionStatus & reference is null"); + return 0; + } + result = (arg1)->Read(arg2,arg3,arg4,*arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCommunication_1Write(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + void *arg2 = (void *) 0 ; + size_t arg3 ; + lldb::ConnectionStatus *arg4 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + arg2 = *(void **)&jarg2; + arg3 = (size_t)jarg3; + arg4 = *(lldb::ConnectionStatus **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::ConnectionStatus & reference is null"); + return 0; + } + result = (arg1)->Write((void const *)arg2,arg3,*arg4); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1ReadThreadStart(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (bool)(arg1)->ReadThreadStart(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1ReadThreadStop(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (bool)(arg1)->ReadThreadStop(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1ReadThreadIsRunning(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + result = (bool)(arg1)->ReadThreadIsRunning(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCommunication_1SetReadThreadBytesReceivedCallback(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBCommunication *arg1 = (lldb::SBCommunication *) 0 ; + lldb::SBCommunication::ReadThreadBytesReceived arg2 = (lldb::SBCommunication::ReadThreadBytesReceived) 0 ; + void *arg3 = (void *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCommunication **)&jarg1; + arg2 = *(lldb::SBCommunication::ReadThreadBytesReceived *)&jarg2; + arg3 = *(void **)&jarg3; + result = (bool)(arg1)->SetReadThreadBytesReceivedCallback(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCompileUnit_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBCompileUnit *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBCompileUnit *)new lldb::SBCompileUnit(); + *(lldb::SBCompileUnit **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBCompileUnit_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = 0 ; + lldb::SBCompileUnit *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCompileUnit const & reference is null"); + return 0; + } + result = (lldb::SBCompileUnit *)new lldb::SBCompileUnit((lldb::SBCompileUnit const &)*arg1); + *(lldb::SBCompileUnit **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBCompileUnit(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = (bool)((lldb::SBCompileUnit const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = ((lldb::SBCompileUnit const *)arg1)->GetFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetNumLineEntries(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = (uint32_t)((lldb::SBCompileUnit const *)arg1)->GetNumLineEntries(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetLineEntryAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t arg2 ; + lldb::SBLineEntry result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBCompileUnit const *)arg1)->GetLineEntryAtIndex(arg2); + *(lldb::SBLineEntry **)&jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1FindLineEntryIndex_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t arg2 ; + uint32_t arg3 ; + lldb::SBFileSpec *arg4 = (lldb::SBFileSpec *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBFileSpec **)&jarg4; + result = (uint32_t)((lldb::SBCompileUnit const *)arg1)->FindLineEntryIndex(arg2,arg3,arg4); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1FindLineEntryIndex_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jlong jarg4, jobject jarg4_, jboolean jarg5) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t arg2 ; + uint32_t arg3 ; + lldb::SBFileSpec *arg4 = (lldb::SBFileSpec *) 0 ; + bool arg5 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBFileSpec **)&jarg4; + arg5 = jarg5 ? true : false; + result = (uint32_t)((lldb::SBCompileUnit const *)arg1)->FindLineEntryIndex(arg2,arg3,arg4,arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetSupportFileAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t arg2 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBCompileUnit const *)arg1)->GetSupportFileAtIndex(arg2); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetNumSupportFiles(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = (uint32_t)((lldb::SBCompileUnit const *)arg1)->GetNumSupportFiles(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1FindSupportFileIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jobject jarg3_, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t arg2 ; + lldb::SBFileSpec *arg3 = 0 ; + bool arg4 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg4 = jarg4 ? true : false; + result = (uint32_t)(arg1)->FindSupportFileIndex(arg2,(lldb::SBFileSpec const &)*arg3,arg4); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetTypes_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + uint32_t arg2 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypes(arg2); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetTypes_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = (arg1)->GetTypes(); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = (lldb::LanguageType)(arg1)->GetLanguage(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBCompileUnit_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBCompileUnit *arg1 = (lldb::SBCompileUnit *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBCompileUnit **)&jarg1; + result = lldb_SBCompileUnit___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBData_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBData *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBData *)new lldb::SBData(); + *(lldb::SBData **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBData_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBData *arg1 = 0 ; + lldb::SBData *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBData const & reference is null"); + return 0; + } + result = (lldb::SBData *)new lldb::SBData((lldb::SBData const &)*arg1); + *(lldb::SBData **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBData(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBData **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jshort JNICALL Java_SWIG_lldbJNI_SBData_1GetAddressByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jshort jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + uint8_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + result = (uint8_t)(arg1)->GetAddressByteSize(); + jresult = (jshort)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBData_1SetAddressByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jshort jarg2) { + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + uint8_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = (uint8_t)jarg2; + (arg1)->SetAddressByteSize(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBData_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1GetByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + result = (arg1)->GetByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBData_1GetByteOrder(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + result = (lldb::ByteOrder)(arg1)->GetByteOrder(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBData_1SetByteOrder(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::ByteOrder arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = (lldb::ByteOrder)jarg2; + (arg1)->SetByteOrder(arg2); +} + + +SWIGEXPORT jfloat JNICALL Java_SWIG_lldbJNI_SBData_1GetFloat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jfloat jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + float result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (float)(arg1)->GetFloat(*arg2,arg3); + jresult = (jfloat)result; + return jresult; +} + + +SWIGEXPORT jdouble JNICALL Java_SWIG_lldbJNI_SBData_1GetDouble(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jdouble jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + double result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (double)(arg1)->GetDouble(*arg2,arg3); + jresult = (jdouble)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1GetLongDouble(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + long double result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (long double)(arg1)->GetLongDouble(*arg2,arg3); + *(long double **)&jresult = new long double((const long double &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBData_1GetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jobject jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (lldb::addr_t)(arg1)->GetAddress(*arg2,arg3); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jshort JNICALL Java_SWIG_lldbJNI_SBData_1GetUnsignedInt8(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jshort jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + uint8_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint8_t)(arg1)->GetUnsignedInt8(*arg2,arg3); + jresult = (jshort)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBData_1GetUnsignedInt16(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jint jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + uint16_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint16_t)(arg1)->GetUnsignedInt16(*arg2,arg3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1GetUnsignedInt32(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint32_t)(arg1)->GetUnsignedInt32(*arg2,arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBData_1GetUnsignedInt64(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jobject jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint64_t)(arg1)->GetUnsignedInt64(*arg2,arg3); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jbyte JNICALL Java_SWIG_lldbJNI_SBData_1GetSignedInt8(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jbyte jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + int8_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (int8_t)(arg1)->GetSignedInt8(*arg2,arg3); + jresult = (jbyte)result; + return jresult; +} + + +SWIGEXPORT jshort JNICALL Java_SWIG_lldbJNI_SBData_1GetSignedInt16(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jshort jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + int16_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (int16_t)(arg1)->GetSignedInt16(*arg2,arg3); + jresult = (jshort)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBData_1GetSignedInt32(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jint jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + int32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (int32_t)(arg1)->GetSignedInt32(*arg2,arg3); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1GetSignedInt64(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + int64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (int64_t)(arg1)->GetSignedInt64(*arg2,arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBData_1GetString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jstring jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (char *)(arg1)->GetString(*arg2,arg3); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::addr_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1ReadRawData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3, jlong jarg4, jlong jarg5) { + jlong jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::offset_t arg3 ; + void *arg4 = (void *) 0 ; + size_t arg5 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::offset_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg4 = *(void **)&jarg4; + arg5 = (size_t)jarg5; + result = (arg1)->ReadRawData(*arg2,arg3,arg4,arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBData_1SetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jint jarg5, jshort jarg6) { + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBError *arg2 = 0 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + lldb::ByteOrder arg5 ; + uint8_t arg6 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = (lldb::ByteOrder)jarg5; + arg6 = (uint8_t)jarg6; + (arg1)->SetData(*arg2,(void const *)arg3,arg4,arg5,arg6); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1Append(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + lldb::SBData *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(lldb::SBData **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBData const & reference is null"); + return 0; + } + result = (bool)(arg1)->Append((lldb::SBData const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1CreateDataFromCString(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::ByteOrder arg1 ; + uint32_t arg2 ; + char *arg3 = (char *) 0 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::ByteOrder)jarg1; + arg2 = (uint32_t)jarg2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = lldb::SBData::CreateDataFromCString(arg1,arg2,(char const *)arg3); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1CreateDataFromUInt64Array(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::ByteOrder arg1 ; + uint32_t arg2 ; + uint64_t *arg3 = (uint64_t *) 0 ; + size_t arg4 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::ByteOrder)jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(uint64_t **)&jarg3; + arg4 = (size_t)jarg4; + result = lldb::SBData::CreateDataFromUInt64Array(arg1,arg2,arg3,arg4); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1CreateDataFromUInt32Array(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::ByteOrder arg1 ; + uint32_t arg2 ; + uint32_t *arg3 = (uint32_t *) 0 ; + size_t arg4 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::ByteOrder)jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(uint32_t **)&jarg3; + arg4 = (size_t)jarg4; + result = lldb::SBData::CreateDataFromUInt32Array(arg1,arg2,arg3,arg4); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1CreateDataFromSInt64Array(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::ByteOrder arg1 ; + uint32_t arg2 ; + int64_t *arg3 = (int64_t *) 0 ; + size_t arg4 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::ByteOrder)jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(int64_t **)&jarg3; + arg4 = (size_t)jarg4; + result = lldb::SBData::CreateDataFromSInt64Array(arg1,arg2,arg3,arg4); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1CreateDataFromSInt32Array(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::ByteOrder arg1 ; + uint32_t arg2 ; + int32_t *arg3 = (int32_t *) 0 ; + size_t arg4 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::ByteOrder)jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(int32_t **)&jarg3; + arg4 = (size_t)jarg4; + result = lldb::SBData::CreateDataFromSInt32Array(arg1,arg2,arg3,arg4); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBData_1CreateDataFromDoubleArray(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::ByteOrder arg1 ; + uint32_t arg2 ; + double *arg3 = (double *) 0 ; + size_t arg4 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::ByteOrder)jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(double **)&jarg3; + arg4 = (size_t)jarg4; + result = lldb::SBData::CreateDataFromDoubleArray(arg1,arg2,arg3,arg4); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1SetDataFromCString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->SetDataFromCString((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1SetDataFromUInt64Array(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + uint64_t *arg2 = (uint64_t *) 0 ; + size_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(uint64_t **)&jarg2; + arg3 = (size_t)jarg3; + result = (bool)(arg1)->SetDataFromUInt64Array(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1SetDataFromUInt32Array(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + uint32_t *arg2 = (uint32_t *) 0 ; + size_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(uint32_t **)&jarg2; + arg3 = (size_t)jarg3; + result = (bool)(arg1)->SetDataFromUInt32Array(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1SetDataFromSInt64Array(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + int64_t *arg2 = (int64_t *) 0 ; + size_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(int64_t **)&jarg2; + arg3 = (size_t)jarg3; + result = (bool)(arg1)->SetDataFromSInt64Array(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1SetDataFromSInt32Array(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + int32_t *arg2 = (int32_t *) 0 ; + size_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(int32_t **)&jarg2; + arg3 = (size_t)jarg3; + result = (bool)(arg1)->SetDataFromSInt32Array(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBData_1SetDataFromDoubleArray(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + double *arg2 = (double *) 0 ; + size_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + arg2 = *(double **)&jarg2; + arg3 = (size_t)jarg3; + result = (bool)(arg1)->SetDataFromDoubleArray(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBData_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBData *arg1 = (lldb::SBData *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBData **)&jarg1; + result = lldb_SBData___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1Initialize(JNIEnv *jenv, jclass jcls) { + (void)jenv; + (void)jcls; + lldb::SBDebugger::Initialize(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1InitializeWithErrorHandling(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + result = lldb::SBDebugger::InitializeWithErrorHandling(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1Terminate(JNIEnv *jenv, jclass jcls) { + (void)jenv; + (void)jcls; + lldb::SBDebugger::Terminate(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1Create_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBDebugger result; + + (void)jenv; + (void)jcls; + result = lldb::SBDebugger::Create(); + *(lldb::SBDebugger **)&jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1Create_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jboolean jarg1) { + jlong jresult = 0 ; + bool arg1 ; + lldb::SBDebugger result; + + (void)jenv; + (void)jcls; + arg1 = jarg1 ? true : false; + result = lldb::SBDebugger::Create(arg1); + *(lldb::SBDebugger **)&jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1Create_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jboolean jarg1, jlong jarg2, jlong jarg3) { + jlong jresult = 0 ; + bool arg1 ; + lldb::LogOutputCallback arg2 = (lldb::LogOutputCallback) 0 ; + void *arg3 = (void *) 0 ; + lldb::SBDebugger result; + + (void)jenv; + (void)jcls; + arg1 = jarg1 ? true : false; + arg2 = *(lldb::LogOutputCallback *)&jarg2; + arg3 = *(void **)&jarg3; + result = lldb::SBDebugger::Create(arg1,arg2,arg3); + *(lldb::SBDebugger **)&jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1Destroy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBDebugger *arg1 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBDebugger & reference is null"); + return ; + } + lldb::SBDebugger::Destroy(*arg1); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1MemoryPressureDetected(JNIEnv *jenv, jclass jcls) { + (void)jenv; + (void)jcls; + lldb::SBDebugger::MemoryPressureDetected(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBDebugger_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBDebugger *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBDebugger *)new lldb::SBDebugger(); + *(lldb::SBDebugger **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBDebugger_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = 0 ; + lldb::SBDebugger *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBDebugger const & reference is null"); + return 0; + } + result = (lldb::SBDebugger *)new lldb::SBDebugger((lldb::SBDebugger const &)*arg1); + *(lldb::SBDebugger **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBDebugger(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBDebugger **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (bool)((lldb::SBDebugger const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetAsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAsync(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetAsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (bool)(arg1)->GetAsync(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SkipLLDBInitFiles(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SkipLLDBInitFiles(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetInputFileHandle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = lldb_SBDebugger_GetInputFileHandle(arg1); + *(lldb::FileSP **)&jresult = new lldb::FileSP((const lldb::FileSP &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetOutputFileHandle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = lldb_SBDebugger_GetOutputFileHandle(arg1); + *(lldb::FileSP **)&jresult = new lldb::FileSP((const lldb::FileSP &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetErrorFileHandle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = lldb_SBDebugger_GetErrorFileHandle(arg1); + *(lldb::FileSP **)&jresult = new lldb::FileSP((const lldb::FileSP &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetInputFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return 0; + } + arg2 = *argp2; + result = (arg1)->SetInputFile(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetOutputFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return 0; + } + arg2 = *argp2; + result = (arg1)->SetOutputFile(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetErrorFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return 0; + } + arg2 = *argp2; + result = (arg1)->SetErrorFile(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetInputFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg2 = *argp2; + result = (arg1)->SetInputFile(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetOutputFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg2 = *argp2; + result = (arg1)->SetOutputFile(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetErrorFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg2 = *argp2; + result = (arg1)->SetErrorFile(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetInputFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBFile result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetInputFile(); + *(lldb::SBFile **)&jresult = new lldb::SBFile((const lldb::SBFile &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetOutputFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBFile result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetOutputFile(); + *(lldb::SBFile **)&jresult = new lldb::SBFile((const lldb::SBFile &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetErrorFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBFile result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetErrorFile(); + *(lldb::SBFile **)&jresult = new lldb::SBFile((const lldb::SBFile &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetCommandInterpreter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< lldb::SBCommandInterpreter > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetCommandInterpreter(); + *(lldb::SBCommandInterpreter **)&jresult = new lldb::SBCommandInterpreter((const lldb::SBCommandInterpreter &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1HandleCommand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->HandleCommand((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBListener result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetListener(); + *(lldb::SBListener **)&jresult = new lldb::SBListener((const lldb::SBListener &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1HandleProcessEvent_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBProcess *arg2 = 0 ; + lldb::SBEvent *arg3 = 0 ; + lldb::SBFile arg4 ; + lldb::SBFile arg5 ; + lldb::SBFile *argp4 ; + lldb::SBFile *argp5 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(lldb::SBProcess **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBProcess const & reference is null"); + return ; + } + arg3 = *(lldb::SBEvent **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + argp4 = *(lldb::SBFile **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg4 = *argp4; + argp5 = *(lldb::SBFile **)&jarg5; + if (!argp5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg5 = *argp5; + (arg1)->HandleProcessEvent((lldb::SBProcess const &)*arg2,(lldb::SBEvent const &)*arg3,arg4,arg5); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1HandleProcessEvent_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jlong jarg5) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBProcess *arg2 = 0 ; + lldb::SBEvent *arg3 = 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg4 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg5 ; + lldb::FileSP *argp4 ; + lldb::FileSP *argp5 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(lldb::SBProcess **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBProcess const & reference is null"); + return ; + } + arg3 = *(lldb::SBEvent **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + argp4 = *(lldb::FileSP **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg4 = *argp4; + argp5 = *(lldb::FileSP **)&jarg5; + if (!argp5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg5 = *argp5; + (arg1)->HandleProcessEvent((lldb::SBProcess const &)*arg2,(lldb::SBEvent const &)*arg3,arg4,arg5); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1CreateTarget_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jboolean jarg5, jlong jarg6, jobject jarg6_) { + jlong jresult = 0 ; + 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; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg6_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + arg5 = jarg5 ? true : false; + arg6 = *(lldb::SBError **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->CreateTarget((char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,*arg6); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1CreateTargetWithFileAndTargetTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->CreateTargetWithFileAndTargetTriple((char const *)arg2,(char const *)arg3); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1CreateTargetWithFileAndArch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->CreateTargetWithFileAndArch((char const *)arg2,(char const *)arg3); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1CreateTarget_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->CreateTarget((char const *)arg2); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetDummyTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetDummyTarget(); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1DeleteTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTarget *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + result = (bool)(arg1)->DeleteTarget(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetTargetAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t arg2 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTargetAtIndex(arg2); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetIndexOfTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (uint32_t)(arg1)->GetIndexOfTarget(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1FindTargetWithProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::pid_t arg2 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::pid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->FindTargetWithProcessID(arg2); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1FindTargetWithFileAndArch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->FindTargetWithFileAndArch((char const *)arg2,(char const *)arg3); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetNumTargets(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (uint32_t)(arg1)->GetNumTargets(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetSelectedTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetSelectedTarget(); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetSelectedTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTarget *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return ; + } + (arg1)->SetSelectedTarget(*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetSelectedPlatform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBPlatform result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetSelectedPlatform(); + *(lldb::SBPlatform **)&jresult = new lldb::SBPlatform((const lldb::SBPlatform &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetSelectedPlatform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBPlatform *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(lldb::SBPlatform **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBPlatform & reference is null"); + return ; + } + (arg1)->SetSelectedPlatform(*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetNumPlatforms(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (uint32_t)(arg1)->GetNumPlatforms(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetPlatformAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t arg2 ; + lldb::SBPlatform result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetPlatformAtIndex(arg2); + *(lldb::SBPlatform **)&jresult = new lldb::SBPlatform((const lldb::SBPlatform &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetNumAvailablePlatforms(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (uint32_t)(arg1)->GetNumAvailablePlatforms(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetAvailablePlatformInfoAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t arg2 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetAvailablePlatformInfoAtIndex(arg2); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetSourceManager(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + SwigValueWrapper< lldb::SBSourceManager > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetSourceManager(); + *(lldb::SBSourceManager **)&jresult = new lldb::SBSourceManager((const lldb::SBSourceManager &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetCurrentPlatform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->SetCurrentPlatform((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetCurrentPlatformSDKRoot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->SetCurrentPlatformSDKRoot((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetUseExternalEditor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = jarg2 ? true : false; + result = (bool)(arg1)->SetUseExternalEditor(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetUseExternalEditor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (bool)(arg1)->GetUseExternalEditor(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetUseColor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = jarg2 ? true : false; + result = (bool)(arg1)->SetUseColor(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetUseColor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (bool)((lldb::SBDebugger const *)arg1)->GetUseColor(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetDefaultArchitecture(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jboolean jresult = 0 ; + char *arg1 = (char *) 0 ; + size_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (size_t)jarg2; + result = (bool)lldb::SBDebugger::GetDefaultArchitecture(arg1,arg2); + jresult = (jboolean)result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetDefaultArchitecture(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jboolean jresult = 0 ; + char *arg1 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (bool)lldb::SBDebugger::SetDefaultArchitecture((char const *)arg1); + jresult = (jboolean)result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetScriptingLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jint jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + lldb::ScriptLanguage result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (lldb::ScriptLanguage)(arg1)->GetScriptingLanguage((char const *)arg2); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetVersionString(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)lldb::SBDebugger::GetVersionString(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDebugger_1StateAsCString(JNIEnv *jenv, jclass jcls, jint jarg1) { + jstring jresult = 0 ; + lldb::StateType arg1 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (lldb::StateType)jarg1; + result = (char *)lldb::SBDebugger::StateAsCString(arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetBuildConfiguration(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + result = lldb::SBDebugger::GetBuildConfiguration(); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1StateIsRunningState(JNIEnv *jenv, jclass jcls, jint jarg1) { + jboolean jresult = 0 ; + lldb::StateType arg1 ; + bool result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::StateType)jarg1; + result = (bool)lldb::SBDebugger::StateIsRunningState(arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1StateIsStoppedState(JNIEnv *jenv, jclass jcls, jint jarg1) { + jboolean jresult = 0 ; + lldb::StateType arg1 ; + bool result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::StateType)jarg1; + result = (bool)lldb::SBDebugger::StateIsStoppedState(arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1EnableLog(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jobjectArray jarg3) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + char **arg3 = (char **) 0 ; + jint size3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + { + int i = 0; + if (jarg3) { + size3 = jenv->GetArrayLength(jarg3); + + arg3 = new char*[size3+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg3, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg3[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg3[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg3[i] = 0; + } else { + arg3 = 0; + size3 = 0; + } + } + result = (bool)(arg1)->EnableLog((char const *)arg2,(char const **)arg3); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + { + int i; + for (i=0; iSetLoggingCallback(arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1DispatchInput(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + void *arg2 = (void *) 0 ; + size_t arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(void **)&jarg2; + arg3 = (size_t)jarg3; + (arg1)->DispatchInput((void const *)arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1DispatchInputInterrupt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + (arg1)->DispatchInputInterrupt(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1DispatchInputEndOfFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + (arg1)->DispatchInputEndOfFile(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetInstanceName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (char *)(arg1)->GetInstanceName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1FindDebuggerWithID(JNIEnv *jenv, jclass jcls, jint jarg1) { + jlong jresult = 0 ; + int arg1 ; + lldb::SBDebugger result; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + result = lldb::SBDebugger::FindDebuggerWithID(arg1); + *(lldb::SBDebugger **)&jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetInternalVariable(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = lldb::SBDebugger::SetInternalVariable((char const *)arg1,(char const *)arg2,(char const *)arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetInternalVariableValue(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStringList result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = lldb::SBDebugger::GetInternalVariableValue((char const *)arg1,(char const *)arg2); + *(lldb::SBStringList **)&jresult = new lldb::SBStringList((const lldb::SBStringList &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetTerminalWidth(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (uint32_t)((lldb::SBDebugger const *)arg1)->GetTerminalWidth(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetTerminalWidth(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetTerminalWidth(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::user_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (lldb::user_id_t)(arg1)->GetID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetPrompt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (char *)((lldb::SBDebugger const *)arg1)->GetPrompt(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetPrompt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetPrompt((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetReproducerPath(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (char *)((lldb::SBDebugger const *)arg1)->GetReproducerPath(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetScriptLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::ScriptLanguage result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (lldb::ScriptLanguage)((lldb::SBDebugger const *)arg1)->GetScriptLanguage(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetScriptLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::ScriptLanguage arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (lldb::ScriptLanguage)jarg2; + (arg1)->SetScriptLanguage(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetCloseInputOnEOF(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (bool)((lldb::SBDebugger const *)arg1)->GetCloseInputOnEOF(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetCloseInputOnEOF(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetCloseInputOnEOF(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetCategory_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBTypeCategory result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->GetCategory((char const *)arg2); + *(lldb::SBTypeCategory **)&jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetCategory_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::LanguageType arg2 ; + lldb::SBTypeCategory result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (lldb::LanguageType)jarg2; + result = (arg1)->GetCategory(arg2); + *(lldb::SBTypeCategory **)&jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1CreateCategory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBTypeCategory result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->CreateCategory((char const *)arg2); + *(lldb::SBTypeCategory **)&jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDebugger_1DeleteCategory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->DeleteCategory((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetNumCategories(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (uint32_t)(arg1)->GetNumCategories(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetCategoryAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + uint32_t arg2 ; + lldb::SBTypeCategory result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetCategoryAtIndex(arg2); + *(lldb::SBTypeCategory **)&jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetDefaultCategory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTypeCategory result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = (arg1)->GetDefaultCategory(); + *(lldb::SBTypeCategory **)&jresult = new lldb::SBTypeCategory((const lldb::SBTypeCategory &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetFormatForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeFormat result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetFormatForType(arg2); + *(lldb::SBTypeFormat **)&jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetSummaryForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetSummaryForType(arg2); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetFilterForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeFilter result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetFilterForType(arg2); + *(lldb::SBTypeFilter **)&jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetSyntheticForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDebugger **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetSyntheticForType(arg2); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDebugger_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + result = lldb_SBDebugger___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDebugger_1RunCommandInterpreter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jboolean jarg3, jlong jarg4, jobject jarg4_, jintArray jarg5, jbooleanArray jarg6, jbooleanArray jarg7) { + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + bool arg2 ; + bool arg3 ; + lldb::SBCommandInterpreterRunOptions *arg4 = 0 ; + int *arg5 = 0 ; + bool *arg6 = 0 ; + bool *arg7 = 0 ; + bool btemp6 ; + jboolean *jbtemp6 ; + bool btemp7 ; + jboolean *jbtemp7 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = jarg2 ? true : false; + arg3 = jarg3 ? true : false; + arg4 = *(lldb::SBCommandInterpreterRunOptions **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandInterpreterRunOptions & reference is null"); + return ; + } + { + if (!jarg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null"); + return ; + } + if (jenv->GetArrayLength(jarg5) == 0) { + SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element"); + return ; + } + arg5 = (int *) jenv->GetIntArrayElements(jarg5, 0); + } + { + if (!jarg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null"); + return ; + } + if (jenv->GetArrayLength(jarg6) == 0) { + SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element"); + return ; + } + jbtemp6 = jenv->GetBooleanArrayElements(jarg6, 0); + btemp6 = (*jbtemp6) ? true : false; + arg6 = &btemp6; + } + { + if (!jarg7) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null"); + return ; + } + if (jenv->GetArrayLength(jarg7) == 0) { + SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element"); + return ; + } + jbtemp7 = jenv->GetBooleanArrayElements(jarg7, 0); + btemp7 = (*jbtemp7) ? true : false; + arg7 = &btemp7; + } + (arg1)->RunCommandInterpreter(arg2,arg3,*arg4,*arg5,*arg6,*arg7); + { + jenv->ReleaseIntArrayElements(jarg5, (jint *)arg5, 0); + } + { + *jbtemp6 = btemp6 ? (jboolean)1 : (jboolean)0; + jenv->ReleaseBooleanArrayElements(jarg6, (jboolean *)jbtemp6, 0); + } + { + *jbtemp7 = btemp7 ? (jboolean)1 : (jboolean)0; + jenv->ReleaseBooleanArrayElements(jarg7, (jboolean *)jbtemp7, 0); + } + + + +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1RunREPL(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::LanguageType arg2 ; + char *arg3 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (lldb::LanguageType)jarg2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->RunREPL(arg2,(char const *)arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBDeclaration_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBDeclaration *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBDeclaration *)new lldb::SBDeclaration(); + *(lldb::SBDeclaration **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBDeclaration_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDeclaration *arg1 = 0 ; + lldb::SBDeclaration *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBDeclaration const & reference is null"); + return 0; + } + result = (lldb::SBDeclaration *)new lldb::SBDeclaration((lldb::SBDeclaration const &)*arg1); + *(lldb::SBDeclaration **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBDeclaration(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBDeclaration **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDeclaration_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + result = (bool)((lldb::SBDeclaration const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDeclaration_1GetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + result = ((lldb::SBDeclaration const *)arg1)->GetFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDeclaration_1GetLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + result = (uint32_t)((lldb::SBDeclaration const *)arg1)->GetLine(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDeclaration_1GetColumn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + result = (uint32_t)((lldb::SBDeclaration const *)arg1)->GetColumn(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBDeclaration_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDeclaration_1SetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + lldb::SBFileSpec arg2 ; + lldb::SBFileSpec *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + argp2 = *(lldb::SBFileSpec **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFileSpec"); + return ; + } + arg2 = *argp2; + (arg1)->SetFileSpec(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDeclaration_1SetLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetLine(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBDeclaration_1SetColumn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetColumn(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBDeclaration_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBDeclaration *arg1 = (lldb::SBDeclaration *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDeclaration **)&jarg1; + result = lldb_SBDeclaration___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBError_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBError *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBError *)new lldb::SBError(); + *(lldb::SBError **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBError_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBError *arg1 = 0 ; + lldb::SBError *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError const & reference is null"); + return 0; + } + result = (lldb::SBError *)new lldb::SBError((lldb::SBError const &)*arg1); + *(lldb::SBError **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBError(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBError **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBError_1GetCString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = (char *)((lldb::SBError const *)arg1)->GetCString(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBError_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBError_1Fail(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = (bool)((lldb::SBError const *)arg1)->Fail(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBError_1Success(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = (bool)((lldb::SBError const *)arg1)->Success(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBError_1GetError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = (uint32_t)((lldb::SBError const *)arg1)->GetError(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBError_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + lldb::ErrorType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = (lldb::ErrorType)((lldb::SBError const *)arg1)->GetType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBError_1SetError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jint jarg3) { + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + uint32_t arg2 ; + lldb::ErrorType arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = (lldb::ErrorType)jarg3; + (arg1)->SetError(arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorToErrno(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + (arg1)->SetErrorToErrno(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorToGenericError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + (arg1)->SetErrorToGenericError(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetErrorString((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorStringWithFormat_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5) { + jint jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + char *arg5 = (char *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + arg5 = 0; + if (jarg5) { + arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0); + if (!arg5) return 0; + } + result = (int)(arg1)->SetErrorStringWithFormat((char const *)arg2,arg3,arg4,arg5); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorStringWithFormat_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4) { + jint jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = (int)(arg1)->SetErrorStringWithFormat((char const *)arg2,arg3,arg4); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorStringWithFormat_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jint jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (int)(arg1)->SetErrorStringWithFormat((char const *)arg2,arg3); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBError_1SetErrorStringWithFormat_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jint jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + char *arg2 = (char *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (int)(arg1)->SetErrorStringWithFormat((char const *)arg2); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBError_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = (bool)((lldb::SBError const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBError_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBError **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBError_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBError *arg1 = (lldb::SBError *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBError **)&jarg1; + result = lldb_SBError___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBEnvironment_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBEnvironment *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBEnvironment *)new lldb::SBEnvironment(); + *(lldb::SBEnvironment **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBEnvironment_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEnvironment *arg1 = 0 ; + lldb::SBEnvironment *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEnvironment const & reference is null"); + return 0; + } + result = (lldb::SBEnvironment *)new lldb::SBEnvironment((lldb::SBEnvironment const &)*arg1); + *(lldb::SBEnvironment **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBEnvironment(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBEnvironment **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBEnvironment_1GetNumValues(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + result = (arg1)->GetNumValues(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBEnvironment_1Get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jstring jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + char *arg2 = (char *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (char *)(arg1)->Get((char const *)arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBEnvironment_1GetNameAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + size_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = (size_t)jarg2; + result = (char *)(arg1)->GetNameAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBEnvironment_1GetValueAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + size_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = (size_t)jarg2; + result = (char *)(arg1)->GetValueAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBEnvironment_1GetEntries(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + lldb::SBStringList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + result = (arg1)->GetEntries(); + *(lldb::SBStringList **)&jresult = new lldb::SBStringList((const lldb::SBStringList &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBEnvironment_1PutEntry(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->PutEntry((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBEnvironment_1SetEntries(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) { + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + lldb::SBStringList *arg2 = 0 ; + bool arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList const & reference is null"); + return ; + } + arg3 = jarg3 ? true : false; + (arg1)->SetEntries((lldb::SBStringList const &)*arg2,arg3); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBEnvironment_1Set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jboolean jarg4) { + jboolean jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + bool arg4 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = jarg4 ? true : false; + result = (bool)(arg1)->Set((char const *)arg2,(char const *)arg3,arg4); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBEnvironment_1Unset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->Unset((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBEnvironment_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBEnvironment *arg1 = (lldb::SBEnvironment *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEnvironment **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBEvent_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBEvent *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBEvent *)new lldb::SBEvent(); + *(lldb::SBEvent **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBEvent_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBEvent *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (lldb::SBEvent *)new lldb::SBEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBEvent **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBEvent_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + uint32_t arg1 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBEvent *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (uint32_t)jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (lldb::SBEvent *)new lldb::SBEvent(arg1,(char const *)arg2,arg3); + *(lldb::SBEvent **)&jresult = result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBEvent(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBEvent **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBEvent_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + result = (bool)((lldb::SBEvent const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBEvent_1GetDataFlavor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + result = (char *)(arg1)->GetDataFlavor(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBEvent_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + result = (uint32_t)((lldb::SBEvent const *)arg1)->GetType(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBEvent_1GetBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + lldb::SBBroadcaster result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + result = ((lldb::SBEvent const *)arg1)->GetBroadcaster(); + *(lldb::SBBroadcaster **)&jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBEvent_1GetBroadcasterClass(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + result = (char *)((lldb::SBEvent const *)arg1)->GetBroadcasterClass(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBEvent_1BroadcasterMatchesRef(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBEvent **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + result = (bool)(arg1)->BroadcasterMatchesRef((lldb::SBBroadcaster const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBEvent_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBEvent_1GetCStringFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (char *)lldb::SBEvent::GetCStringFromEvent((lldb::SBEvent const &)*arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBEvent_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = (lldb::SBEvent *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBEvent **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)((lldb::SBEvent const *)arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExecutionContext_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBExecutionContext *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBExecutionContext *)new lldb::SBExecutionContext(); + *(lldb::SBExecutionContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExecutionContext_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExecutionContext *arg1 = 0 ; + lldb::SBExecutionContext *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExecutionContext **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExecutionContext const & reference is null"); + return 0; + } + result = (lldb::SBExecutionContext *)new lldb::SBExecutionContext((lldb::SBExecutionContext const &)*arg1); + *(lldb::SBExecutionContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExecutionContext_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = 0 ; + lldb::SBExecutionContext *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget const & reference is null"); + return 0; + } + result = (lldb::SBExecutionContext *)new lldb::SBExecutionContext((lldb::SBTarget const &)*arg1); + *(lldb::SBExecutionContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExecutionContext_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = 0 ; + lldb::SBExecutionContext *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBProcess const & reference is null"); + return 0; + } + result = (lldb::SBExecutionContext *)new lldb::SBExecutionContext((lldb::SBProcess const &)*arg1); + *(lldb::SBExecutionContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExecutionContext_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread arg1 ; + lldb::SBThread *argp1 ; + lldb::SBExecutionContext *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + argp1 = *(lldb::SBThread **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBThread"); + return 0; + } + arg1 = *argp1; + result = (lldb::SBExecutionContext *)new lldb::SBExecutionContext(arg1); + *(lldb::SBExecutionContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExecutionContext_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = 0 ; + lldb::SBExecutionContext *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame const & reference is null"); + return 0; + } + result = (lldb::SBExecutionContext *)new lldb::SBExecutionContext((lldb::SBFrame const &)*arg1); + *(lldb::SBExecutionContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBExecutionContext(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBExecutionContext *arg1 = (lldb::SBExecutionContext *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBExecutionContext **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBExecutionContext_1GetTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExecutionContext *arg1 = (lldb::SBExecutionContext *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExecutionContext **)&jarg1; + result = ((lldb::SBExecutionContext const *)arg1)->GetTarget(); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBExecutionContext_1GetProcess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExecutionContext *arg1 = (lldb::SBExecutionContext *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExecutionContext **)&jarg1; + result = ((lldb::SBExecutionContext const *)arg1)->GetProcess(); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBExecutionContext_1GetThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExecutionContext *arg1 = (lldb::SBExecutionContext *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExecutionContext **)&jarg1; + result = ((lldb::SBExecutionContext const *)arg1)->GetThread(); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBExecutionContext_1GetFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExecutionContext *arg1 = (lldb::SBExecutionContext *) 0 ; + lldb::SBFrame result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExecutionContext **)&jarg1; + result = ((lldb::SBExecutionContext const *)arg1)->GetFrame(); + *(lldb::SBFrame **)&jresult = new lldb::SBFrame((const lldb::SBFrame &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExpressionOptions_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBExpressionOptions *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBExpressionOptions *)new lldb::SBExpressionOptions(); + *(lldb::SBExpressionOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBExpressionOptions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExpressionOptions *arg1 = 0 ; + lldb::SBExpressionOptions *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExpressionOptions const & reference is null"); + return 0; + } + result = (lldb::SBExpressionOptions *)new lldb::SBExpressionOptions((lldb::SBExpressionOptions const &)*arg1); + *(lldb::SBExpressionOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBExpressionOptions(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetCoerceResultToId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)((lldb::SBExpressionOptions const *)arg1)->GetCoerceResultToId(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetCoerceResultToId_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetCoerceResultToId(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetCoerceResultToId_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetCoerceResultToId(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetUnwindOnError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)((lldb::SBExpressionOptions const *)arg1)->GetUnwindOnError(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetUnwindOnError_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetUnwindOnError(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetUnwindOnError_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetUnwindOnError(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetIgnoreBreakpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)((lldb::SBExpressionOptions const *)arg1)->GetIgnoreBreakpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetIgnoreBreakpoints_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIgnoreBreakpoints(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetIgnoreBreakpoints_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetIgnoreBreakpoints(); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetFetchDynamicValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + lldb::DynamicValueType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (lldb::DynamicValueType)((lldb::SBExpressionOptions const *)arg1)->GetFetchDynamicValue(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetFetchDynamicValue_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + lldb::DynamicValueType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = (lldb::DynamicValueType)jarg2; + (arg1)->SetFetchDynamicValue(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetFetchDynamicValue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetFetchDynamicValue(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetTimeoutInMicroSeconds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (uint32_t)((lldb::SBExpressionOptions const *)arg1)->GetTimeoutInMicroSeconds(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTimeoutInMicroSeconds_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetTimeoutInMicroSeconds(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTimeoutInMicroSeconds_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetTimeoutInMicroSeconds(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetOneThreadTimeoutInMicroSeconds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (uint32_t)((lldb::SBExpressionOptions const *)arg1)->GetOneThreadTimeoutInMicroSeconds(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetOneThreadTimeoutInMicroSeconds_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetOneThreadTimeoutInMicroSeconds(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetOneThreadTimeoutInMicroSeconds_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetOneThreadTimeoutInMicroSeconds(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetTryAllThreads(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)((lldb::SBExpressionOptions const *)arg1)->GetTryAllThreads(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTryAllThreads_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetTryAllThreads(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTryAllThreads_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetTryAllThreads(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetStopOthers(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)((lldb::SBExpressionOptions const *)arg1)->GetStopOthers(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetStopOthers_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetStopOthers(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetStopOthers_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetStopOthers(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetTrapExceptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)((lldb::SBExpressionOptions const *)arg1)->GetTrapExceptions(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTrapExceptions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetTrapExceptions(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTrapExceptions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetTrapExceptions(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + lldb::LanguageType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = (lldb::LanguageType)jarg2; + (arg1)->SetLanguage(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetGenerateDebugInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)(arg1)->GetGenerateDebugInfo(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetGenerateDebugInfo_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetGenerateDebugInfo(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetGenerateDebugInfo_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetGenerateDebugInfo(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetSuppressPersistentResult(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)(arg1)->GetSuppressPersistentResult(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetSuppressPersistentResult_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetSuppressPersistentResult(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetSuppressPersistentResult_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetSuppressPersistentResult(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetPrefix(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (char *)((lldb::SBExpressionOptions const *)arg1)->GetPrefix(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetPrefix(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetPrefix((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetAutoApplyFixIts_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAutoApplyFixIts(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetAutoApplyFixIts_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetAutoApplyFixIts(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetAutoApplyFixIts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)(arg1)->GetAutoApplyFixIts(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetRetriesWithFixIts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + uint64_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->SetRetriesWithFixIts(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetRetriesWithFixIts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (uint64_t)(arg1)->GetRetriesWithFixIts(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetTopLevel(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)(arg1)->GetTopLevel(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTopLevel_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetTopLevel(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetTopLevel_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + (arg1)->SetTopLevel(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1GetAllowJIT(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + result = (bool)(arg1)->GetAllowJIT(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBExpressionOptions_1SetAllowJIT(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBExpressionOptions *arg1 = (lldb::SBExpressionOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBExpressionOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetAllowJIT(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFile *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBFile *)new lldb::SBFile(); + *(lldb::SBFile **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jint jarg1, jstring jarg2, jboolean jarg3) { + jlong jresult = 0 ; + int arg1 ; + char *arg2 = (char *) 0 ; + bool arg3 ; + lldb::SBFile *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (int)jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = jarg3 ? true : false; + result = (lldb::SBFile *)new lldb::SBFile(arg1,(char const *)arg2,arg3); + *(lldb::SBFile **)&jresult = result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFile_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg1 ; + lldb::FileSP *argp1 ; + lldb::SBFile *result = 0 ; + + (void)jenv; + (void)jcls; + argp1 = *(lldb::FileSP **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg1 = *argp1; + result = (lldb::SBFile *)new lldb::SBFile(arg1); + *(lldb::SBFile **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1MakeBorrowed(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg1 ; + lldb::FileSP *argp1 ; + lldb::SBFile result; + + (void)jenv; + (void)jcls; + argp1 = *(lldb::FileSP **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg1 = *argp1; + result = lldb_SBFile_MakeBorrowed(arg1); + *(lldb::SBFile **)&jresult = new lldb::SBFile((const lldb::SBFile &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1MakeForcingIOMethods(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg1 ; + lldb::FileSP *argp1 ; + lldb::SBFile result; + + (void)jenv; + (void)jcls; + argp1 = *(lldb::FileSP **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg1 = *argp1; + result = lldb_SBFile_MakeForcingIOMethods(arg1); + *(lldb::SBFile **)&jresult = new lldb::SBFile((const lldb::SBFile &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1MakeBorrowedForcingIOMethods(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg1 ; + lldb::FileSP *argp1 ; + lldb::SBFile result; + + (void)jenv; + (void)jcls; + argp1 = *(lldb::FileSP **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return 0; + } + arg1 = *argp1; + result = lldb_SBFile_MakeBorrowedForcingIOMethods(arg1); + *(lldb::SBFile **)&jresult = new lldb::SBFile((const lldb::SBFile &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBFile(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBFile **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1Read(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + uint8_t *arg2 = (uint8_t *) 0 ; + size_t arg3 ; + size_t *arg4 = (size_t *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFile **)&jarg1; + arg2 = *(uint8_t **)&jarg2; + arg3 = (size_t)jarg3; + arg4 = *(size_t **)&jarg4; + result = (arg1)->Read(arg2,arg3,arg4); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1Write(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + uint8_t *arg2 = (uint8_t *) 0 ; + size_t arg3 ; + size_t *arg4 = (size_t *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFile **)&jarg1; + arg2 = *(uint8_t **)&jarg2; + arg3 = (size_t)jarg3; + arg4 = *(size_t **)&jarg4; + result = (arg1)->Write((uint8_t const *)arg2,arg3,arg4); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFile_1Flush(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFile **)&jarg1; + (arg1)->Flush(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFile_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFile **)&jarg1; + result = (bool)((lldb::SBFile const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1Close(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFile **)&jarg1; + result = (arg1)->Close(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFile_1GetFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFile *arg1 = (lldb::SBFile *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFile **)&jarg1; + result = (arg1)->GetFile(); + *(lldb::FileSP **)&jresult = new lldb::FileSP((const lldb::FileSP &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFileSpec_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFileSpec *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBFileSpec *)new lldb::SBFileSpec(); + *(lldb::SBFileSpec **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFileSpec_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFileSpec *arg1 = 0 ; + lldb::SBFileSpec *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (lldb::SBFileSpec *)new lldb::SBFileSpec((lldb::SBFileSpec const &)*arg1); + *(lldb::SBFileSpec **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFileSpec_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBFileSpec *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBFileSpec *)new lldb::SBFileSpec((char const *)arg1); + *(lldb::SBFileSpec **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFileSpec_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + bool arg2 ; + lldb::SBFileSpec *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = jarg2 ? true : false; + result = (lldb::SBFileSpec *)new lldb::SBFileSpec((char const *)arg1,arg2); + *(lldb::SBFileSpec **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBFileSpec **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFileSpec_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + result = (bool)((lldb::SBFileSpec const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFileSpec_1Exists(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + result = (bool)((lldb::SBFileSpec const *)arg1)->Exists(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFileSpec_1ResolveExecutableLocation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + result = (bool)(arg1)->ResolveExecutableLocation(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFileSpec_1GetFilename(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + result = (char *)((lldb::SBFileSpec const *)arg1)->GetFilename(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFileSpec_1GetDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + result = (char *)((lldb::SBFileSpec const *)arg1)->GetDirectory(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFileSpec_1SetFilename(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetFilename((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFileSpec_1SetDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetDirectory((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFileSpec_1GetPath(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = (uint32_t)((lldb::SBFileSpec const *)arg1)->GetPath(arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBFileSpec_1ResolvePath(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jlong jarg3) { + jint jresult = 0 ; + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + int result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = (int)lldb::SBFileSpec::ResolvePath((char const *)arg1,arg2,arg3); + jresult = (jint)result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFileSpec_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)((lldb::SBFileSpec const *)arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFileSpec_1AppendPathComponent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->AppendPathComponent((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFileSpec_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFileSpec *arg1 = (lldb::SBFileSpec *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpec **)&jarg1; + result = lldb_SBFileSpec___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFileSpecList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFileSpecList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBFileSpecList *)new lldb::SBFileSpecList(); + *(lldb::SBFileSpecList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFileSpecList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFileSpecList *arg1 = 0 ; + lldb::SBFileSpecList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (lldb::SBFileSpecList *)new lldb::SBFileSpecList((lldb::SBFileSpecList const &)*arg1); + *(lldb::SBFileSpecList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBFileSpecList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + result = (uint32_t)((lldb::SBFileSpecList const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)((lldb::SBFileSpecList const *)arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1Append(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return ; + } + (arg1)->Append((lldb::SBFileSpec const &)*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1AppendIfUnique(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (bool)(arg1)->AppendIfUnique((lldb::SBFileSpec const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1FindFileIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jobject jarg3_, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + uint32_t arg2 ; + lldb::SBFileSpec *arg3 = 0 ; + bool arg4 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg4 = jarg4 ? true : false; + result = (uint32_t)(arg1)->FindFileIndex(arg2,(lldb::SBFileSpec const &)*arg3,arg4); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFileSpecList_1GetFileSpecAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBFileSpecList *arg1 = (lldb::SBFileSpecList *) 0 ; + uint32_t arg2 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFileSpecList **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBFileSpecList const *)arg1)->GetFileSpecAtIndex(arg2); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFrame_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFrame *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBFrame *)new lldb::SBFrame(); + *(lldb::SBFrame **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFrame_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = 0 ; + lldb::SBFrame *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame const & reference is null"); + return 0; + } + result = (lldb::SBFrame *)new lldb::SBFrame((lldb::SBFrame const &)*arg1); + *(lldb::SBFrame **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBFrame(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBFrame **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFrame_1IsEqual(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBFrame *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame const & reference is null"); + return 0; + } + result = (bool)((lldb::SBFrame const *)arg1)->IsEqual((lldb::SBFrame const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFrame_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (bool)((lldb::SBFrame const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetFrameID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (uint32_t)((lldb::SBFrame const *)arg1)->GetFrameID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBFrame_1GetCFA(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (lldb::addr_t)((lldb::SBFrame const *)arg1)->GetCFA(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBFrame_1GetPC(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (lldb::addr_t)((lldb::SBFrame const *)arg1)->GetPC(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFrame_1SetPC(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jboolean jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::addr_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (bool)(arg1)->SetPC(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBFrame_1GetSP(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (lldb::addr_t)((lldb::SBFrame const *)arg1)->GetSP(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBFrame_1GetFP(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (lldb::addr_t)((lldb::SBFrame const *)arg1)->GetFP(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetPCAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetPCAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetSymbolContext(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + uint32_t arg2 ; + lldb::SBSymbolContext result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBFrame const *)arg1)->GetSymbolContext(arg2); + *(lldb::SBSymbolContext **)&jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetModule(); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetCompileUnit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBCompileUnit result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetCompileUnit(); + *(lldb::SBCompileUnit **)&jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetFunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBFunction result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetFunction(); + *(lldb::SBFunction **)&jresult = new lldb::SBFunction((const lldb::SBFunction &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetSymbol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBSymbol result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetSymbol(); + *(lldb::SBSymbol **)&jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetBlock(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFrame_1GetFunctionName_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (char *)(arg1)->GetFunctionName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFrame_1GetDisplayFunctionName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (char *)(arg1)->GetDisplayFunctionName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBFrame_1GuessLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (lldb::LanguageType)((lldb::SBFrame const *)arg1)->GuessLanguage(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFrame_1IsInlined_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (bool)(arg1)->IsInlined(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFrame_1IsArtificial_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (bool)(arg1)->IsArtificial(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1EvaluateExpression_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->EvaluateExpression((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1EvaluateExpression_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::DynamicValueType arg3 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::DynamicValueType)jarg3; + result = (arg1)->EvaluateExpression((char const *)arg2,arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1EvaluateExpression_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::DynamicValueType arg3 ; + bool arg4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::DynamicValueType)jarg3; + arg4 = jarg4 ? true : false; + result = (arg1)->EvaluateExpression((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1EvaluateExpression_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBExpressionOptions *arg3 = 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBExpressionOptions **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExpressionOptions & reference is null"); + return 0; + } + result = (arg1)->EvaluateExpression((char const *)arg2,*arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetFrameBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetFrameBlock(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetLineEntry(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBLineEntry result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetLineEntry(); + *(lldb::SBLineEntry **)&jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = ((lldb::SBFrame const *)arg1)->GetThread(); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFrame_1Disassemble(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (char *)((lldb::SBFrame const *)arg1)->Disassemble(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBFrame_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetVariables_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jboolean jarg3, jboolean jarg4, jboolean jarg5) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + bool arg2 ; + bool arg3 ; + bool arg4 ; + bool arg5 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + 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); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetVariables_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jboolean jarg3, jboolean jarg4, jboolean jarg5, jint jarg6) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + bool arg2 ; + bool arg3 ; + bool arg4 ; + bool arg5 ; + lldb::DynamicValueType arg6 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + 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); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetVariables_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBVariablesOptions *arg2 = 0 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = *(lldb::SBVariablesOptions **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBVariablesOptions const & reference is null"); + return 0; + } + result = (arg1)->GetVariables((lldb::SBVariablesOptions const &)*arg2); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetRegisters(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = (arg1)->GetRegisters(); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1FindVariable_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindVariable((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1FindVariable_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::DynamicValueType arg3 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::DynamicValueType)jarg3; + result = (arg1)->FindVariable((char const *)arg2,arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1FindRegister(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindRegister((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetValueForVariablePath_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->GetValueForVariablePath((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1GetValueForVariablePath_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::DynamicValueType arg3 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::DynamicValueType)jarg3; + result = (arg1)->GetValueForVariablePath((char const *)arg2,arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1FindValue_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::ValueType arg3 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::ValueType)jarg3; + result = (arg1)->FindValue((char const *)arg2,arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFrame_1FindValue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jint jarg4) { + jlong jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + char *arg2 = (char *) 0 ; + lldb::ValueType arg3 ; + lldb::DynamicValueType arg4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::ValueType)jarg3; + arg4 = (lldb::DynamicValueType)jarg4; + result = (arg1)->FindValue((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFrame_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFrame **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFrame_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFrame *arg1 = (lldb::SBFrame *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFrame **)&jarg1; + result = lldb_SBFrame___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFunction_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFunction *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBFunction *)new lldb::SBFunction(); + *(lldb::SBFunction **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBFunction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = 0 ; + lldb::SBFunction *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFunction const & reference is null"); + return 0; + } + result = (lldb::SBFunction *)new lldb::SBFunction((lldb::SBFunction const &)*arg1); + *(lldb::SBFunction **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBFunction(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBFunction **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFunction_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (bool)((lldb::SBFunction const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFunction_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (char *)((lldb::SBFunction const *)arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFunction_1GetDisplayName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (char *)((lldb::SBFunction const *)arg1)->GetDisplayName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFunction_1GetMangledName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (char *)((lldb::SBFunction const *)arg1)->GetMangledName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetInstructions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFunction **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetInstructions(arg2); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetInstructions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBTarget arg2 ; + char *arg3 = (char *) 0 ; + lldb::SBTarget *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFunction **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->GetInstructions(arg2,(char const *)arg3); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetStartAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (arg1)->GetStartAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetEndAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (arg1)->GetEndAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFunction_1GetArgumentName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + uint32_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (char *)(arg1)->GetArgumentName(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetPrologueByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (uint32_t)(arg1)->GetPrologueByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (arg1)->GetType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBFunction_1GetBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (arg1)->GetBlock(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBFunction_1GetLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (lldb::LanguageType)(arg1)->GetLanguage(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFunction_1GetIsOptimized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = (bool)(arg1)->GetIsOptimized(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBFunction_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBFunction **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBFunction_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBFunction *arg1 = (lldb::SBFunction *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBFunction **)&jarg1; + result = lldb_SBFunction___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBHostOS_1GetProgramFileSpec(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + result = lldb::SBHostOS::GetProgramFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBHostOS_1GetLLDBPythonPath(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + result = lldb::SBHostOS::GetLLDBPythonPath(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBHostOS_1GetLLDBPath(JNIEnv *jenv, jclass jcls, jint jarg1) { + jlong jresult = 0 ; + lldb::PathType arg1 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + arg1 = (lldb::PathType)jarg1; + result = lldb::SBHostOS::GetLLDBPath(arg1); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBHostOS_1GetUserHomeDirectory(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + result = lldb::SBHostOS::GetUserHomeDirectory(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBHostOS_1ThreadCreated(JNIEnv *jenv, jclass jcls, jstring jarg1) { + char *arg1 = (char *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return ; + } + lldb::SBHostOS::ThreadCreated((char const *)arg1); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBHostOS_1ThreadCreate(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::thread_func_t arg2 = (lldb::thread_func_t) 0 ; + void *arg3 = (void *) 0 ; + lldb::SBError *arg4 = (lldb::SBError *) 0 ; + lldb::thread_t result; + + (void)jenv; + (void)jcls; + (void)jarg4_; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = *(lldb::thread_func_t *)&jarg2; + arg3 = *(void **)&jarg3; + arg4 = *(lldb::SBError **)&jarg4; + result = lldb::SBHostOS::ThreadCreate((char const *)arg1,arg2,arg3,arg4); + *(lldb::thread_t **)&jresult = new lldb::thread_t((const lldb::thread_t &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBHostOS_1ThreadCancel(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::thread_t arg1 ; + lldb::SBError *arg2 = (lldb::SBError *) 0 ; + lldb::thread_t *argp1 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg2_; + argp1 = *(lldb::thread_t **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::thread_t"); + return 0; + } + arg1 = *argp1; + arg2 = *(lldb::SBError **)&jarg2; + result = (bool)lldb::SBHostOS::ThreadCancel(arg1,arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBHostOS_1ThreadDetach(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::thread_t arg1 ; + lldb::SBError *arg2 = (lldb::SBError *) 0 ; + lldb::thread_t *argp1 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg2_; + argp1 = *(lldb::thread_t **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::thread_t"); + return 0; + } + arg1 = *argp1; + arg2 = *(lldb::SBError **)&jarg2; + result = (bool)lldb::SBHostOS::ThreadDetach(arg1,arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBHostOS_1ThreadJoin(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::thread_t arg1 ; + lldb::thread_result_t *arg2 = (lldb::thread_result_t *) 0 ; + lldb::SBError *arg3 = (lldb::SBError *) 0 ; + lldb::thread_t *argp1 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg3_; + argp1 = *(lldb::thread_t **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::thread_t"); + return 0; + } + arg1 = *argp1; + arg2 = *(lldb::thread_result_t **)&jarg2; + arg3 = *(lldb::SBError **)&jarg3; + result = (bool)lldb::SBHostOS::ThreadJoin(arg1,arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBHostOS(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBHostOS *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBHostOS *)new lldb::SBHostOS(); + *(lldb::SBHostOS **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBHostOS(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBHostOS *arg1 = (lldb::SBHostOS *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBHostOS **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBInstruction_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBInstruction *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBInstruction *)new lldb::SBInstruction(); + *(lldb::SBInstruction **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBInstruction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBInstruction *arg1 = 0 ; + lldb::SBInstruction *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBInstruction const & reference is null"); + return 0; + } + result = (lldb::SBInstruction *)new lldb::SBInstruction((lldb::SBInstruction const &)*arg1); + *(lldb::SBInstruction **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBInstruction(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBInstruction **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = (arg1)->GetAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetMnemonic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jstring jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (char *)(arg1)->GetMnemonic(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetOperands(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jstring jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (char *)(arg1)->GetOperands(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetComment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jstring jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (char *)(arg1)->GetComment(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetData(arg2); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = (arg1)->GetByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1DoesBranch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = (bool)(arg1)->DoesBranch(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1HasDelaySlot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = (bool)(arg1)->HasDelaySlot(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1CanSetBreakpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = (bool)(arg1)->CanSetBreakpoint(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBInstruction_1Print_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg2 = *argp2; + (arg1)->Print(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBInstruction_1Print_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + (arg1)->Print(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1EmulateWithFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBFrame *arg2 = 0 ; + uint32_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (bool)(arg1)->EmulateWithFrame(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1DumpEmulation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->DumpEmulation((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstruction_1TestEmulation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { + jboolean jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + lldb::SBStream *arg2 = 0 ; + char *arg3 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstruction **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (bool)(arg1)->TestEmulation(*arg2,(char const *)arg3); + jresult = (jboolean)result; + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBInstruction_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBInstruction *arg1 = (lldb::SBInstruction *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstruction **)&jarg1; + result = lldb_SBInstruction___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBInstructionList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBInstructionList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBInstructionList *)new lldb::SBInstructionList(); + *(lldb::SBInstructionList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBInstructionList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBInstructionList *arg1 = 0 ; + lldb::SBInstructionList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBInstructionList const & reference is null"); + return 0; + } + result = (lldb::SBInstructionList *)new lldb::SBInstructionList((lldb::SBInstructionList const &)*arg1); + *(lldb::SBInstructionList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBInstructionList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBInstructionList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstructionList_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + result = (bool)((lldb::SBInstructionList const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBInstructionList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + result = (arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBInstructionList_1GetInstructionAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + uint32_t arg2 ; + lldb::SBInstruction result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetInstructionAtIndex(arg2); + *(lldb::SBInstruction **)&jresult = new lldb::SBInstruction((const lldb::SBInstruction &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBInstructionList_1GetInstructionsCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + lldb::SBAddress *arg2 = 0 ; + lldb::SBAddress *arg3 = 0 ; + bool arg4 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress const & reference is null"); + return 0; + } + arg3 = *(lldb::SBAddress **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress const & reference is null"); + return 0; + } + arg4 = jarg4 ? true : false; + result = (arg1)->GetInstructionsCount((lldb::SBAddress const &)*arg2,(lldb::SBAddress const &)*arg3,arg4); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBInstructionList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBInstructionList_1AppendInstruction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + lldb::SBInstruction arg2 ; + lldb::SBInstruction *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + argp2 = *(lldb::SBInstruction **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBInstruction"); + return ; + } + arg2 = *argp2; + (arg1)->AppendInstruction(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBInstructionList_1Print_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg2 = *argp2; + (arg1)->Print(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBInstructionList_1Print_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + (arg1)->Print(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstructionList_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBInstructionList_1DumpEmulationForAllInstructions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->DumpEmulationForAllInstructions((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBInstructionList_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBInstructionList *arg1 = (lldb::SBInstructionList *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBInstructionList **)&jarg1; + result = lldb_SBInstructionList___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBLanguageRuntime_1GetLanguageTypeFromString(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jint jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::LanguageType)lldb::SBLanguageRuntime::GetLanguageTypeFromString((char const *)arg1); + jresult = (jint)result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLanguageRuntime_1GetNameForLanguageType(JNIEnv *jenv, jclass jcls, jint jarg1) { + jstring jresult = 0 ; + lldb::LanguageType arg1 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (lldb::LanguageType)jarg1; + result = (char *)lldb::SBLanguageRuntime::GetNameForLanguageType(arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBLanguageRuntime(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBLanguageRuntime *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBLanguageRuntime *)new lldb::SBLanguageRuntime(); + *(lldb::SBLanguageRuntime **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBLanguageRuntime(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBLanguageRuntime *arg1 = (lldb::SBLanguageRuntime *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBLanguageRuntime **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBLaunchInfo(JNIEnv *jenv, jclass jcls, jobjectArray jarg1) { + jlong jresult = 0 ; + char **arg1 = (char **) 0 ; + jint size1 ; + lldb::SBLaunchInfo *result = 0 ; + + (void)jenv; + (void)jcls; + { + int i = 0; + if (jarg1) { + size1 = jenv->GetArrayLength(jarg1); + + arg1 = new char*[size1+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg1, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg1[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg1[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg1[i] = 0; + } else { + arg1 = 0; + size1 = 0; + } + } + result = (lldb::SBLaunchInfo *)new lldb::SBLaunchInfo((char const **)arg1); + *(lldb::SBLaunchInfo **)&jresult = result; + { + int i; + for (i=0; iGetProcessID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (uint32_t)(arg1)->GetUserID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (uint32_t)(arg1)->GetGroupID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1UserIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (bool)(arg1)->UserIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GroupIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (bool)(arg1)->GroupIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetUserID(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetGroupID(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetExecutableFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (arg1)->GetExecutableFile(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetExecutableFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBFileSpec arg2 ; + bool arg3 ; + lldb::SBFileSpec *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + argp2 = *(lldb::SBFileSpec **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFileSpec"); + return ; + } + arg2 = *argp2; + arg3 = jarg3 ? true : false; + (arg1)->SetExecutableFile(arg2,arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBListener result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (arg1)->GetListener(); + *(lldb::SBListener **)&jresult = new lldb::SBListener((const lldb::SBListener &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetListener(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBListener *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener & reference is null"); + return ; + } + (arg1)->SetListener(*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetNumArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (uint32_t)(arg1)->GetNumArguments(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetArgumentAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (char *)(arg1)->GetArgumentAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2, jboolean jarg3) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char **arg2 = (char **) 0 ; + bool arg3 ; + jint size2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + { + int i = 0; + if (jarg2) { + size2 = jenv->GetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + arg3 = jarg3 ? true : false; + (arg1)->SetArguments((char const **)arg2,arg3); + { + int i; + for (i=0; iGetNumEnvironmentEntries(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetEnvironmentEntryAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (char *)(arg1)->GetEnvironmentEntryAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetEnvironmentEntries(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2, jboolean jarg3) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char **arg2 = (char **) 0 ; + bool arg3 ; + jint size2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + { + int i = 0; + if (jarg2) { + size2 = jenv->GetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + arg3 = jarg3 ? true : false; + (arg1)->SetEnvironmentEntries((char const **)arg2,arg3); + { + int i; + for (i=0; iSetEnvironment((lldb::SBEnvironment const &)*arg2,arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetEnvironment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBEnvironment result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (arg1)->GetEnvironment(); + *(lldb::SBEnvironment **)&jresult = new lldb::SBEnvironment((const lldb::SBEnvironment &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (char *)((lldb::SBLaunchInfo const *)arg1)->GetWorkingDirectory(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetWorkingDirectory((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetLaunchFlags(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (uint32_t)(arg1)->GetLaunchFlags(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetLaunchFlags(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetLaunchFlags(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetProcessPluginName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (char *)(arg1)->GetProcessPluginName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetProcessPluginName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetProcessPluginName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetShell(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (char *)(arg1)->GetShell(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetShell(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetShell((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetShellExpandArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (bool)(arg1)->GetShellExpandArguments(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetShellExpandArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetShellExpandArguments(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetResumeCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (uint32_t)(arg1)->GetResumeCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetResumeCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetResumeCount(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1AddCloseFileAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + int arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (int)jarg2; + result = (bool)(arg1)->AddCloseFileAction(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1AddDuplicateFileAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + int arg2 ; + int arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (int)jarg2; + arg3 = (int)jarg3; + result = (bool)(arg1)->AddDuplicateFileAction(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1AddOpenFileAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jstring jarg3, jboolean jarg4, jboolean jarg5) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + bool arg4 ; + bool arg5 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (int)jarg2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = jarg4 ? true : false; + arg5 = jarg5 ? true : false; + result = (bool)(arg1)->AddOpenFileAction(arg2,(char const *)arg3,arg4,arg5); + jresult = (jboolean)result; + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1AddSuppressFileAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3, jboolean jarg4) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + int arg2 ; + bool arg3 ; + bool arg4 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = (int)jarg2; + arg3 = jarg3 ? true : false; + arg4 = jarg4 ? true : false; + result = (bool)(arg1)->AddSuppressFileAction(arg2,arg3,arg4); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetLaunchEventData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetLaunchEventData((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetLaunchEventData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (char *)((lldb::SBLaunchInfo const *)arg1)->GetLaunchEventData(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetDetachOnError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (bool)((lldb::SBLaunchInfo const *)arg1)->GetDetachOnError(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetDetachOnError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetDetachOnError(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetScriptedProcessClassName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = (char *)((lldb::SBLaunchInfo const *)arg1)->GetScriptedProcessClassName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetScriptedProcessClassName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetScriptedProcessClassName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1GetScriptedProcessDictionary(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + result = ((lldb::SBLaunchInfo const *)arg1)->GetScriptedProcessDictionary(); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLaunchInfo_1SetScriptedProcessDictionary(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + lldb::SBStructuredData arg2 ; + lldb::SBStructuredData *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + argp2 = *(lldb::SBStructuredData **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBStructuredData"); + return ; + } + arg2 = *argp2; + (arg1)->SetScriptedProcessDictionary(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBLaunchInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBLaunchInfo *arg1 = (lldb::SBLaunchInfo *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBLaunchInfo **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBLineEntry_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBLineEntry *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBLineEntry *)new lldb::SBLineEntry(); + *(lldb::SBLineEntry **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBLineEntry_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLineEntry *arg1 = 0 ; + lldb::SBLineEntry *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBLineEntry const & reference is null"); + return 0; + } + result = (lldb::SBLineEntry *)new lldb::SBLineEntry((lldb::SBLineEntry const &)*arg1); + *(lldb::SBLineEntry **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBLineEntry(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBLineEntry **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLineEntry_1GetStartAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = ((lldb::SBLineEntry const *)arg1)->GetStartAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLineEntry_1GetEndAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = ((lldb::SBLineEntry const *)arg1)->GetEndAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLineEntry_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = (bool)((lldb::SBLineEntry const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLineEntry_1GetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = ((lldb::SBLineEntry const *)arg1)->GetFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLineEntry_1GetLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = (uint32_t)((lldb::SBLineEntry const *)arg1)->GetLine(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBLineEntry_1GetColumn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = (uint32_t)((lldb::SBLineEntry const *)arg1)->GetColumn(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBLineEntry_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLineEntry_1SetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + lldb::SBFileSpec arg2 ; + lldb::SBFileSpec *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + argp2 = *(lldb::SBFileSpec **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFileSpec"); + return ; + } + arg2 = *argp2; + (arg1)->SetFileSpec(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLineEntry_1SetLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetLine(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBLineEntry_1SetColumn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetColumn(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBLineEntry_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBLineEntry *arg1 = (lldb::SBLineEntry *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBLineEntry **)&jarg1; + result = lldb_SBLineEntry___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBListener_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBListener *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBListener *)new lldb::SBListener(); + *(lldb::SBListener **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBListener_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBListener *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBListener *)new lldb::SBListener((char const *)arg1); + *(lldb::SBListener **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBListener_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBListener *arg1 = 0 ; + lldb::SBListener *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBListener **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener const & reference is null"); + return 0; + } + result = (lldb::SBListener *)new lldb::SBListener((lldb::SBListener const &)*arg1); + *(lldb::SBListener **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBListener(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBListener **)&jarg1; + delete arg1; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBListener_1AddEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBEvent *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + (arg1)->AddEvent((lldb::SBEvent const &)*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBListener_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBListener **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBListener **)&jarg1; + result = (bool)((lldb::SBListener const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBListener_1StartListeningForEventClass(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBDebugger *arg2 = 0 ; + char *arg3 = (char *) 0 ; + uint32_t arg4 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBDebugger **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBDebugger & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = (uint32_t)jarg4; + result = (uint32_t)(arg1)->StartListeningForEventClass(*arg2,(char const *)arg3,arg4); + jresult = (jlong)result; + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBListener_1StopListeningForEventClass(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBDebugger *arg2 = 0 ; + char *arg3 = (char *) 0 ; + uint32_t arg4 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBDebugger **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBDebugger & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = (uint32_t)jarg4; + result = (uint32_t)(arg1)->StopListeningForEventClass(*arg2,(char const *)arg3,arg4); + jresult = (jlong)result; + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBListener_1StartListeningForEvents(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + uint32_t arg3 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (uint32_t)(arg1)->StartListeningForEvents((lldb::SBBroadcaster const &)*arg2,arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1StopListeningForEvents(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + uint32_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (bool)(arg1)->StopListeningForEvents((lldb::SBBroadcaster const &)*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1WaitForEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + uint32_t arg2 ; + lldb::SBEvent *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(lldb::SBEvent **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->WaitForEvent(arg2,*arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1WaitForEventForBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + uint32_t arg2 ; + lldb::SBBroadcaster *arg3 = 0 ; + lldb::SBEvent *arg4 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(lldb::SBBroadcaster **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg4 = *(lldb::SBEvent **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->WaitForEventForBroadcaster(arg2,(lldb::SBBroadcaster const &)*arg3,*arg4); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1WaitForEventForBroadcasterWithType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jlong jarg5, jobject jarg5_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + uint32_t arg2 ; + lldb::SBBroadcaster *arg3 = 0 ; + uint32_t arg4 ; + lldb::SBEvent *arg5 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg5_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(lldb::SBBroadcaster **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg4 = (uint32_t)jarg4; + arg5 = *(lldb::SBEvent **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->WaitForEventForBroadcasterWithType(arg2,(lldb::SBBroadcaster const &)*arg3,arg4,*arg5); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1PeekAtNextEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBEvent *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->PeekAtNextEvent(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1PeekAtNextEventForBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + lldb::SBEvent *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg3 = *(lldb::SBEvent **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->PeekAtNextEventForBroadcaster((lldb::SBBroadcaster const &)*arg2,*arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1PeekAtNextEventForBroadcasterWithType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jobject jarg4_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + uint32_t arg3 ; + lldb::SBEvent *arg4 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg4_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBEvent **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->PeekAtNextEventForBroadcasterWithType((lldb::SBBroadcaster const &)*arg2,arg3,*arg4); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1GetNextEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBEvent *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->GetNextEvent(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1GetNextEventForBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + lldb::SBEvent *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg3 = *(lldb::SBEvent **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->GetNextEventForBroadcaster((lldb::SBBroadcaster const &)*arg2,*arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1GetNextEventForBroadcasterWithType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jobject jarg4_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBBroadcaster *arg2 = 0 ; + uint32_t arg3 ; + lldb::SBEvent *arg4 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg4_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBBroadcaster **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBroadcaster const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBEvent **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent & reference is null"); + return 0; + } + result = (bool)(arg1)->GetNextEventForBroadcasterWithType((lldb::SBBroadcaster const &)*arg2,arg3,*arg4); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBListener_1HandleBroadcastEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBListener *arg1 = (lldb::SBListener *) 0 ; + lldb::SBEvent *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBListener **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)(arg1)->HandleBroadcastEvent((lldb::SBEvent const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBMemoryRegionInfo_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBMemoryRegionInfo *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBMemoryRegionInfo *)new lldb::SBMemoryRegionInfo(); + *(lldb::SBMemoryRegionInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBMemoryRegionInfo_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = 0 ; + lldb::SBMemoryRegionInfo *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBMemoryRegionInfo const & reference is null"); + return 0; + } + result = (lldb::SBMemoryRegionInfo *)new lldb::SBMemoryRegionInfo((lldb::SBMemoryRegionInfo const &)*arg1); + *(lldb::SBMemoryRegionInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBMemoryRegionInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + delete arg1; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1GetRegionBase(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (lldb::addr_t)(arg1)->GetRegionBase(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1GetRegionEnd(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (lldb::addr_t)(arg1)->GetRegionEnd(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1IsReadable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (bool)(arg1)->IsReadable(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1IsWritable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (bool)(arg1)->IsWritable(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1IsExecutable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (bool)(arg1)->IsExecutable(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1IsMapped(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (bool)(arg1)->IsMapped(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfo_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfo **)&jarg1; + result = lldb_SBMemoryRegionInfo___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBMemoryRegionInfoList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBMemoryRegionInfoList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBMemoryRegionInfoList *)new lldb::SBMemoryRegionInfoList(); + *(lldb::SBMemoryRegionInfoList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBMemoryRegionInfoList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBMemoryRegionInfoList *arg1 = 0 ; + lldb::SBMemoryRegionInfoList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBMemoryRegionInfoList const & reference is null"); + return 0; + } + result = (lldb::SBMemoryRegionInfoList *)new lldb::SBMemoryRegionInfoList((lldb::SBMemoryRegionInfoList const &)*arg1); + *(lldb::SBMemoryRegionInfoList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBMemoryRegionInfoList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + result = (uint32_t)((lldb::SBMemoryRegionInfoList const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1GetMemoryRegionAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + uint32_t arg2 ; + lldb::SBMemoryRegionInfo *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = *(lldb::SBMemoryRegionInfo **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBMemoryRegionInfo & reference is null"); + return 0; + } + result = (bool)(arg1)->GetMemoryRegionAtIndex(arg2,*arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1Append_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + lldb::SBMemoryRegionInfo *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + arg2 = *(lldb::SBMemoryRegionInfo **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBMemoryRegionInfo & reference is null"); + return ; + } + (arg1)->Append(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1Append_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + lldb::SBMemoryRegionInfoList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + arg2 = *(lldb::SBMemoryRegionInfoList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBMemoryRegionInfoList & reference is null"); + return ; + } + (arg1)->Append(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModule_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBModule *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBModule *)new lldb::SBModule(); + *(lldb::SBModule **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModule_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = 0 ; + lldb::SBModule *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModule const & reference is null"); + return 0; + } + result = (lldb::SBModule *)new lldb::SBModule((lldb::SBModule const &)*arg1); + *(lldb::SBModule **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModule_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = 0 ; + lldb::SBModule *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpec const & reference is null"); + return 0; + } + result = (lldb::SBModule *)new lldb::SBModule((lldb::SBModuleSpec const &)*arg1); + *(lldb::SBModule **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModule_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = 0 ; + lldb::addr_t arg2 ; + lldb::SBModule *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBProcess & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (lldb::SBModule *)new lldb::SBModule(*arg1,arg2); + *(lldb::SBModule **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBModule(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBModule **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModule_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (bool)((lldb::SBModule const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModule_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = ((lldb::SBModule const *)arg1)->GetFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetPlatformFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = ((lldb::SBModule const *)arg1)->GetPlatformFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModule_1SetPlatformFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (bool)(arg1)->SetPlatformFileSpec((lldb::SBFileSpec const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetRemoteInstallFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (arg1)->GetRemoteInstallFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModule_1SetRemoteInstallFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + result = (bool)(arg1)->SetRemoteInstallFileSpec(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModule_1GetUUIDString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (char *)((lldb::SBModule const *)arg1)->GetUUIDString(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindSection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindSection((char const *)arg2); + *(lldb::SBSection **)&jresult = new lldb::SBSection((const lldb::SBSection &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1ResolveFileAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::addr_t arg2 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->ResolveFileAddress(arg2); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1ResolveSymbolContextForAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBAddress *arg2 = 0 ; + uint32_t arg3 ; + lldb::SBSymbolContext result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->ResolveSymbolContextForAddress((lldb::SBAddress const &)*arg2,arg3); + *(lldb::SBSymbolContext **)&jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModule_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetNumCompileUnits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (uint32_t)(arg1)->GetNumCompileUnits(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetCompileUnitAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + uint32_t arg2 ; + lldb::SBCompileUnit result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetCompileUnitAtIndex(arg2); + *(lldb::SBCompileUnit **)&jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindCompileUnits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (arg1)->FindCompileUnits((lldb::SBFileSpec const &)*arg2); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetNumSymbols(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (arg1)->GetNumSymbols(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetSymbolAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + size_t arg2 ; + lldb::SBSymbol result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetSymbolAtIndex(arg2); + *(lldb::SBSymbol **)&jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindSymbol_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SymbolType arg3 ; + lldb::SBSymbol result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::SymbolType)jarg3; + result = (arg1)->FindSymbol((char const *)arg2,arg3); + *(lldb::SBSymbol **)&jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindSymbol_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSymbol result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindSymbol((char const *)arg2); + *(lldb::SBSymbol **)&jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindSymbols_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SymbolType arg3 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::SymbolType)jarg3; + result = (arg1)->FindSymbols((char const *)arg2,arg3); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindSymbols_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindSymbols((char const *)arg2); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetNumSections(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (arg1)->GetNumSections(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetSectionAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + size_t arg2 ; + lldb::SBSection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetSectionAtIndex(arg2); + *(lldb::SBSection **)&jresult = new lldb::SBSection((const lldb::SBSection &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindFunctions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->FindFunctions((char const *)arg2,arg3); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindFunctions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindFunctions((char const *)arg2); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindFirstType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindFirstType((char const *)arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindTypes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindTypes((char const *)arg2); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetTypeByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::user_id_t arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::user_id_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetTypeByID(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetBasicType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::BasicType arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = (lldb::BasicType)jarg2; + result = (arg1)->GetBasicType(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetTypes_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + uint32_t arg2 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypes(arg2); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetTypes_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (arg1)->GetTypes(); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindGlobalVariables(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBTarget *arg2 = 0 ; + char *arg3 = (char *) 0 ; + uint32_t arg4 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = (uint32_t)jarg4; + result = (arg1)->FindGlobalVariables(*arg2,(char const *)arg3,arg4); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1FindFirstGlobalVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBTarget *arg2 = 0 ; + char *arg3 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->FindFirstGlobalVariable(*arg2,(char const *)arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBModule_1GetByteOrder(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (lldb::ByteOrder)(arg1)->GetByteOrder(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetAddressByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (uint32_t)(arg1)->GetAddressByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModule_1GetTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = (char *)(arg1)->GetTriple(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetVersion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + uint32_t *arg2 = (uint32_t *) 0 ; + uint32_t arg3 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + arg2 = *(uint32_t **)&jarg2; + arg3 = (uint32_t)jarg3; + result = (uint32_t)(arg1)->GetVersion(arg2,arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetSymbolFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = ((lldb::SBModule const *)arg1)->GetSymbolFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetObjectFileHeaderAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = ((lldb::SBModule const *)arg1)->GetObjectFileHeaderAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetObjectFileEntryPointAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = ((lldb::SBModule const *)arg1)->GetObjectFileEntryPointAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModule_1GetNumberAllocatedModules(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + result = (uint32_t)lldb::SBModule::GetNumberAllocatedModules(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModule_1GarbageCollectAllocatedModules(JNIEnv *jenv, jclass jcls) { + (void)jenv; + (void)jcls; + lldb::SBModule::GarbageCollectAllocatedModules(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModule_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModule *arg1 = (lldb::SBModule *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModule **)&jarg1; + result = lldb_SBModule___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModuleSpec_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBModuleSpec *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBModuleSpec *)new lldb::SBModuleSpec(); + *(lldb::SBModuleSpec **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModuleSpec_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = 0 ; + lldb::SBModuleSpec *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpec const & reference is null"); + return 0; + } + result = (lldb::SBModuleSpec *)new lldb::SBModuleSpec((lldb::SBModuleSpec const &)*arg1); + *(lldb::SBModuleSpec **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBModuleSpec(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (bool)((lldb::SBModuleSpec const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (arg1)->GetFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1SetFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return ; + } + (arg1)->SetFileSpec((lldb::SBFileSpec const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetPlatformFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (arg1)->GetPlatformFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1SetPlatformFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return ; + } + (arg1)->SetPlatformFileSpec((lldb::SBFileSpec const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetSymbolFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (arg1)->GetSymbolFileSpec(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1SetSymbolFileSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return ; + } + (arg1)->SetSymbolFileSpec((lldb::SBFileSpec const &)*arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetObjectName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (char *)(arg1)->GetObjectName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1SetObjectName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetObjectName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (char *)(arg1)->GetTriple(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1SetTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetTriple((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetUUIDBytes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + uint8_t *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (uint8_t *)(arg1)->GetUUIDBytes(); + *(uint8_t **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetUUIDLength(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = (arg1)->GetUUIDLength(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1SetUUIDBytes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jboolean jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + uint8_t *arg2 = (uint8_t *) 0 ; + size_t arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = *(uint8_t **)&jarg2; + arg3 = (size_t)jarg3; + result = (bool)(arg1)->SetUUIDBytes((uint8_t const *)arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModuleSpec_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModuleSpec *arg1 = (lldb::SBModuleSpec *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpec **)&jarg1; + result = lldb_SBModuleSpec___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModuleSpecList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBModuleSpecList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBModuleSpecList *)new lldb::SBModuleSpecList(); + *(lldb::SBModuleSpecList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBModuleSpecList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpecList *arg1 = 0 ; + lldb::SBModuleSpecList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpecList const & reference is null"); + return 0; + } + result = (lldb::SBModuleSpecList *)new lldb::SBModuleSpecList((lldb::SBModuleSpecList const &)*arg1); + *(lldb::SBModuleSpecList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBModuleSpecList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1GetModuleSpecifications(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBModuleSpecList result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = lldb::SBModuleSpecList::GetModuleSpecifications((char const *)arg1); + *(lldb::SBModuleSpecList **)&jresult = new lldb::SBModuleSpecList((const lldb::SBModuleSpecList &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1Append_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + lldb::SBModuleSpec *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + arg2 = *(lldb::SBModuleSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpec const & reference is null"); + return ; + } + (arg1)->Append((lldb::SBModuleSpec const &)*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1Append_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + lldb::SBModuleSpecList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + arg2 = *(lldb::SBModuleSpecList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpecList const & reference is null"); + return ; + } + (arg1)->Append((lldb::SBModuleSpecList const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1FindFirstMatchingSpec(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + lldb::SBModuleSpec *arg2 = 0 ; + lldb::SBModuleSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + arg2 = *(lldb::SBModuleSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpec const & reference is null"); + return 0; + } + result = (arg1)->FindFirstMatchingSpec((lldb::SBModuleSpec const &)*arg2); + *(lldb::SBModuleSpec **)&jresult = new lldb::SBModuleSpec((const lldb::SBModuleSpec &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1FindMatchingSpecs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + lldb::SBModuleSpec *arg2 = 0 ; + lldb::SBModuleSpecList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + arg2 = *(lldb::SBModuleSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpec const & reference is null"); + return 0; + } + result = (arg1)->FindMatchingSpecs((lldb::SBModuleSpec const &)*arg2); + *(lldb::SBModuleSpecList **)&jresult = new lldb::SBModuleSpecList((const lldb::SBModuleSpecList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + result = (arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1GetSpecAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + size_t arg2 ; + lldb::SBModuleSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetSpecAtIndex(arg2); + *(lldb::SBModuleSpec **)&jresult = new lldb::SBModuleSpec((const lldb::SBModuleSpec &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBModuleSpecList_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBModuleSpecList *arg1 = (lldb::SBModuleSpecList *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBModuleSpecList **)&jarg1; + result = lldb_SBModuleSpecList___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatformConnectOptions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBPlatformConnectOptions *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBPlatformConnectOptions *)new lldb::SBPlatformConnectOptions((char const *)arg1); + *(lldb::SBPlatformConnectOptions **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatformConnectOptions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatformConnectOptions *arg1 = 0 ; + lldb::SBPlatformConnectOptions *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBPlatformConnectOptions const & reference is null"); + return 0; + } + result = (lldb::SBPlatformConnectOptions *)new lldb::SBPlatformConnectOptions((lldb::SBPlatformConnectOptions const &)*arg1); + *(lldb::SBPlatformConnectOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBPlatformConnectOptions(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1GetURL(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + result = (char *)(arg1)->GetURL(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1SetURL(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetURL((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1GetRsyncEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + result = (bool)(arg1)->GetRsyncEnabled(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1EnableRsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jboolean jarg4) { + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + bool arg4 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return ; + } + arg4 = jarg4 ? true : false; + (arg1)->EnableRsync((char const *)arg2,(char const *)arg3,arg4); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1DisableRsync(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + (arg1)->DisableRsync(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1GetLocalCacheDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + result = (char *)(arg1)->GetLocalCacheDirectory(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformConnectOptions_1SetLocalCacheDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBPlatformConnectOptions *arg1 = (lldb::SBPlatformConnectOptions *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformConnectOptions **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetLocalCacheDirectory((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatformShellCommand_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBPlatformShellCommand *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (lldb::SBPlatformShellCommand *)new lldb::SBPlatformShellCommand((char const *)arg1,(char const *)arg2); + *(lldb::SBPlatformShellCommand **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatformShellCommand_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBPlatformShellCommand *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBPlatformShellCommand *)new lldb::SBPlatformShellCommand((char const *)arg1); + *(lldb::SBPlatformShellCommand **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatformShellCommand_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = 0 ; + lldb::SBPlatformShellCommand *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBPlatformShellCommand const & reference is null"); + return 0; + } + result = (lldb::SBPlatformShellCommand *)new lldb::SBPlatformShellCommand((lldb::SBPlatformShellCommand const &)*arg1); + *(lldb::SBPlatformShellCommand **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBPlatformShellCommand(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + delete arg1; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetShell(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (char *)(arg1)->GetShell(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1SetShell(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetShell((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetCommand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (char *)(arg1)->GetCommand(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1SetCommand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetCommand((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (char *)(arg1)->GetWorkingDirectory(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1SetWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetWorkingDirectory((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetTimeoutSeconds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (uint32_t)(arg1)->GetTimeoutSeconds(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1SetTimeoutSeconds(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetTimeoutSeconds(arg2); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetSignal(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (int)(arg1)->GetSignal(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (int)(arg1)->GetStatus(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatformShellCommand_1GetOutput(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatformShellCommand *arg1 = (lldb::SBPlatformShellCommand *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatformShellCommand **)&jarg1; + result = (char *)(arg1)->GetOutput(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatform_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBPlatform *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBPlatform *)new lldb::SBPlatform(); + *(lldb::SBPlatform **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBPlatform_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBPlatform *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBPlatform *)new lldb::SBPlatform((char const *)arg1); + *(lldb::SBPlatform **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBPlatform(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBPlatform **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetHostPlatform(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBPlatform result; + + (void)jenv; + (void)jcls; + result = lldb::SBPlatform::GetHostPlatform(); + *(lldb::SBPlatform **)&jresult = new lldb::SBPlatform((const lldb::SBPlatform &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBPlatform_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (bool)((lldb::SBPlatform const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatform_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (char *)(arg1)->GetWorkingDirectory(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBPlatform_1SetWorkingDirectory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->SetWorkingDirectory((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1ConnectRemote(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBPlatformConnectOptions *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = *(lldb::SBPlatformConnectOptions **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBPlatformConnectOptions & reference is null"); + return 0; + } + result = (arg1)->ConnectRemote(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatform_1DisconnectRemote(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + (arg1)->DisconnectRemote(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBPlatform_1IsConnected(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (bool)(arg1)->IsConnected(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (char *)(arg1)->GetTriple(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetHostname(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (char *)(arg1)->GetHostname(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetOSBuild(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (char *)(arg1)->GetOSBuild(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetOSDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (char *)(arg1)->GetOSDescription(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetOSMajorVersion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (uint32_t)(arg1)->GetOSMajorVersion(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetOSMinorVersion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (uint32_t)(arg1)->GetOSMinorVersion(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetOSUpdateVersion(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (uint32_t)(arg1)->GetOSUpdateVersion(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1Get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBFileSpec *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + result = (arg1)->Get(*arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1Put(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBFileSpec *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + result = (arg1)->Put(*arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1Install(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBFileSpec *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + result = (arg1)->Install(*arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1Run(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBPlatformShellCommand *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = *(lldb::SBPlatformShellCommand **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBPlatformShellCommand & reference is null"); + return 0; + } + result = (arg1)->Run(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1Launch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBLaunchInfo *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = *(lldb::SBLaunchInfo **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBLaunchInfo & reference is null"); + return 0; + } + result = (arg1)->Launch(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1Kill(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::pid_t arg2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::pid_t const)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->Kill(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1MakeDirectory_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->MakeDirectory((char const *)arg2,arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1MakeDirectory_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->MakeDirectory((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetFilePermissions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (uint32_t)(arg1)->GetFilePermissions((char const *)arg2); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1SetFilePermissions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->SetFilePermissions((char const *)arg2,arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetUnixSignals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBUnixSignals result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (arg1)->GetUnixSignals(); + *(lldb::SBUnixSignals **)&jresult = new lldb::SBUnixSignals((const lldb::SBUnixSignals &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetEnvironment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + lldb::SBEnvironment result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + result = (arg1)->GetEnvironment(); + *(lldb::SBEnvironment **)&jresult = new lldb::SBEnvironment((const lldb::SBEnvironment &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1eBroadcastBitStateChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBProcess::eBroadcastBitStateChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1eBroadcastBitInterrupt_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBProcess::eBroadcastBitInterrupt; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1eBroadcastBitSTDOUT_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBProcess::eBroadcastBitSTDOUT; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1eBroadcastBitSTDERR_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBProcess::eBroadcastBitSTDERR; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1eBroadcastBitProfileData_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBProcess::eBroadcastBitProfileData; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1eBroadcastBitStructuredData_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBProcess::eBroadcastBitStructuredData; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBProcess_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBProcess *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBProcess *)new lldb::SBProcess(); + *(lldb::SBProcess **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBProcess_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = 0 ; + lldb::SBProcess *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBProcess const & reference is null"); + return 0; + } + result = (lldb::SBProcess *)new lldb::SBProcess((lldb::SBProcess const &)*arg1); + *(lldb::SBProcess **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBProcess(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBProcess **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1GetBroadcasterClassName(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)lldb::SBProcess::GetBroadcasterClassName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1GetPluginName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (char *)(arg1)->GetPluginName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1GetShortPluginName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (char *)(arg1)->GetShortPluginName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBProcess_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (bool)((lldb::SBProcess const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = ((lldb::SBProcess const *)arg1)->GetTarget(); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1GetByteOrder(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (lldb::ByteOrder)((lldb::SBProcess const *)arg1)->GetByteOrder(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1PutSTDIN(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = (arg1)->PutSTDIN((char const *)arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetSTDOUT(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = ((lldb::SBProcess const *)arg1)->GetSTDOUT(arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetSTDERR(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = ((lldb::SBProcess const *)arg1)->GetSTDERR(arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetAsyncProfileData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = ((lldb::SBProcess const *)arg1)->GetAsyncProfileData(arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBProcess_1ReportEventState_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBEvent *arg2 = 0 ; + lldb::SBFile arg3 ; + lldb::SBFile *argp3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + argp3 = *(lldb::SBFile **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg3 = *argp3; + ((lldb::SBProcess const *)arg1)->ReportEventState((lldb::SBEvent const &)*arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBProcess_1ReportEventState_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBEvent *arg2 = 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg3 ; + lldb::FileSP *argp3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + argp3 = *(lldb::FileSP **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg3 = *argp3; + ((lldb::SBProcess const *)arg1)->ReportEventState((lldb::SBEvent const &)*arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBProcess_1AppendEventStateReport(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBEvent *arg2 = 0 ; + lldb::SBCommandReturnObject *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return ; + } + arg3 = *(lldb::SBCommandReturnObject **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBCommandReturnObject & reference is null"); + return ; + } + (arg1)->AppendEventStateReport((lldb::SBEvent const &)*arg2,*arg3); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1RemoteAttachToProcessWithID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::pid_t arg2 ; + lldb::SBError *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::pid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (bool)(arg1)->RemoteAttachToProcessWithID(arg2,*arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1RemoteLaunch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2, jobjectArray jarg3, jstring jarg4, jstring jarg5, jstring jarg6, jstring jarg7, jlong jarg8, jboolean jarg9, jlong jarg10, jobject jarg10_) { + jboolean jresult = 0 ; + 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 ; + jint size2 ; + jint size3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg10_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + int i = 0; + if (jarg2) { + size2 = jenv->GetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + { + int i = 0; + if (jarg3) { + size3 = jenv->GetArrayLength(jarg3); + + arg3 = new char*[size3+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg3, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg3[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg3[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg3[i] = 0; + } else { + arg3 = 0; + size3 = 0; + } + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + arg5 = 0; + if (jarg5) { + arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0); + if (!arg5) return 0; + } + arg6 = 0; + if (jarg6) { + arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0); + if (!arg6) return 0; + } + arg7 = 0; + if (jarg7) { + arg7 = (char *)jenv->GetStringUTFChars(jarg7, 0); + if (!arg7) return 0; + } + arg8 = (uint32_t)jarg8; + arg9 = jarg9 ? true : false; + arg10 = *(lldb::SBError **)&jarg10; + if (!arg10) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + 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 = (jboolean)result; + { + int i; + for (i=0; iReleaseStringUTFChars(jarg4, (const char *)arg4); + if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5); + if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6); + if (arg7) jenv->ReleaseStringUTFChars(jarg7, (const char *)arg7); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetNumThreads(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (uint32_t)(arg1)->GetNumThreads(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetThreadAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + size_t arg2 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetThreadAtIndex(arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetThreadByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::tid_t arg2 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetThreadByID(arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetThreadByIndexID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t arg2 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetThreadByIndexID(arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetSelectedThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = ((lldb::SBProcess const *)arg1)->GetSelectedThread(); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1CreateOSPluginThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::tid_t arg2 ; + lldb::addr_t arg3 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->CreateOSPluginThread(arg2,arg3); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1SetSelectedThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBThread *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBThread **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBThread const & reference is null"); + return 0; + } + result = (bool)(arg1)->SetSelectedThread((lldb::SBThread const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1SetSelectedThreadByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::tid_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (bool)(arg1)->SetSelectedThreadByID(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1SetSelectedThreadByIndexID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (bool)(arg1)->SetSelectedThreadByIndexID(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetNumQueues(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (uint32_t)(arg1)->GetNumQueues(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetQueueAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t arg2 ; + lldb::SBQueue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetQueueAtIndex(arg2); + *(lldb::SBQueue **)&jresult = new lldb::SBQueue((const lldb::SBQueue &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1GetState(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::StateType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (lldb::StateType)(arg1)->GetState(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1GetExitStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + int result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (int)(arg1)->GetExitStatus(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1GetExitDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (char *)(arg1)->GetExitDescription(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBProcess_1GetProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::pid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (lldb::pid_t)(arg1)->GetProcessID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetUniqueID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (uint32_t)(arg1)->GetUniqueID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetAddressByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (uint32_t)((lldb::SBProcess const *)arg1)->GetAddressByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1Destroy(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->Destroy(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1Continue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->Continue(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1Stop(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->Stop(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1Kill(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->Kill(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1Detach(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->Detach(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1Signal(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + int arg2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (int)jarg2; + result = (arg1)->Signal(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetUnixSignals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBUnixSignals result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->GetUnixSignals(); + *(lldb::SBUnixSignals **)&jresult = new lldb::SBUnixSignals((const lldb::SBUnixSignals &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetStopID_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + bool arg2 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = jarg2 ? true : false; + result = (uint32_t)(arg1)->GetStopID(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetStopID_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (uint32_t)(arg1)->GetStopID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBProcess_1SendAsyncInterrupt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + (arg1)->SendAsyncInterrupt(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1ReadMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + lldb::SBError *arg5 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->ReadMemory(arg2,arg3,arg4,*arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1WriteMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + lldb::SBError *arg5 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->WriteMemory(arg2,(void const *)arg3,arg4,*arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1ReadCStringFromMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + lldb::SBError *arg5 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->ReadCStringFromMemory(arg2,arg3,arg4,*arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBProcess_1ReadUnsignedFromMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jlong jarg4, jobject jarg4_) { + jobject jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + uint32_t arg3 ; + lldb::SBError *arg4 = 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBError **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (uint64_t)(arg1)->ReadUnsignedFromMemory(arg2,arg3,*arg4); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBProcess_1ReadPointerFromMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jobject jarg3_) { + jobject jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + lldb::SBError *arg3 = 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (lldb::addr_t)(arg1)->ReadPointerFromMemory(arg2,*arg3); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBProcess_1GetStateFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::StateType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (lldb::StateType)lldb::SBProcess::GetStateFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1GetRestartedFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBProcess::GetRestartedFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetNumRestartedReasonsFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBProcess::GetNumRestartedReasonsFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1GetRestartedReasonAtIndexFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + size_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + arg2 = (size_t)jarg2; + result = (char *)lldb::SBProcess::GetRestartedReasonAtIndexFromEvent((lldb::SBEvent const &)*arg1,arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetProcessFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBProcess::GetProcessFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1GetInterruptedFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBProcess::GetInterruptedFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetStructuredDataFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBProcess::GetStructuredDataFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1EventIsProcessEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBProcess::EventIsProcessEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1EventIsStructuredDataEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBProcess::EventIsStructuredDataEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBBroadcaster result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = ((lldb::SBProcess const *)arg1)->GetBroadcaster(); + *(lldb::SBBroadcaster **)&jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetExtendedCrashInformation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->GetExtendedCrashInformation(); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetNumSupportedHardwareWatchpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBError *arg2 = 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (uint32_t)((lldb::SBProcess const *)arg1)->GetNumSupportedHardwareWatchpoints(*arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1LoadImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (uint32_t)(arg1)->LoadImage(*arg2,*arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1LoadImageUsingPaths(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBStringList *arg3 = 0 ; + lldb::SBFileSpec *arg4 = 0 ; + lldb::SBError *arg5 = 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = *(lldb::SBStringList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + arg4 = *(lldb::SBFileSpec **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (uint32_t)(arg1)->LoadImageUsingPaths((lldb::SBFileSpec const &)*arg2,*arg3,*arg4,*arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1UnloadImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t arg2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->UnloadImage(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1SendEventData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->SendEventData((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetNumExtendedBacktraceTypes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (uint32_t)(arg1)->GetNumExtendedBacktraceTypes(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1GetExtendedBacktraceTypeAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + uint32_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (char *)(arg1)->GetExtendedBacktraceTypeAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetHistoryThreads(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + lldb::SBThreadCollection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetHistoryThreads(arg2); + *(lldb::SBThreadCollection **)&jresult = new lldb::SBThreadCollection((const lldb::SBThreadCollection &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcess_1IsInstrumentationRuntimePresent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::InstrumentationRuntimeType arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = (lldb::InstrumentationRuntimeType)jarg2; + result = (bool)(arg1)->IsInstrumentationRuntimePresent(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1SaveCore(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->SaveCore((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1StartTrace(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBTraceOptions *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + lldb::SBTrace result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + arg2 = *(lldb::SBTraceOptions **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTraceOptions & reference is null"); + return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->StartTrace(*arg2,*arg3); + *(lldb::SBTrace **)&jresult = new lldb::SBTrace((const lldb::SBTrace &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetMemoryRegionInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::addr_t arg2 ; + lldb::SBMemoryRegionInfo *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBProcess **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(lldb::SBMemoryRegionInfo **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBMemoryRegionInfo & reference is null"); + return 0; + } + result = (arg1)->GetMemoryRegionInfo(arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetMemoryRegions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBMemoryRegionInfoList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->GetMemoryRegions(); + *(lldb::SBMemoryRegionInfoList **)&jresult = new lldb::SBMemoryRegionInfoList((const lldb::SBMemoryRegionInfoList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcess_1GetProcessInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + lldb::SBProcessInfo result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = (arg1)->GetProcessInfo(); + *(lldb::SBProcessInfo **)&jresult = new lldb::SBProcessInfo((const lldb::SBProcessInfo &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcess_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBProcess *arg1 = (lldb::SBProcess *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcess **)&jarg1; + result = lldb_SBProcess___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBProcessInfo_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBProcessInfo *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBProcessInfo *)new lldb::SBProcessInfo(); + *(lldb::SBProcessInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBProcessInfo_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcessInfo *arg1 = 0 ; + lldb::SBProcessInfo *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBProcessInfo const & reference is null"); + return 0; + } + result = (lldb::SBProcessInfo *)new lldb::SBProcessInfo((lldb::SBProcessInfo const &)*arg1); + *(lldb::SBProcessInfo **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBProcessInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetExecutableFile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (arg1)->GetExecutableFile(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + lldb::pid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (lldb::pid_t)(arg1)->GetProcessID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (uint32_t)(arg1)->GetUserID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (uint32_t)(arg1)->GetGroupID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1UserIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (bool)(arg1)->UserIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GroupIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (bool)(arg1)->GroupIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetEffectiveUserID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (uint32_t)(arg1)->GetEffectiveUserID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetEffectiveGroupID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (uint32_t)(arg1)->GetEffectiveGroupID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1EffectiveUserIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (bool)(arg1)->EffectiveUserIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1EffectiveGroupIDIsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (bool)(arg1)->EffectiveGroupIDIsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBProcessInfo_1GetParentProcessID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBProcessInfo *arg1 = (lldb::SBProcessInfo *) 0 ; + lldb::pid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBProcessInfo **)&jarg1; + result = (lldb::pid_t)(arg1)->GetParentProcessID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBQueue_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBQueue *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBQueue *)new lldb::SBQueue(); + *(lldb::SBQueue **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBQueue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + lldb::QueueSP *arg1 = 0 ; + lldb::SBQueue *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::QueueSP **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::QueueSP const & reference is null"); + return 0; + } + result = (lldb::SBQueue *)new lldb::SBQueue((lldb::QueueSP const &)*arg1); + *(lldb::SBQueue **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBQueue(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBQueue **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBQueue_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (bool)((lldb::SBQueue const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBQueue_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetProcess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (arg1)->GetProcess(); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBQueue_1GetQueueID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + lldb::queue_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (lldb::queue_id_t)((lldb::SBQueue const *)arg1)->GetQueueID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBQueue_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (char *)((lldb::SBQueue const *)arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBQueue_1GetKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + lldb::QueueKind result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (lldb::QueueKind)(arg1)->GetKind(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetIndexID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (uint32_t)((lldb::SBQueue const *)arg1)->GetIndexID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetNumThreads(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (uint32_t)(arg1)->GetNumThreads(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetThreadAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + uint32_t arg2 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetThreadAtIndex(arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetNumPendingItems(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (uint32_t)(arg1)->GetNumPendingItems(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetPendingItemAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + uint32_t arg2 ; + lldb::SBQueueItem result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetPendingItemAtIndex(arg2); + *(lldb::SBQueueItem **)&jresult = new lldb::SBQueueItem((const lldb::SBQueueItem &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueue_1GetNumRunningItems(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBQueue *arg1 = (lldb::SBQueue *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueue **)&jarg1; + result = (uint32_t)(arg1)->GetNumRunningItems(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBQueueItem_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBQueueItem *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBQueueItem *)new lldb::SBQueueItem(); + *(lldb::SBQueueItem **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBQueueItem_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + lldb::QueueItemSP *arg1 = 0 ; + lldb::SBQueueItem *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::QueueItemSP **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::QueueItemSP const & reference is null"); + return 0; + } + result = (lldb::SBQueueItem *)new lldb::SBQueueItem((lldb::QueueItemSP const &)*arg1); + *(lldb::SBQueueItem **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBQueueItem(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBQueueItem **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBQueueItem_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + result = (bool)((lldb::SBQueueItem const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBQueueItem_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBQueueItem_1GetKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + lldb::QueueItemKind result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + result = (lldb::QueueItemKind)((lldb::SBQueueItem const *)arg1)->GetKind(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBQueueItem_1SetKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + lldb::QueueItemKind arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + arg2 = (lldb::QueueItemKind)jarg2; + (arg1)->SetKind(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueueItem_1GetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + result = ((lldb::SBQueueItem const *)arg1)->GetAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBQueueItem_1SetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + lldb::SBAddress arg2 ; + lldb::SBAddress *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return ; + } + arg2 = *argp2; + (arg1)->SetAddress(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBQueueItem_1SetQueueItem(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + lldb::QueueItemSP *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + arg2 = *(lldb::QueueItemSP **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::QueueItemSP const & reference is null"); + return ; + } + (arg1)->SetQueueItem((lldb::QueueItemSP const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBQueueItem_1GetExtendedBacktraceThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBQueueItem *arg1 = (lldb::SBQueueItem *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBQueueItem **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->GetExtendedBacktraceThread((char const *)arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBReproducer_1Capture(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jstring jresult = 0 ; + char *arg1 = (char *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (char *)lldb::SBReproducer::Capture((char const *)arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBReproducer_1PassiveReplay(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jstring jresult = 0 ; + char *arg1 = (char *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (char *)lldb::SBReproducer::PassiveReplay((char const *)arg1); + if (result) jresult = jenv->NewStringUTF((const char *)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBReproducer_1SetAutoGenerate(JNIEnv *jenv, jclass jcls, jboolean jarg1) { + jboolean jresult = 0 ; + bool arg1 ; + bool result; + + (void)jenv; + (void)jcls; + arg1 = jarg1 ? true : false; + result = (bool)lldb::SBReproducer::SetAutoGenerate(arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBReproducer_1SetWorkingDirectory(JNIEnv *jenv, jclass jcls, jstring jarg1) { + char *arg1 = (char *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return ; + } + lldb::SBReproducer::SetWorkingDirectory((char const *)arg1); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBReproducer(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBReproducer *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBReproducer *)new lldb::SBReproducer(); + *(lldb::SBReproducer **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBReproducer(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBReproducer *arg1 = (lldb::SBReproducer *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBReproducer **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSection_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBSection *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBSection *)new lldb::SBSection(); + *(lldb::SBSection **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSection_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = 0 ; + lldb::SBSection *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSection const & reference is null"); + return 0; + } + result = (lldb::SBSection *)new lldb::SBSection((lldb::SBSection const &)*arg1); + *(lldb::SBSection **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBSection(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBSection **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSection_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (bool)((lldb::SBSection const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSection_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetParent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::SBSection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (arg1)->GetParent(); + *(lldb::SBSection **)&jresult = new lldb::SBSection((const lldb::SBSection &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1FindSubSection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindSubSection((char const *)arg2); + *(lldb::SBSection **)&jresult = new lldb::SBSection((const lldb::SBSection &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetNumSubSections(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (arg1)->GetNumSubSections(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetSubSectionAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + size_t arg2 ; + lldb::SBSection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetSubSectionAtIndex(arg2); + *(lldb::SBSection **)&jresult = new lldb::SBSection((const lldb::SBSection &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBSection_1GetFileAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (lldb::addr_t)(arg1)->GetFileAddress(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBSection_1GetLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jobject jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::SBTarget *arg2 = 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSection **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget & reference is null"); + return 0; + } + result = (lldb::addr_t)(arg1)->GetLoadAddress(*arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBSection_1GetByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (lldb::addr_t)(arg1)->GetByteSize(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBSection_1GetFileOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (uint64_t)(arg1)->GetFileOffset(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBSection_1GetFileByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (uint64_t)(arg1)->GetFileByteSize(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetSectionData_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (arg1)->GetSectionData(); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetSectionData_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + uint64_t arg2 ; + uint64_t arg3 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetSectionData(arg2,arg3); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBSection_1GetSectionType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::SectionType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (lldb::SectionType)(arg1)->GetSectionType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetPermissions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (uint32_t)((lldb::SBSection const *)arg1)->GetPermissions(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSection_1GetTargetByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = (uint32_t)(arg1)->GetTargetByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSection_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSection **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSection_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSection *arg1 = (lldb::SBSection *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSection **)&jarg1; + result = lldb_SBSection___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSourceManager(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSourceManager *arg1 = 0 ; + lldb::SBSourceManager *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSourceManager **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSourceManager const & reference is null"); + return 0; + } + result = (lldb::SBSourceManager *)new lldb::SBSourceManager((lldb::SBSourceManager const &)*arg1); + *(lldb::SBSourceManager **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBSourceManager(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBSourceManager *arg1 = (lldb::SBSourceManager *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBSourceManager **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSourceManager_1DisplaySourceLinesWithLineNumbers(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jlong jarg5, jstring jarg6, jlong jarg7, jobject jarg7_) { + jlong jresult = 0 ; + 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 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg7_; + arg1 = *(lldb::SBSourceManager **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + arg5 = (uint32_t)jarg5; + arg6 = 0; + if (jarg6) { + arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0); + if (!arg6) return 0; + } + arg7 = *(lldb::SBStream **)&jarg7; + if (!arg7) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (arg1)->DisplaySourceLinesWithLineNumbers((lldb::SBFileSpec const &)*arg2,arg3,arg4,arg5,(char const *)arg6,*arg7); + jresult = (jlong)result; + if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSourceManager_1DisplaySourceLinesWithLineNumbersAndColumn(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jstring jarg7, jlong jarg8, jobject jarg8_) { + jlong jresult = 0 ; + lldb::SBSourceManager *arg1 = (lldb::SBSourceManager *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + uint32_t arg4 ; + uint32_t arg5 ; + uint32_t arg6 ; + char *arg7 = (char *) 0 ; + lldb::SBStream *arg8 = 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg8_; + arg1 = *(lldb::SBSourceManager **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + arg5 = (uint32_t)jarg5; + arg6 = (uint32_t)jarg6; + arg7 = 0; + if (jarg7) { + arg7 = (char *)jenv->GetStringUTFChars(jarg7, 0); + if (!arg7) return 0; + } + arg8 = *(lldb::SBStream **)&jarg8; + if (!arg8) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (arg1)->DisplaySourceLinesWithLineNumbersAndColumn((lldb::SBFileSpec const &)*arg2,arg3,arg4,arg5,arg6,(char const *)arg7,*arg8); + jresult = (jlong)result; + if (arg7) jenv->ReleaseStringUTFChars(jarg7, (const char *)arg7); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBStream(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBStream *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBStream *)new lldb::SBStream(); + *(lldb::SBStream **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBStream(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBStream **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBStream_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + result = (bool)((lldb::SBStream const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBStream_1GetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + result = (char *)(arg1)->GetData(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStream_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + result = (arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1Print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->Print((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1RedirectToFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + char *arg2 = (char *) 0 ; + bool arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = jarg3 ? true : false; + (arg1)->RedirectToFile((char const *)arg2,arg3); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1RedirectToFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + lldb::SBFile arg2 ; + lldb::SBFile *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBStream **)&jarg1; + argp2 = *(lldb::SBFile **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFile"); + return ; + } + arg2 = *argp2; + (arg1)->RedirectToFile(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1RedirectToFile_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + (arg1)->RedirectToFile(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1RedirectToFileHandle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jboolean jarg3) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + SwigValueWrapper< std::shared_ptr< lldb_private::File > > arg2 ; + bool arg3 ; + lldb::FileSP *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + argp2 = *(lldb::FileSP **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::FileSP"); + return ; + } + arg2 = *argp2; + arg3 = jarg3 ? true : false; + lldb_SBStream_RedirectToFileHandle(arg1,arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1RedirectToFileDescriptor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + int arg2 ; + bool arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + arg2 = (int)jarg2; + arg3 = jarg3 ? true : false; + (arg1)->RedirectToFileDescriptor(arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStream_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBStream *arg1 = (lldb::SBStream *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStream **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBStringList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBStringList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBStringList *)new lldb::SBStringList(); + *(lldb::SBStringList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBStringList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBStringList *arg1 = 0 ; + lldb::SBStringList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList const & reference is null"); + return 0; + } + result = (lldb::SBStringList *)new lldb::SBStringList((lldb::SBStringList const &)*arg1); + *(lldb::SBStringList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBStringList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBStringList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBStringList_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + result = (bool)((lldb::SBStringList const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStringList_1AppendString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->AppendString((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStringList_1AppendList_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2, jint jarg3) { + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + char **arg2 = (char **) 0 ; + int arg3 ; + jint size2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + { + int i = 0; + if (jarg2) { + size2 = jenv->GetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + arg3 = (int)jarg3; + (arg1)->AppendList((char const **)arg2,arg3); + { + int i; + for (i=0; iAppendList((lldb::SBStringList const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStringList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + result = (uint32_t)((lldb::SBStringList const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBStringList_1GetStringAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + size_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + arg2 = (size_t)jarg2; + result = (char *)(arg1)->GetStringAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStringList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBStringList *arg1 = (lldb::SBStringList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStringList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBStructuredData_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBStructuredData *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBStructuredData *)new lldb::SBStructuredData(); + *(lldb::SBStructuredData **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBStructuredData_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = 0 ; + lldb::SBStructuredData *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData const & reference is null"); + return 0; + } + result = (lldb::SBStructuredData *)new lldb::SBStructuredData((lldb::SBStructuredData const &)*arg1); + *(lldb::SBStructuredData **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBStructuredData_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + lldb::EventSP *arg1 = 0 ; + lldb::SBStructuredData *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::EventSP **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::EventSP const & reference is null"); + return 0; + } + result = (lldb::SBStructuredData *)new lldb::SBStructuredData((lldb::EventSP const &)*arg1); + *(lldb::SBStructuredData **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBStructuredData(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBStructuredData **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBStructuredData_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + result = (bool)((lldb::SBStructuredData const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBStructuredData_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + lldb::StructuredDataType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + result = (lldb::StructuredDataType)((lldb::SBStructuredData const *)arg1)->GetType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + result = ((lldb::SBStructuredData const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetKeys(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + lldb::SBStringList *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + result = (bool)((lldb::SBStructuredData const *)arg1)->GetKeys(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetValueForKey(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = ((lldb::SBStructuredData const *)arg1)->GetValueForKey((char const *)arg2); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetItemAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + size_t arg2 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = (size_t)jarg2; + result = ((lldb::SBStructuredData const *)arg1)->GetItemAtIndex(arg2); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetIntegerValue_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jobject jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + uint64_t arg2 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint64_t)((lldb::SBStructuredData const *)arg1)->GetIntegerValue(arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetIntegerValue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + result = (uint64_t)((lldb::SBStructuredData const *)arg1)->GetIntegerValue(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jdouble JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetFloatValue_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jdouble jarg2) { + jdouble jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + double arg2 ; + double result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = (double)jarg2; + result = (double)((lldb::SBStructuredData const *)arg1)->GetFloatValue(arg2); + jresult = (jdouble)result; + return jresult; +} + + +SWIGEXPORT jdouble JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetFloatValue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jdouble jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + double result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + result = (double)((lldb::SBStructuredData const *)arg1)->GetFloatValue(); + jresult = (jdouble)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetBooleanValue_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + jboolean jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + bool arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = jarg2 ? true : false; + result = (bool)((lldb::SBStructuredData const *)arg1)->GetBooleanValue(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetBooleanValue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + result = (bool)((lldb::SBStructuredData const *)arg1)->GetBooleanValue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetStringValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = ((lldb::SBStructuredData const *)arg1)->GetStringValue(arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetAsJSON(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = ((lldb::SBStructuredData const *)arg1)->GetAsJSON(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = ((lldb::SBStructuredData const *)arg1)->GetDescription(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBStructuredData_1SetFromJSON(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBStructuredData *arg1 = (lldb::SBStructuredData *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBStructuredData **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (arg1)->SetFromJSON(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSymbol_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBSymbol *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBSymbol *)new lldb::SBSymbol(); + *(lldb::SBSymbol **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBSymbol(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBSymbol **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSymbol_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbol *arg1 = 0 ; + lldb::SBSymbol *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSymbol const & reference is null"); + return 0; + } + result = (lldb::SBSymbol *)new lldb::SBSymbol((lldb::SBSymbol const &)*arg1); + *(lldb::SBSymbol **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbol_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (bool)((lldb::SBSymbol const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (char *)((lldb::SBSymbol const *)arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetDisplayName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (char *)((lldb::SBSymbol const *)arg1)->GetDisplayName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetMangledName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (char *)((lldb::SBSymbol const *)arg1)->GetMangledName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetInstructions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + lldb::SBTarget arg2 ; + lldb::SBTarget *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbol **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetInstructions(arg2); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetInstructions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + lldb::SBTarget arg2 ; + char *arg3 = (char *) 0 ; + lldb::SBTarget *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbol **)&jarg1; + argp2 = *(lldb::SBTarget **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTarget"); + return 0; + } + arg2 = *argp2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->GetInstructions(arg2,(char const *)arg3); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetStartAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (arg1)->GetStartAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetEndAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (arg1)->GetEndAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetPrologueByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (uint32_t)(arg1)->GetPrologueByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + lldb::SymbolType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (lldb::SymbolType)(arg1)->GetType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbol_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbol **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbol_1IsExternal(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (bool)(arg1)->IsExternal(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbol_1IsSynthetic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = (bool)(arg1)->IsSynthetic(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSymbol_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSymbol *arg1 = (lldb::SBSymbol *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbol **)&jarg1; + result = lldb_SBSymbol___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSymbolContext_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBSymbolContext *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBSymbolContext *)new lldb::SBSymbolContext(); + *(lldb::SBSymbolContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSymbolContext_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = 0 ; + lldb::SBSymbolContext *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSymbolContext const & reference is null"); + return 0; + } + result = (lldb::SBSymbolContext *)new lldb::SBSymbolContext((lldb::SBSymbolContext const &)*arg1); + *(lldb::SBSymbolContext **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBSymbolContext(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (bool)((lldb::SBSymbolContext const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (arg1)->GetModule(); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetCompileUnit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBCompileUnit result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (arg1)->GetCompileUnit(); + *(lldb::SBCompileUnit **)&jresult = new lldb::SBCompileUnit((const lldb::SBCompileUnit &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetFunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBFunction result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (arg1)->GetFunction(); + *(lldb::SBFunction **)&jresult = new lldb::SBFunction((const lldb::SBFunction &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBBlock result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (arg1)->GetBlock(); + *(lldb::SBBlock **)&jresult = new lldb::SBBlock((const lldb::SBBlock &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetLineEntry(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBLineEntry result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (arg1)->GetLineEntry(); + *(lldb::SBLineEntry **)&jresult = new lldb::SBLineEntry((const lldb::SBLineEntry &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetSymbol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBSymbol result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = (arg1)->GetSymbol(); + *(lldb::SBSymbol **)&jresult = new lldb::SBSymbol((const lldb::SBSymbol &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1SetModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBModule arg2 ; + lldb::SBModule *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + argp2 = *(lldb::SBModule **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBModule"); + return ; + } + arg2 = *argp2; + (arg1)->SetModule(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1SetCompileUnit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBCompileUnit arg2 ; + lldb::SBCompileUnit *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + argp2 = *(lldb::SBCompileUnit **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBCompileUnit"); + return ; + } + arg2 = *argp2; + (arg1)->SetCompileUnit(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1SetFunction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBFunction arg2 ; + lldb::SBFunction *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + argp2 = *(lldb::SBFunction **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBFunction"); + return ; + } + arg2 = *argp2; + (arg1)->SetFunction(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1SetBlock(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBBlock arg2 ; + lldb::SBBlock *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + argp2 = *(lldb::SBBlock **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBBlock"); + return ; + } + arg2 = *argp2; + (arg1)->SetBlock(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1SetLineEntry(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBLineEntry arg2 ; + lldb::SBLineEntry *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + argp2 = *(lldb::SBLineEntry **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBLineEntry"); + return ; + } + arg2 = *argp2; + (arg1)->SetLineEntry(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1SetSymbol(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBSymbol arg2 ; + lldb::SBSymbol *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + argp2 = *(lldb::SBSymbol **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBSymbol"); + return ; + } + arg2 = *argp2; + (arg1)->SetSymbol(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetParentOfInlinedScope(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBAddress *arg2 = 0 ; + lldb::SBAddress *arg3 = 0 ; + lldb::SBSymbolContext result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress const & reference is null"); + return 0; + } + arg3 = *(lldb::SBAddress **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress & reference is null"); + return 0; + } + result = ((lldb::SBSymbolContext const *)arg1)->GetParentOfInlinedScope((lldb::SBAddress const &)*arg2,*arg3); + *(lldb::SBSymbolContext **)&jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSymbolContext_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSymbolContext *arg1 = (lldb::SBSymbolContext *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContext **)&jarg1; + result = lldb_SBSymbolContext___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSymbolContextList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBSymbolContextList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBSymbolContextList *)new lldb::SBSymbolContextList(); + *(lldb::SBSymbolContextList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBSymbolContextList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContextList *arg1 = 0 ; + lldb::SBSymbolContextList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSymbolContextList const & reference is null"); + return 0; + } + result = (lldb::SBSymbolContextList *)new lldb::SBSymbolContextList((lldb::SBSymbolContextList const &)*arg1); + *(lldb::SBSymbolContextList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBSymbolContextList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + result = (bool)((lldb::SBSymbolContextList const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + result = (uint32_t)((lldb::SBSymbolContextList const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1GetContextAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + uint32_t arg2 ; + lldb::SBSymbolContext result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetContextAtIndex(arg2); + *(lldb::SBSymbolContext **)&jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1Append_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + lldb::SBSymbolContext *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + arg2 = *(lldb::SBSymbolContext **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSymbolContext & reference is null"); + return ; + } + (arg1)->Append(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1Append_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + lldb::SBSymbolContextList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + arg2 = *(lldb::SBSymbolContextList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBSymbolContextList & reference is null"); + return ; + } + (arg1)->Append(*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBSymbolContextList_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBSymbolContextList *arg1 = (lldb::SBSymbolContextList *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBSymbolContextList **)&jarg1; + result = lldb_SBSymbolContextList___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTarget_1eBroadcastBitBreakpointChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBTarget::eBroadcastBitBreakpointChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTarget_1eBroadcastBitModulesLoaded_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBTarget::eBroadcastBitModulesLoaded; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTarget_1eBroadcastBitModulesUnloaded_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBTarget::eBroadcastBitModulesUnloaded; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTarget_1eBroadcastBitWatchpointChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBTarget::eBroadcastBitWatchpointChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTarget_1eBroadcastBitSymbolsLoaded_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBTarget::eBroadcastBitSymbolsLoaded; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTarget_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTarget *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTarget *)new lldb::SBTarget(); + *(lldb::SBTarget **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTarget_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = 0 ; + lldb::SBTarget *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget const & reference is null"); + return 0; + } + result = (lldb::SBTarget *)new lldb::SBTarget((lldb::SBTarget const &)*arg1); + *(lldb::SBTarget **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTarget(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTarget **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTarget_1GetBroadcasterClassName(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)lldb::SBTarget::GetBroadcasterClassName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)((lldb::SBTarget const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1EventIsTargetEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBTarget::EventIsTargetEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetTargetFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBTarget::GetTargetFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetNumModulesFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (uint32_t)lldb::SBTarget::GetNumModulesFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetModuleAtIndexFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + uint32_t arg1 ; + lldb::SBEvent *arg2 = 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg2_; + arg1 = (uint32_t)jarg1; + arg2 = *(lldb::SBEvent **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBTarget::GetModuleAtIndexFromEvent(arg1,(lldb::SBEvent const &)*arg2); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetProcess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->GetProcess(); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetPlatform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBPlatform result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->GetPlatform(); + *(lldb::SBPlatform **)&jresult = new lldb::SBPlatform((const lldb::SBPlatform &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1Install(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->Install(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1Launch_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobjectArray jarg3, jobjectArray jarg4, jstring jarg5, jstring jarg6, jstring jarg7, jstring jarg8, jlong jarg9, jboolean jarg10, jlong jarg11, jobject jarg11_) { + jlong jresult = 0 ; + 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 ; + jint size3 ; + jint size4 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg11_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener & reference is null"); + return 0; + } + { + int i = 0; + if (jarg3) { + size3 = jenv->GetArrayLength(jarg3); + + arg3 = new char*[size3+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg3, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg3[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg3[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg3[i] = 0; + } else { + arg3 = 0; + size3 = 0; + } + } + { + int i = 0; + if (jarg4) { + size4 = jenv->GetArrayLength(jarg4); + + arg4 = new char*[size4+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg4, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg4[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg4[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg4[i] = 0; + } else { + arg4 = 0; + size4 = 0; + } + } + arg5 = 0; + if (jarg5) { + arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0); + if (!arg5) return 0; + } + arg6 = 0; + if (jarg6) { + arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0); + if (!arg6) return 0; + } + arg7 = 0; + if (jarg7) { + arg7 = (char *)jenv->GetStringUTFChars(jarg7, 0); + if (!arg7) return 0; + } + arg8 = 0; + if (jarg8) { + arg8 = (char *)jenv->GetStringUTFChars(jarg8, 0); + if (!arg8) return 0; + } + arg9 = (uint32_t)jarg9; + arg10 = jarg10 ? true : false; + arg11 = *(lldb::SBError **)&jarg11; + if (!arg11) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + 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); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + { + int i; + for (i=0; iReleaseStringUTFChars(jarg5, (const char *)arg5); + if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6); + if (arg7) jenv->ReleaseStringUTFChars(jarg7, (const char *)arg7); + if (arg8) jenv->ReleaseStringUTFChars(jarg8, (const char *)arg8); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1LaunchSimple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2, jobjectArray jarg3, jstring jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char **arg2 = (char **) 0 ; + char **arg3 = (char **) 0 ; + char *arg4 = (char *) 0 ; + jint size2 ; + jint size3 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + { + int i = 0; + if (jarg2) { + size2 = jenv->GetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + { + int i = 0; + if (jarg3) { + size3 = jenv->GetArrayLength(jarg3); + + arg3 = new char*[size3+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg3, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg3[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg3[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg3[i] = 0; + } else { + arg3 = 0; + size3 = 0; + } + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = (arg1)->LaunchSimple((char const **)arg2,(char const **)arg3,(char const *)arg4); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + { + int i; + for (i=0; iReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1Launch_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBLaunchInfo *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBLaunchInfo **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBLaunchInfo & reference is null"); + return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->Launch(*arg2,*arg3); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1LoadCore_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->LoadCore((char const *)arg2); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1LoadCore_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError *arg3 = 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->LoadCore((char const *)arg2,*arg3); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1Attach(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAttachInfo *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBAttachInfo **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAttachInfo & reference is null"); + return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->Attach(*arg2,*arg3); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1AttachToProcessWithID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBListener *arg2 = 0 ; + lldb::pid_t arg3 ; + lldb::SBError *arg4 = 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg4_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::pid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg4 = *(lldb::SBError **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->AttachToProcessWithID(*arg2,arg3,*arg4); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1AttachToProcessWithName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jboolean jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBListener *arg2 = 0 ; + char *arg3 = (char *) 0 ; + bool arg4 ; + lldb::SBError *arg5 = 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = jarg4 ? true : false; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->AttachToProcessWithName(*arg2,(char const *)arg3,arg4,*arg5); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ConnectRemote(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jstring jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + 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; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBListener **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBListener & reference is null"); + return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->ConnectRemote(*arg2,(char const *)arg3,(char const *)arg4,*arg5); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetExecutable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->GetExecutable(); + *(lldb::SBFileSpec **)&jresult = new lldb::SBFileSpec((const lldb::SBFileSpec &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTarget_1AppendImageSearchPath(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jlong jarg4, jobject jarg4_) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBError *arg4 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return ; + } + arg4 = *(lldb::SBError **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->AppendImageSearchPath((char const *)arg2,(char const *)arg3,*arg4); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1AddModule_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBModule *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBModule **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModule & reference is null"); + return 0; + } + result = (bool)(arg1)->AddModule(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1AddModule_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = (arg1)->AddModule((char const *)arg2,(char const *)arg3,(char const *)arg4); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1AddModule_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5) { + jlong jresult = 0 ; + 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; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + arg5 = 0; + if (jarg5) { + arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0); + if (!arg5) return 0; + } + result = (arg1)->AddModule((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1AddModule_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBModuleSpec *arg2 = 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBModuleSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModuleSpec const & reference is null"); + return 0; + } + result = (arg1)->AddModule((lldb::SBModuleSpec const &)*arg2); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetNumModules(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (uint32_t)((lldb::SBTarget const *)arg1)->GetNumModules(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetModuleAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t arg2 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetModuleAtIndex(arg2); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1RemoveModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBModule arg2 ; + lldb::SBModule *argp2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBModule **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBModule"); + return 0; + } + arg2 = *argp2; + result = (bool)(arg1)->RemoveModule(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetDebugger(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBDebugger result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = ((lldb::SBTarget const *)arg1)->GetDebugger(); + *(lldb::SBDebugger **)&jresult = new lldb::SBDebugger((const lldb::SBDebugger &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (arg1)->FindModule((lldb::SBFileSpec const &)*arg2); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindCompileUnits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (arg1)->FindCompileUnits((lldb::SBFileSpec const &)*arg2); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTarget_1GetByteOrder(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::ByteOrder result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (lldb::ByteOrder)(arg1)->GetByteOrder(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetAddressByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (uint32_t)(arg1)->GetAddressByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTarget_1GetTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (char *)(arg1)->GetTriple(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetDataByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (uint32_t)(arg1)->GetDataByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetCodeByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (uint32_t)(arg1)->GetCodeByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1SetSectionLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBSection arg2 ; + lldb::addr_t arg3 ; + lldb::SBSection *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBSection **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBSection"); + return 0; + } + arg2 = *argp2; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->SetSectionLoadAddress(arg2,arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ClearSectionLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBSection arg2 ; + lldb::SBSection *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBSection **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBSection"); + return 0; + } + arg2 = *argp2; + result = (arg1)->ClearSectionLoadAddress(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1SetModuleLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBModule arg2 ; + int64_t arg3 ; + lldb::SBModule *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBModule **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBModule"); + return 0; + } + arg2 = *argp2; + arg3 = (int64_t)jarg3; + result = (arg1)->SetModuleLoadAddress(arg2,arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ClearModuleLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBModule arg2 ; + lldb::SBModule *argp2 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBModule **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBModule"); + return 0; + } + arg2 = *argp2; + result = (arg1)->ClearModuleLoadAddress(arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindFunctions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->FindFunctions((char const *)arg2,arg3); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindFunctions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindFunctions((char const *)arg2); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindFirstType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindFirstType((char const *)arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindTypes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindTypes((char const *)arg2); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetBasicType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::BasicType arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (lldb::BasicType)jarg2; + result = (arg1)->GetBasicType(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetSourceManager(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + SwigValueWrapper< lldb::SBSourceManager > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->GetSourceManager(); + *(lldb::SBSourceManager **)&jresult = new lldb::SBSourceManager((const lldb::SBSourceManager &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindGlobalVariables_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->FindGlobalVariables((char const *)arg2,arg3); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindFirstGlobalVariable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindFirstGlobalVariable((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindGlobalVariables_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jint jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::MatchType arg4 ; + lldb::SBValueList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (lldb::MatchType)jarg4; + result = (arg1)->FindGlobalVariables((char const *)arg2,arg3,arg4); + *(lldb::SBValueList **)&jresult = new lldb::SBValueList((const lldb::SBValueList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindGlobalFunctions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jint jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::MatchType arg4 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (lldb::MatchType)jarg4; + result = (arg1)->FindGlobalFunctions((char const *)arg2,arg3,arg4); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTarget_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ResolveFileAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::addr_t arg2 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->ResolveFileAddress(arg2); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ResolveLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::addr_t arg2 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->ResolveLoadAddress(arg2); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ResolvePastLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t arg2 ; + lldb::addr_t arg3 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (uint32_t)jarg2; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->ResolvePastLoadAddress(arg2,arg3); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ResolveSymbolContextForAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress *arg2 = 0 ; + uint32_t arg3 ; + lldb::SBSymbolContext result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->ResolveSymbolContextForAddress((lldb::SBAddress const &)*arg2,arg3); + *(lldb::SBSymbolContext **)&jresult = new lldb::SBSymbolContext((const lldb::SBSymbolContext &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ReadMemory(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress arg2 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + lldb::SBError *arg5 = 0 ; + lldb::SBAddress const *argp2 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress const"); + return 0; + } + arg2 = *argp2; + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->ReadMemory(arg2,arg3,arg4,*arg5); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByLocation_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->BreakpointCreateByLocation((char const *)arg2,arg3); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByLocation_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->BreakpointCreateByLocation((lldb::SBFileSpec const &)*arg2,arg3); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByLocation_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + lldb::addr_t arg4 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg4); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg4, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg4 = 0; + if (sz > 0) { + arg4 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->BreakpointCreateByLocation((lldb::SBFileSpec const &)*arg2,arg3,arg4); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByLocation_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + lldb::addr_t arg4 ; + lldb::SBFileSpecList *arg5 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg4); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg4, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg4 = 0; + if (sz > 0) { + arg4 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByLocation((lldb::SBFileSpec const &)*arg2,arg3,arg4,*arg5); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByLocation_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jobject jarg5, jlong jarg6, jobject jarg6_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + uint32_t arg4 ; + lldb::addr_t arg5 ; + lldb::SBFileSpecList *arg6 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg6_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg5); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg5, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg5 = 0; + if (sz > 0) { + arg5 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg6 = *(lldb::SBFileSpecList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByLocation((lldb::SBFileSpec const &)*arg2,arg3,arg4,arg5,*arg6); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByLocation_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jobject jarg5, jlong jarg6, jobject jarg6_, jboolean jarg7) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + uint32_t arg4 ; + lldb::addr_t arg5 ; + lldb::SBFileSpecList *arg6 = 0 ; + bool arg7 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg6_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg5); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg5, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg5 = 0; + if (sz > 0) { + arg5 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg6 = *(lldb::SBFileSpecList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList & reference is null"); + return 0; + } + arg7 = jarg7 ? true : false; + result = (arg1)->BreakpointCreateByLocation((lldb::SBFileSpec const &)*arg2,arg3,arg4,arg5,*arg6,arg7); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByName_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->BreakpointCreateByName((char const *)arg2,(char const *)arg3); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByName_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->BreakpointCreateByName((char const *)arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByName_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBFileSpecList *arg4 = 0 ; + lldb::SBFileSpecList *arg5 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBFileSpecList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByName((char const *)arg2,arg3,(lldb::SBFileSpecList const &)*arg4,(lldb::SBFileSpecList const &)*arg5); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByName_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jint jarg4, jlong jarg5, jobject jarg5_, jlong jarg6, jobject jarg6_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::LanguageType arg4 ; + lldb::SBFileSpecList *arg5 = 0 ; + lldb::SBFileSpecList *arg6 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + (void)jarg6_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + arg4 = (lldb::LanguageType)jarg4; + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg6 = *(lldb::SBFileSpecList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByName((char const *)arg2,arg3,arg4,(lldb::SBFileSpecList const &)*arg5,(lldb::SBFileSpecList const &)*arg6); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByNames_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg5_, jlong jarg6, jobject jarg6_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char **arg2 = (char **) 0 ; + uint32_t arg3 ; + uint32_t arg4 ; + lldb::SBFileSpecList *arg5 = 0 ; + lldb::SBFileSpecList *arg6 = 0 ; + jint size2 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + (void)jarg6_; + arg1 = *(lldb::SBTarget **)&jarg1; + { + int i = 0; + if (jarg2) { + size2 = jenv->GetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg6 = *(lldb::SBFileSpecList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByNames((char const **)arg2,arg3,arg4,(lldb::SBFileSpecList const &)*arg5,(lldb::SBFileSpecList const &)*arg6); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + { + int i; + for (i=0; iGetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + arg5 = (lldb::LanguageType)jarg5; + arg6 = *(lldb::SBFileSpecList **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg7 = *(lldb::SBFileSpecList **)&jarg7; + if (!arg7) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByNames((char const **)arg2,arg3,arg4,arg5,(lldb::SBFileSpecList const &)*arg6,(lldb::SBFileSpecList const &)*arg7); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + { + int i; + for (i=0; iGetArrayLength(jarg2); + + arg2 = new char*[size2+1]; + + + + for (i = 0; iGetObjectArrayElement(jarg2, i); + const char *c_string = jenv->GetStringUTFChars(j_string, 0); + + arg2[i] = new char [strlen(c_string)+1]; + + + + strcpy(arg2[i], c_string); + jenv->ReleaseStringUTFChars(j_string, c_string); + jenv->DeleteLocalRef(j_string); + } + arg2[i] = 0; + } else { + arg2 = 0; + size2 = 0; + } + } + arg3 = (uint32_t)jarg3; + arg4 = (uint32_t)jarg4; + arg5 = (lldb::LanguageType)jarg5; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg6); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg6, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg6 = 0; + if (sz > 0) { + arg6 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg7 = *(lldb::SBFileSpecList **)&jarg7; + if (!arg7) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg8 = *(lldb::SBFileSpecList **)&jarg8; + if (!arg8) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByNames((char const **)arg2,arg3,arg4,arg5,arg6,(lldb::SBFileSpecList const &)*arg7,(lldb::SBFileSpecList const &)*arg8); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + { + int i; + for (i=0; iGetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->BreakpointCreateByRegex((char const *)arg2,(char const *)arg3); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByRegex_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->BreakpointCreateByRegex((char const *)arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByRegex_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::LanguageType arg3 ; + lldb::SBFileSpecList *arg4 = 0 ; + lldb::SBFileSpecList *arg5 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::LanguageType)jarg3; + arg4 = *(lldb::SBFileSpecList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateByRegex((char const *)arg2,arg3,(lldb::SBFileSpecList const &)*arg4,(lldb::SBFileSpecList const &)*arg5); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateBySourceRegex_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jstring jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBFileSpec *arg3 = 0 ; + char *arg4 = (char *) 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = (arg1)->BreakpointCreateBySourceRegex((char const *)arg2,(lldb::SBFileSpec const &)*arg3,(char const *)arg4); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateBySourceRegex_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBFileSpec *arg3 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateBySourceRegex((char const *)arg2,(lldb::SBFileSpec const &)*arg3); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateBySourceRegex_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBFileSpecList *arg3 = 0 ; + lldb::SBFileSpecList *arg4 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBFileSpecList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg4 = *(lldb::SBFileSpecList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateBySourceRegex((char const *)arg2,(lldb::SBFileSpecList const &)*arg3,(lldb::SBFileSpecList const &)*arg4); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateBySourceRegex_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBFileSpecList *arg3 = 0 ; + lldb::SBFileSpecList *arg4 = 0 ; + lldb::SBStringList *arg5 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBFileSpecList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg4 = *(lldb::SBFileSpecList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg5 = *(lldb::SBStringList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateBySourceRegex((char const *)arg2,(lldb::SBFileSpecList const &)*arg3,(lldb::SBFileSpecList const &)*arg4,(lldb::SBStringList const &)*arg5); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateForException(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::LanguageType arg2 ; + bool arg3 ; + bool arg4 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (lldb::LanguageType)jarg2; + arg3 = jarg3 ? true : false; + arg4 = jarg4 ? true : false; + result = (arg1)->BreakpointCreateForException(arg2,arg3,arg4); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateByAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::addr_t arg2 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->BreakpointCreateByAddress(arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetEnvironment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBEnvironment result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->GetEnvironment(); + *(lldb::SBEnvironment **)&jresult = new lldb::SBEnvironment((const lldb::SBEnvironment &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateBySBAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress *arg2 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateBySBAddress(*arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateFromScript_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_, jboolean jarg6) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + lldb::SBFileSpecList *arg4 = 0 ; + lldb::SBFileSpecList *arg5 = 0 ; + bool arg6 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + arg4 = *(lldb::SBFileSpecList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg6 = jarg6 ? true : false; + result = (arg1)->BreakpointCreateFromScript((char const *)arg2,*arg3,(lldb::SBFileSpecList const &)*arg4,(lldb::SBFileSpecList const &)*arg5,arg6); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointCreateFromScript_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + lldb::SBFileSpecList *arg4 = 0 ; + lldb::SBFileSpecList *arg5 = 0 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + (void)jarg5_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + arg4 = *(lldb::SBFileSpecList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + arg5 = *(lldb::SBFileSpecList **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpecList const & reference is null"); + return 0; + } + result = (arg1)->BreakpointCreateFromScript((char const *)arg2,*arg3,(lldb::SBFileSpecList const &)*arg4,(lldb::SBFileSpecList const &)*arg5); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetNumBreakpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (uint32_t)((lldb::SBTarget const *)arg1)->GetNumBreakpoints(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetBreakpointAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t arg2 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBTarget const *)arg1)->GetBreakpointAtIndex(arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointDelete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::break_id_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (lldb::break_id_t)jarg2; + result = (bool)(arg1)->BreakpointDelete(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindBreakpointByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::break_id_t arg2 ; + lldb::SBBreakpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (lldb::break_id_t)jarg2; + result = (arg1)->FindBreakpointByID(arg2); + *(lldb::SBBreakpoint **)&jresult = new lldb::SBBreakpoint((const lldb::SBBreakpoint &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1FindBreakpointsByName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBBreakpointList *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBBreakpointList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointList & reference is null"); + return 0; + } + result = (bool)(arg1)->FindBreakpointsByName((char const *)arg2,*arg3); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTarget_1DeleteBreakpointName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->DeleteBreakpointName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTarget_1GetBreakpointNames(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBStringList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBStringList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return ; + } + (arg1)->GetBreakpointNames(*arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1EnableAllBreakpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->EnableAllBreakpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1DisableAllBreakpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->DisableAllBreakpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1DeleteAllBreakpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->DeleteAllBreakpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointsCreateFromFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBBreakpointList *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBBreakpointList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointList & reference is null"); + return 0; + } + result = (arg1)->BreakpointsCreateFromFile(*arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointsCreateFromFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBStringList *arg3 = 0 ; + lldb::SBBreakpointList *arg4 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBStringList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStringList & reference is null"); + return 0; + } + arg4 = *(lldb::SBBreakpointList **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointList & reference is null"); + return 0; + } + result = (arg1)->BreakpointsCreateFromFile(*arg2,*arg3,*arg4); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointsWriteToFile_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + result = (arg1)->BreakpointsWriteToFile(*arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointsWriteToFile_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBBreakpointList *arg3 = 0 ; + bool arg4 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBBreakpointList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointList & reference is null"); + return 0; + } + arg4 = jarg4 ? true : false; + result = (arg1)->BreakpointsWriteToFile(*arg2,*arg3,arg4); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1BreakpointsWriteToFile_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + lldb::SBBreakpointList *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = *(lldb::SBBreakpointList **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBBreakpointList & reference is null"); + return 0; + } + result = (arg1)->BreakpointsWriteToFile(*arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetNumWatchpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (uint32_t)((lldb::SBTarget const *)arg1)->GetNumWatchpoints(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetWatchpointAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + uint32_t arg2 ; + lldb::SBWatchpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBTarget const *)arg1)->GetWatchpointAtIndex(arg2); + *(lldb::SBWatchpoint **)&jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1DeleteWatchpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::watch_id_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (lldb::watch_id_t)jarg2; + result = (bool)(arg1)->DeleteWatchpoint(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindWatchpointByID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::watch_id_t arg2 ; + lldb::SBWatchpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = (lldb::watch_id_t)jarg2; + result = (arg1)->FindWatchpointByID(arg2); + *(lldb::SBWatchpoint **)&jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1EnableAllWatchpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->EnableAllWatchpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1DisableAllWatchpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->DisableAllWatchpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1DeleteAllWatchpoints(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->DeleteAllWatchpoints(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1WatchAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jboolean jarg4, jboolean jarg5, jlong jarg6, jobject jarg6_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::addr_t arg2 ; + size_t arg3 ; + bool arg4 ; + bool arg5 ; + lldb::SBError *arg6 = 0 ; + lldb::SBWatchpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg6_; + arg1 = *(lldb::SBTarget **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = (size_t)jarg3; + arg4 = jarg4 ? true : false; + arg5 = jarg5 ? true : false; + arg6 = *(lldb::SBError **)&jarg6; + if (!arg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->WatchAddress(arg2,arg3,arg4,arg5,*arg6); + *(lldb::SBWatchpoint **)&jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetBroadcaster(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBBroadcaster result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = ((lldb::SBTarget const *)arg1)->GetBroadcaster(); + *(lldb::SBBroadcaster **)&jresult = new lldb::SBBroadcaster((const lldb::SBBroadcaster &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1CreateValueFromAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBAddress arg3 ; + lldb::SBType arg4 ; + lldb::SBAddress *argp3 ; + lldb::SBType *argp4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + argp3 = *(lldb::SBAddress **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg3 = *argp3; + argp4 = *(lldb::SBType **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg4 = *argp4; + result = (arg1)->CreateValueFromAddress((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1CreateValueFromData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBData arg3 ; + lldb::SBType arg4 ; + lldb::SBData *argp3 ; + lldb::SBType *argp4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + argp3 = *(lldb::SBData **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBData"); + return 0; + } + arg3 = *argp3; + argp4 = *(lldb::SBType **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg4 = *argp4; + result = (arg1)->CreateValueFromData((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1CreateValueFromExpression(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->CreateValueFromExpression((char const *)arg2,(char const *)arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ReadInstructions_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress arg2 ; + uint32_t arg3 ; + lldb::SBAddress *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg2 = *argp2; + arg3 = (uint32_t)jarg3; + result = (arg1)->ReadInstructions(arg2,arg3); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1ReadInstructions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jstring jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress arg2 ; + uint32_t arg3 ; + char *arg4 = (char *) 0 ; + lldb::SBAddress *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg2 = *argp2; + arg3 = (uint32_t)jarg3; + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = (arg1)->ReadInstructions(arg2,arg3,(char const *)arg4); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetInstructions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress arg2 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + lldb::SBAddress *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg2 = *argp2; + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + result = (arg1)->GetInstructions(arg2,(void const *)arg3,arg4); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetInstructionsWithFlavor(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3, jlong jarg4, jlong jarg5) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBAddress arg2 ; + char *arg3 = (char *) 0 ; + void *arg4 = (void *) 0 ; + size_t arg5 ; + lldb::SBAddress *argp2 ; + lldb::SBInstructionList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg2 = *argp2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = *(void **)&jarg4; + arg5 = (size_t)jarg5; + result = (arg1)->GetInstructionsWithFlavor(arg2,(char const *)arg3,(void const *)arg4,arg5); + *(lldb::SBInstructionList **)&jresult = new lldb::SBInstructionList((const lldb::SBInstructionList &)result); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindSymbols_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SymbolType arg3 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::SymbolType)jarg3; + result = (arg1)->FindSymbols((char const *)arg2,arg3); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1FindSymbols_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBSymbolContextList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->FindSymbols((char const *)arg2); + *(lldb::SBSymbolContextList **)&jresult = new lldb::SBSymbolContextList((const lldb::SBSymbolContextList &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTarget_1GetStackRedZoneSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (lldb::addr_t)(arg1)->GetStackRedZoneSize(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1IsLoaded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBModule *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBModule **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBModule const & reference is null"); + return 0; + } + result = (bool)((lldb::SBTarget const *)arg1)->IsLoaded((lldb::SBModule const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetLaunchInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + SwigValueWrapper< lldb::SBLaunchInfo > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = ((lldb::SBTarget const *)arg1)->GetLaunchInfo(); + *(lldb::SBLaunchInfo **)&jresult = new lldb::SBLaunchInfo((const lldb::SBLaunchInfo &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTarget_1SetLaunchInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBLaunchInfo *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = *(lldb::SBLaunchInfo **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBLaunchInfo const & reference is null"); + return ; + } + (arg1)->SetLaunchInfo((lldb::SBLaunchInfo const &)*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTarget_1SetCollectingStats(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetCollectingStats(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTarget_1GetCollectingStats(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (bool)(arg1)->GetCollectingStats(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetStatistics(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = (arg1)->GetStatistics(); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1EvaluateExpression_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->EvaluateExpression((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1EvaluateExpression_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBExpressionOptions *arg3 = 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBTarget **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBExpressionOptions **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExpressionOptions const & reference is null"); + return 0; + } + result = (arg1)->EvaluateExpression((char const *)arg2,(lldb::SBExpressionOptions const &)*arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTarget_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTarget *arg1 = (lldb::SBTarget *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTarget **)&jarg1; + result = lldb_SBTarget___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThread_1eBroadcastBitStackChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBThread::eBroadcastBitStackChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThread_1eBroadcastBitThreadSuspended_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBThread::eBroadcastBitThreadSuspended; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThread_1eBroadcastBitThreadResumed_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBThread::eBroadcastBitThreadResumed; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThread_1eBroadcastBitSelectedFrameChanged_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBThread::eBroadcastBitSelectedFrameChanged; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThread_1eBroadcastBitThreadSelected_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + int result; + + (void)jenv; + (void)jcls; + result = (int)lldb::SBThread::eBroadcastBitThreadSelected; + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThread_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBThread *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBThread *)new lldb::SBThread(); + *(lldb::SBThread **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThread_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = 0 ; + lldb::SBThread *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBThread const & reference is null"); + return 0; + } + result = (lldb::SBThread *)new lldb::SBThread((lldb::SBThread const &)*arg1); + *(lldb::SBThread **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBThread(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBThread **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBThread_1GetBroadcasterClassName(JNIEnv *jenv, jclass jcls) { + jstring jresult = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + result = (char *)lldb::SBThread::GetBroadcasterClassName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1EventIsThreadEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBThread::EventIsThreadEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetStackFrameFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBFrame result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBThread::GetStackFrameFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBFrame **)&jresult = new lldb::SBFrame((const lldb::SBFrame &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetThreadFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBThread::GetThreadFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (bool)((lldb::SBThread const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopReason(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::StopReason result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (lldb::StopReason)(arg1)->GetStopReason(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopReasonDataCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->GetStopReasonDataCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopReasonDataAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jobject jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + uint32_t arg2 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (uint64_t)(arg1)->GetStopReasonDataAtIndex(arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopReasonExtendedInfoAsJSON(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetStopReasonExtendedInfoAsJSON(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopReasonExtendedBacktraces(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::InstrumentationRuntimeType arg2 ; + lldb::SBThreadCollection result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (lldb::InstrumentationRuntimeType)jarg2; + result = (arg1)->GetStopReasonExtendedBacktraces(arg2); + *(lldb::SBThreadCollection **)&jresult = new lldb::SBThreadCollection((const lldb::SBThreadCollection &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + size_t arg3 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (size_t)jarg3; + result = (arg1)->GetStopDescription(arg2,arg3); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetStopReturnValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->GetStopReturnValue(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBThread_1GetThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::tid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (lldb::tid_t)((lldb::SBThread const *)arg1)->GetThreadID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetIndexID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (uint32_t)((lldb::SBThread const *)arg1)->GetIndexID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBThread_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (char *)((lldb::SBThread const *)arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBThread_1GetQueueName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (char *)((lldb::SBThread const *)arg1)->GetQueueName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBThread_1GetQueueID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::queue_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (lldb::queue_id_t)((lldb::SBThread const *)arg1)->GetQueueID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1GetInfoItemByPathAsString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStream *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStream **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetInfoItemByPathAsString((char const *)arg2,*arg3); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetQueue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBQueue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = ((lldb::SBThread const *)arg1)->GetQueue(); + *(lldb::SBQueue **)&jresult = new lldb::SBQueue((const lldb::SBQueue &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOver_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::RunMode arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (lldb::RunMode)jarg2; + (arg1)->StepOver(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOver_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + (arg1)->StepOver(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOver_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::RunMode arg2 ; + lldb::SBError *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (lldb::RunMode)jarg2; + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->StepOver(arg2,*arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInto_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::RunMode arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (lldb::RunMode)jarg2; + (arg1)->StepInto(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInto_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + (arg1)->StepInto(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInto_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + lldb::RunMode arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = (lldb::RunMode)jarg3; + (arg1)->StepInto((char const *)arg2,arg3); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInto_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->StepInto((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInto_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jlong jarg4, jobject jarg4_, jint jarg5) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBError *arg4 = 0 ; + lldb::RunMode arg5 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBError **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + arg5 = (lldb::RunMode)jarg5; + (arg1)->StepInto((char const *)arg2,arg3,*arg4,arg5); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInto_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jlong jarg4, jobject jarg4_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBError *arg4 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + arg3 = (uint32_t)jarg3; + arg4 = *(lldb::SBError **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->StepInto((char const *)arg2,arg3,*arg4); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOut_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + (arg1)->StepOut(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOut_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBError *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->StepOut(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOutOfFrame_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBFrame *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame & reference is null"); + return ; + } + (arg1)->StepOutOfFrame(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepOutOfFrame_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBFrame *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame & reference is null"); + return ; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->StepOutOfFrame(*arg2,*arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInstruction_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->StepInstruction(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1StepInstruction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jlong jarg3, jobject jarg3_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool arg2 ; + lldb::SBError *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = jarg2 ? true : false; + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->StepInstruction(arg2,*arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1StepOverUntil(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBFrame *arg2 = 0 ; + lldb::SBFileSpec *arg3 = 0 ; + uint32_t arg4 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame & reference is null"); + return 0; + } + arg3 = *(lldb::SBFileSpec **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg4 = (uint32_t)jarg4; + result = (arg1)->StepOverUntil(*arg2,*arg3,arg4); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1StepUsingScriptedThreadPlan_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->StepUsingScriptedThreadPlan((char const *)arg2); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1StepUsingScriptedThreadPlan_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + bool arg3 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = jarg3 ? true : false; + result = (arg1)->StepUsingScriptedThreadPlan((char const *)arg2,arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1StepUsingScriptedThreadPlan_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + bool arg4 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + arg4 = jarg4 ? true : false; + result = (arg1)->StepUsingScriptedThreadPlan((char const *)arg2,*arg3,arg4); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1JumpToLine(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBFileSpec *arg2 = 0 ; + uint32_t arg3 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBFileSpec **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFileSpec & reference is null"); + return 0; + } + arg3 = (uint32_t)jarg3; + result = (arg1)->JumpToLine(*arg2,arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1RunToAddress_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::addr_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->RunToAddress(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThread_1RunToAddress_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jobject jarg3_) { + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::addr_t arg2 ; + lldb::SBError *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->RunToAddress(arg2,*arg3); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1ReturnFromFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBFrame *arg2 = 0 ; + lldb::SBValue *arg3 = 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBFrame **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBFrame & reference is null"); + return 0; + } + arg3 = *(lldb::SBValue **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBValue & reference is null"); + return 0; + } + result = (arg1)->ReturnFromFrame(*arg2,*arg3); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1UnwindInnermostExpression(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->UnwindInnermostExpression(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1Suspend_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (bool)(arg1)->Suspend(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1Suspend_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBError *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (bool)(arg1)->Suspend(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1Resume_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (bool)(arg1)->Resume(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1Resume_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBError *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (bool)(arg1)->Resume(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1IsSuspended(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (bool)(arg1)->IsSuspended(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1IsStopped(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (bool)(arg1)->IsStopped(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetNumFrames(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (uint32_t)(arg1)->GetNumFrames(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetFrameAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + uint32_t arg2 ; + lldb::SBFrame result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetFrameAtIndex(arg2); + *(lldb::SBFrame **)&jresult = new lldb::SBFrame((const lldb::SBFrame &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetSelectedFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBFrame result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->GetSelectedFrame(); + *(lldb::SBFrame **)&jresult = new lldb::SBFrame((const lldb::SBFrame &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1SetSelectedFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + uint32_t arg2 ; + lldb::SBFrame result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->SetSelectedFrame(arg2); + *(lldb::SBFrame **)&jresult = new lldb::SBFrame((const lldb::SBFrame &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetProcess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->GetProcess(); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1GetDescription_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)((lldb::SBThread const *)arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1GetDescription_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = jarg3 ? true : false; + result = (bool)((lldb::SBThread const *)arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1GetStatus(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)((lldb::SBThread const *)arg1)->GetStatus(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetExtendedBacktraceThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->GetExtendedBacktraceThread((char const *)arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetExtendedBacktraceOriginatingIndexID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (uint32_t)(arg1)->GetExtendedBacktraceOriginatingIndexID(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetCurrentException(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->GetCurrentException(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetCurrentExceptionBacktrace(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (arg1)->GetCurrentExceptionBacktrace(); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1SafeToCallFunctions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = (bool)(arg1)->SafeToCallFunctions(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBThread_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBThread *arg1 = (lldb::SBThread *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + result = lldb_SBThread___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThreadCollection_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBThreadCollection *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBThreadCollection *)new lldb::SBThreadCollection(); + *(lldb::SBThreadCollection **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThreadCollection_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThreadCollection *arg1 = 0 ; + lldb::SBThreadCollection *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadCollection **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBThreadCollection const & reference is null"); + return 0; + } + result = (lldb::SBThreadCollection *)new lldb::SBThreadCollection((lldb::SBThreadCollection const &)*arg1); + *(lldb::SBThreadCollection **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBThreadCollection(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBThreadCollection *arg1 = (lldb::SBThreadCollection *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBThreadCollection **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThreadCollection_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThreadCollection *arg1 = (lldb::SBThreadCollection *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadCollection **)&jarg1; + result = (bool)((lldb::SBThreadCollection const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadCollection_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThreadCollection *arg1 = (lldb::SBThreadCollection *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadCollection **)&jarg1; + result = (arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadCollection_1GetThreadAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBThreadCollection *arg1 = (lldb::SBThreadCollection *) 0 ; + size_t arg2 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadCollection **)&jarg1; + arg2 = (size_t)jarg2; + result = (arg1)->GetThreadAtIndex(arg2); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThreadPlan_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBThreadPlan *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBThreadPlan *)new lldb::SBThreadPlan(); + *(lldb::SBThreadPlan **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThreadPlan_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = 0 ; + lldb::SBThreadPlan *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBThreadPlan const & reference is null"); + return 0; + } + result = (lldb::SBThreadPlan *)new lldb::SBThreadPlan((lldb::SBThreadPlan const &)*arg1); + *(lldb::SBThreadPlan **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThreadPlan_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + lldb::ThreadPlanSP *arg1 = 0 ; + lldb::SBThreadPlan *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::ThreadPlanSP **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::ThreadPlanSP const & reference is null"); + return 0; + } + result = (lldb::SBThreadPlan *)new lldb::SBThreadPlan((lldb::ThreadPlanSP const &)*arg1); + *(lldb::SBThreadPlan **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBThreadPlan_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBThread *arg1 = 0 ; + char *arg2 = (char *) 0 ; + lldb::SBThreadPlan *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThread **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBThread & reference is null"); + return 0; + } + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (lldb::SBThreadPlan *)new lldb::SBThreadPlan(*arg1,(char const *)arg2); + *(lldb::SBThreadPlan **)&jresult = result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBThreadPlan(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1IsValid_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1GetStopReason(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + lldb::StopReason result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = (lldb::StopReason)(arg1)->GetStopReason(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1GetStopReasonDataCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = (arg1)->GetStopReasonDataCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1GetStopReasonDataAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jobject jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + uint32_t arg2 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (uint64_t)(arg1)->GetStopReasonDataAtIndex(arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1GetThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = ((lldb::SBThreadPlan const *)arg1)->GetThread(); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)((lldb::SBThreadPlan const *)arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1SetPlanComplete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetPlanComplete(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1IsPlanComplete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = (bool)(arg1)->IsPlanComplete(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1IsPlanStale(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = (bool)(arg1)->IsPlanStale(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1GetStopOthers(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + result = (bool)(arg1)->GetStopOthers(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1SetStopOthers(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetStopOthers(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepOverRange(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + lldb::SBAddress *arg2 = 0 ; + lldb::addr_t arg3 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->QueueThreadPlanForStepOverRange(*arg2,arg3); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepInRange(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + lldb::SBAddress *arg2 = 0 ; + lldb::addr_t arg3 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = *(lldb::SBAddress **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBAddress & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->QueueThreadPlanForStepInRange(*arg2,arg3); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepOut_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jboolean jarg3) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + uint32_t arg2 ; + bool arg3 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = jarg3 ? true : false; + result = (arg1)->QueueThreadPlanForStepOut(arg2,arg3); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepOut_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + uint32_t arg2 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->QueueThreadPlanForStepOut(arg2); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForRunToAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + lldb::SBAddress arg2 ; + lldb::SBAddress *argp2 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + argp2 = *(lldb::SBAddress **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBAddress"); + return 0; + } + arg2 = *argp2; + result = (arg1)->QueueThreadPlanForRunToAddress(arg2); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepScripted_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->QueueThreadPlanForStepScripted((char const *)arg2); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepScripted_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError *arg3 = 0 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->QueueThreadPlanForStepScripted((char const *)arg2,*arg3); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThreadPlan_1QueueThreadPlanForStepScripted_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBThreadPlan *arg1 = (lldb::SBThreadPlan *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBStructuredData *arg3 = 0 ; + lldb::SBError *arg4 = 0 ; + lldb::SBThreadPlan result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBThreadPlan **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBStructuredData **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return 0; + } + arg4 = *(lldb::SBError **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->QueueThreadPlanForStepScripted((char const *)arg2,*arg3,*arg4); + *(lldb::SBThreadPlan **)&jresult = new lldb::SBThreadPlan((const lldb::SBThreadPlan &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTrace(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTrace *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTrace *)new lldb::SBTrace(); + *(lldb::SBTrace **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTrace_1GetTraceData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg6) { + jlong jresult = 0 ; + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + lldb::SBError *arg2 = 0 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + size_t arg5 ; + lldb::tid_t arg6 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTrace **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = (size_t)jarg5; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg6); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg6, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg6 = 0; + if (sz > 0) { + arg6 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetTraceData(*arg2,arg3,arg4,arg5,arg6); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTrace_1GetMetaData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jlong jarg4, jlong jarg5, jobject jarg6) { + jlong jresult = 0 ; + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + lldb::SBError *arg2 = 0 ; + void *arg3 = (void *) 0 ; + size_t arg4 ; + size_t arg5 ; + lldb::tid_t arg6 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTrace **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + arg3 = *(void **)&jarg3; + arg4 = (size_t)jarg4; + arg5 = (size_t)jarg5; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg6) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg6); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg6, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg6 = 0; + if (sz > 0) { + arg6 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetMetaData(*arg2,arg3,arg4,arg5,arg6); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTrace_1StopTrace(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::tid_t arg3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTrace **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->StopTrace(*arg2,arg3); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTrace_1GetTraceConfig(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + lldb::SBTraceOptions *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTrace **)&jarg1; + arg2 = *(lldb::SBTraceOptions **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTraceOptions & reference is null"); + return ; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return ; + } + (arg1)->GetTraceConfig(*arg2,*arg3); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTrace_1GetTraceUID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + lldb::user_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTrace **)&jarg1; + result = (lldb::user_id_t)(arg1)->GetTraceUID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTrace_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTrace **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTrace(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTrace *arg1 = (lldb::SBTrace *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTrace **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTraceOptions(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTraceOptions *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTraceOptions *)new lldb::SBTraceOptions(); + *(lldb::SBTraceOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1getType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + lldb::TraceType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + result = (lldb::TraceType)((lldb::SBTraceOptions const *)arg1)->getType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1getTraceBufferSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + result = (uint64_t)((lldb::SBTraceOptions const *)arg1)->getTraceBufferSize(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1getTraceParams(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + lldb::SBError *arg2 = 0 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->getTraceParams(*arg2); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1getMetaDataBufferSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + result = (uint64_t)((lldb::SBTraceOptions const *)arg1)->getMetaDataBufferSize(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1setTraceParams(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + lldb::SBStructuredData *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + arg2 = *(lldb::SBStructuredData **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStructuredData & reference is null"); + return ; + } + (arg1)->setTraceParams(*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1setType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + lldb::TraceType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + arg2 = (lldb::TraceType)jarg2; + (arg1)->setType(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1setTraceBufferSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + uint64_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->setTraceBufferSize(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1setMetaDataBufferSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + uint64_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->setMetaDataBufferSize(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1setThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + lldb::tid_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return ; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::tid_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + (arg1)->setThreadID(arg2); +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1getThreadID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + lldb::tid_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + result = (lldb::tid_t)(arg1)->getThreadID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTraceOptions_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTraceOptions(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTraceOptions *arg1 = (lldb::SBTraceOptions *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTraceOptions **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeMember_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeMember *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeMember *)new lldb::SBTypeMember(); + *(lldb::SBTypeMember **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeMember_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMember *arg1 = 0 ; + lldb::SBTypeMember *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeMember const & reference is null"); + return 0; + } + result = (lldb::SBTypeMember *)new lldb::SBTypeMember((lldb::SBTypeMember const &)*arg1); + *(lldb::SBTypeMember **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeMember(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeMember **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeMember_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (bool)((lldb::SBTypeMember const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeMember_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeMember_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (arg1)->GetType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTypeMember_1GetOffsetInBytes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (uint64_t)(arg1)->GetOffsetInBytes(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTypeMember_1GetOffsetInBits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (uint64_t)(arg1)->GetOffsetInBits(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeMember_1IsBitfield(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (bool)(arg1)->IsBitfield(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeMember_1GetBitfieldSizeInBits(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = (uint32_t)(arg1)->GetBitfieldSizeInBits(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeMember_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeMember *arg1 = (lldb::SBTypeMember *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMember **)&jarg1; + result = lldb_SBTypeMember___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeMemberFunction_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeMemberFunction *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeMemberFunction *)new lldb::SBTypeMemberFunction(); + *(lldb::SBTypeMemberFunction **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeMemberFunction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = 0 ; + lldb::SBTypeMemberFunction *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeMemberFunction const & reference is null"); + return 0; + } + result = (lldb::SBTypeMemberFunction *)new lldb::SBTypeMemberFunction((lldb::SBTypeMemberFunction const &)*arg1); + *(lldb::SBTypeMemberFunction **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeMemberFunction(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (bool)((lldb::SBTypeMemberFunction const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetDemangledName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (char *)(arg1)->GetDemangledName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetMangledName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (char *)(arg1)->GetMangledName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (arg1)->GetType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetReturnType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (arg1)->GetReturnType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetNumberOfArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfArguments(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetArgumentTypeAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + uint32_t arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetArgumentTypeAtIndex(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + lldb::MemberFunctionKind result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = (lldb::MemberFunctionKind)(arg1)->GetKind(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeMemberFunction_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeMemberFunction *arg1 = (lldb::SBTypeMemberFunction *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeMemberFunction **)&jarg1; + result = lldb_SBTypeMemberFunction___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBType_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBType *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBType *)new lldb::SBType(); + *(lldb::SBType **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBType_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = 0 ; + lldb::SBType *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBType const & reference is null"); + return 0; + } + result = (lldb::SBType *)new lldb::SBType((lldb::SBType const &)*arg1); + *(lldb::SBType **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBType(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBType **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBType_1GetByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint64_t)(arg1)->GetByteSize(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsPointerType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsPointerType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsReferenceType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsReferenceType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsFunctionType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsFunctionType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsPolymorphicClass(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsPolymorphicClass(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsArrayType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsArrayType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsVectorType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsVectorType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsTypedefType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsTypedefType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsAnonymousType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsAnonymousType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsScopedEnumerationType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsScopedEnumerationType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetPointerType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetPointerType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetPointeeType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetPointeeType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetReferenceType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetReferenceType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetTypedefedType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetTypedefedType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetDereferencedType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetDereferencedType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetUnqualifiedType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetUnqualifiedType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetCanonicalType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetCanonicalType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetEnumerationIntegerType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetEnumerationIntegerType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetArrayElementType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetArrayElementType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetArrayType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint64_t arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->GetArrayType(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetVectorElementType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetVectorElementType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBType_1GetBasicType_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::BasicType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (lldb::BasicType)(arg1)->GetBasicType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetBasicType_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::BasicType arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (lldb::BasicType)jarg2; + result = (arg1)->GetBasicType(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetNumberOfFields(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfFields(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetNumberOfDirectBaseClasses(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfDirectBaseClasses(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetNumberOfVirtualBaseClasses(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfVirtualBaseClasses(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetFieldAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t arg2 ; + lldb::SBTypeMember result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetFieldAtIndex(arg2); + *(lldb::SBTypeMember **)&jresult = new lldb::SBTypeMember((const lldb::SBTypeMember &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetDirectBaseClassAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t arg2 ; + lldb::SBTypeMember result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetDirectBaseClassAtIndex(arg2); + *(lldb::SBTypeMember **)&jresult = new lldb::SBTypeMember((const lldb::SBTypeMember &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetVirtualBaseClassAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t arg2 ; + lldb::SBTypeMember result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetVirtualBaseClassAtIndex(arg2); + *(lldb::SBTypeMember **)&jresult = new lldb::SBTypeMember((const lldb::SBTypeMember &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetEnumMembers(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBTypeEnumMemberList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetEnumMembers(); + *(lldb::SBTypeEnumMemberList **)&jresult = new lldb::SBTypeEnumMemberList((const lldb::SBTypeEnumMemberList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetModule(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBModule result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetModule(); + *(lldb::SBModule **)&jresult = new lldb::SBModule((const lldb::SBModule &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBType_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBType_1GetDisplayTypeName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (char *)(arg1)->GetDisplayTypeName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBType_1GetTypeClass(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::TypeClass result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (lldb::TypeClass)(arg1)->GetTypeClass(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetNumberOfTemplateArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfTemplateArguments(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetTemplateArgumentType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTemplateArgumentType(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBType_1GetTemplateArgumentKind(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jint jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t arg2 ; + lldb::TemplateArgumentKind result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (lldb::TemplateArgumentKind)(arg1)->GetTemplateArgumentKind(arg2); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetFunctionReturnType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetFunctionReturnType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetFunctionArgumentTypes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + lldb::SBTypeList result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (arg1)->GetFunctionArgumentTypes(); + *(lldb::SBTypeList **)&jresult = new lldb::SBTypeList((const lldb::SBTypeList &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetNumberOfMemberFunctions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfMemberFunctions(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetMemberFunctionAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t arg2 ; + lldb::SBTypeMemberFunction result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetMemberFunctionAtIndex(arg2); + *(lldb::SBTypeMemberFunction **)&jresult = new lldb::SBTypeMemberFunction((const lldb::SBTypeMemberFunction &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBType_1IsTypeComplete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (bool)(arg1)->IsTypeComplete(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBType_1GetTypeFlags(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = (uint32_t)(arg1)->GetTypeFlags(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBType_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBType *arg1 = (lldb::SBType *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBType **)&jarg1; + result = lldb_SBType___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeList(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeList *)new lldb::SBTypeList(); + *(lldb::SBTypeList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeList_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeList **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeList_1Append(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ; + lldb::SBType arg2 ; + lldb::SBType *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeList **)&jarg1; + argp2 = *(lldb::SBType **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return ; + } + arg2 = *argp2; + (arg1)->Append(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeList_1GetTypeAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ; + uint32_t arg2 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeList **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypeAtIndex(arg2); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeList **)&jarg1; + result = (uint32_t)(arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeList *arg1 = (lldb::SBTypeList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeCategory_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeCategory *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeCategory *)new lldb::SBTypeCategory(); + *(lldb::SBTypeCategory **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeCategory_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = 0 ; + lldb::SBTypeCategory *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeCategory const & reference is null"); + return 0; + } + result = (lldb::SBTypeCategory *)new lldb::SBTypeCategory((lldb::SBTypeCategory const &)*arg1); + *(lldb::SBTypeCategory **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeCategory(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (bool)((lldb::SBTypeCategory const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (bool)(arg1)->GetEnabled(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1SetEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetEnabled(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetLanguageAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jint jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (lldb::LanguageType)(arg1)->GetLanguageAtIndex(arg2); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetNumLanguages(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (uint32_t)(arg1)->GetNumLanguages(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1AddLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::LanguageType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (lldb::LanguageType)jarg2; + (arg1)->AddLanguage(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetNumFormats(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (uint32_t)(arg1)->GetNumFormats(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetNumSummaries(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (uint32_t)(arg1)->GetNumSummaries(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetNumFilters(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (uint32_t)(arg1)->GetNumFilters(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetNumSynthetics(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = (uint32_t)(arg1)->GetNumSynthetics(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetTypeNameSpecifierForFilterAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeNameSpecifier result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypeNameSpecifierForFilterAtIndex(arg2); + *(lldb::SBTypeNameSpecifier **)&jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetTypeNameSpecifierForFormatAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeNameSpecifier result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypeNameSpecifierForFormatAtIndex(arg2); + *(lldb::SBTypeNameSpecifier **)&jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetTypeNameSpecifierForSummaryAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeNameSpecifier result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypeNameSpecifierForSummaryAtIndex(arg2); + *(lldb::SBTypeNameSpecifier **)&jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetTypeNameSpecifierForSyntheticAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeNameSpecifier result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypeNameSpecifierForSyntheticAtIndex(arg2); + *(lldb::SBTypeNameSpecifier **)&jresult = new lldb::SBTypeNameSpecifier((const lldb::SBTypeNameSpecifier &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetFilterForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeFilter result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetFilterForType(arg2); + *(lldb::SBTypeFilter **)&jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetFormatForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeFormat result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetFormatForType(arg2); + *(lldb::SBTypeFormat **)&jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetSummaryForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetSummaryForType(arg2); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetSyntheticForType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (arg1)->GetSyntheticForType(arg2); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetFilterAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeFilter result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetFilterAtIndex(arg2); + *(lldb::SBTypeFilter **)&jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetFormatAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeFormat result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetFormatAtIndex(arg2); + *(lldb::SBTypeFormat **)&jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetSummaryAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetSummaryAtIndex(arg2); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1GetSyntheticAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetSyntheticAtIndex(arg2); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1AddTypeFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeFormat arg3 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeFormat *argp3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + argp3 = *(lldb::SBTypeFormat **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeFormat"); + return 0; + } + arg3 = *argp3; + result = (bool)(arg1)->AddTypeFormat(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1DeleteTypeFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (bool)(arg1)->DeleteTypeFormat(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1AddTypeSummary(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeSummary arg3 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeSummary *argp3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + argp3 = *(lldb::SBTypeSummary **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeSummary"); + return 0; + } + arg3 = *argp3; + result = (bool)(arg1)->AddTypeSummary(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1DeleteTypeSummary(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (bool)(arg1)->DeleteTypeSummary(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1AddTypeFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeFilter arg3 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeFilter *argp3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + argp3 = *(lldb::SBTypeFilter **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeFilter"); + return 0; + } + arg3 = *argp3; + result = (bool)(arg1)->AddTypeFilter(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1DeleteTypeFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (bool)(arg1)->DeleteTypeFilter(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1AddTypeSynthetic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeSynthetic arg3 ; + lldb::SBTypeNameSpecifier *argp2 ; + lldb::SBTypeSynthetic *argp3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + argp3 = *(lldb::SBTypeSynthetic **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeSynthetic"); + return 0; + } + arg3 = *argp3; + result = (bool)(arg1)->AddTypeSynthetic(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1DeleteTypeSynthetic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + lldb::SBTypeNameSpecifier arg2 ; + lldb::SBTypeNameSpecifier *argp2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + argp2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeNameSpecifier"); + return 0; + } + arg2 = *argp2; + result = (bool)(arg1)->DeleteTypeSynthetic(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeCategory_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeCategory *arg1 = (lldb::SBTypeCategory *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeCategory **)&jarg1; + result = lldb_SBTypeCategory___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeEnumMember_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeEnumMember *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeEnumMember *)new lldb::SBTypeEnumMember(); + *(lldb::SBTypeEnumMember **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeEnumMember_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = 0 ; + lldb::SBTypeEnumMember *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeEnumMember const & reference is null"); + return 0; + } + result = (lldb::SBTypeEnumMember *)new lldb::SBTypeEnumMember((lldb::SBTypeEnumMember const &)*arg1); + *(lldb::SBTypeEnumMember **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeEnumMember(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + result = (bool)((lldb::SBTypeEnumMember const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1GetValueAsSigned(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + int64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + result = (int64_t)(arg1)->GetValueAsSigned(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1GetValueAsUnsigned(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + result = (uint64_t)(arg1)->GetValueAsUnsigned(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + result = (arg1)->GetType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeEnumMember_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeEnumMember *arg1 = (lldb::SBTypeEnumMember *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMember **)&jarg1; + result = lldb_SBTypeEnumMember___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeEnumMemberList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeEnumMemberList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeEnumMemberList *)new lldb::SBTypeEnumMemberList(); + *(lldb::SBTypeEnumMemberList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeEnumMemberList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeEnumMemberList *arg1 = 0 ; + lldb::SBTypeEnumMemberList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMemberList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeEnumMemberList const & reference is null"); + return 0; + } + result = (lldb::SBTypeEnumMemberList *)new lldb::SBTypeEnumMemberList((lldb::SBTypeEnumMemberList const &)*arg1); + *(lldb::SBTypeEnumMemberList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeEnumMemberList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeEnumMemberList *arg1 = (lldb::SBTypeEnumMemberList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeEnumMemberList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeEnumMemberList_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeEnumMemberList *arg1 = (lldb::SBTypeEnumMemberList *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMemberList **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeEnumMemberList_1Append(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBTypeEnumMemberList *arg1 = (lldb::SBTypeEnumMemberList *) 0 ; + lldb::SBTypeEnumMember arg2 ; + lldb::SBTypeEnumMember *argp2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeEnumMemberList **)&jarg1; + argp2 = *(lldb::SBTypeEnumMember **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBTypeEnumMember"); + return ; + } + arg2 = *argp2; + (arg1)->Append(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeEnumMemberList_1GetTypeEnumMemberAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBTypeEnumMemberList *arg1 = (lldb::SBTypeEnumMemberList *) 0 ; + uint32_t arg2 ; + lldb::SBTypeEnumMember result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMemberList **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetTypeEnumMemberAtIndex(arg2); + *(lldb::SBTypeEnumMember **)&jresult = new lldb::SBTypeEnumMember((const lldb::SBTypeEnumMember &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeEnumMemberList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeEnumMemberList *arg1 = (lldb::SBTypeEnumMemberList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeEnumMemberList **)&jarg1; + result = (uint32_t)(arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFilter_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeFilter *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeFilter *)new lldb::SBTypeFilter(); + *(lldb::SBTypeFilter **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFilter_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + uint32_t arg1 ; + lldb::SBTypeFilter *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (uint32_t)jarg1; + result = (lldb::SBTypeFilter *)new lldb::SBTypeFilter(arg1); + *(lldb::SBTypeFilter **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFilter_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeFilter *arg1 = 0 ; + lldb::SBTypeFilter *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeFilter const & reference is null"); + return 0; + } + result = (lldb::SBTypeFilter *)new lldb::SBTypeFilter((lldb::SBTypeFilter const &)*arg1); + *(lldb::SBTypeFilter **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeFilter(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + result = (bool)((lldb::SBTypeFilter const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1IsEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + lldb::SBTypeFilter *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + arg2 = *(lldb::SBTypeFilter **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeFilter & reference is null"); + return 0; + } + result = (bool)(arg1)->IsEqualTo(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1GetNumberOfExpressionPaths(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + result = (uint32_t)(arg1)->GetNumberOfExpressionPaths(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1GetExpressionPathAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jstring jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + uint32_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (char *)(arg1)->GetExpressionPathAtIndex(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1ReplaceExpressionPathAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jstring jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + uint32_t arg2 ; + char *arg3 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (bool)(arg1)->ReplaceExpressionPathAtIndex(arg2,(char const *)arg3); + jresult = (jboolean)result; + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1AppendExpressionPath(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->AppendExpressionPath((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1GetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + result = (uint32_t)(arg1)->GetOptions(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1SetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetOptions(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeFilter_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeFilter *arg1 = (lldb::SBTypeFilter *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFilter **)&jarg1; + result = lldb_SBTypeFilter___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFormat_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeFormat *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat(); + *(lldb::SBTypeFormat **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFormat_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2) { + jlong jresult = 0 ; + lldb::Format arg1 ; + uint32_t arg2 ; + lldb::SBTypeFormat *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (lldb::Format)jarg1; + arg2 = (uint32_t)jarg2; + result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat(arg1,arg2); + *(lldb::SBTypeFormat **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFormat_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jint jarg1) { + jlong jresult = 0 ; + lldb::Format arg1 ; + lldb::SBTypeFormat *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (lldb::Format)jarg1; + result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat(arg1); + *(lldb::SBTypeFormat **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFormat_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + uint32_t arg2 ; + lldb::SBTypeFormat *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (uint32_t)jarg2; + result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat((char const *)arg1,arg2); + *(lldb::SBTypeFormat **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFormat_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeFormat *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat((char const *)arg1); + *(lldb::SBTypeFormat **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeFormat_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeFormat *arg1 = 0 ; + lldb::SBTypeFormat *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeFormat const & reference is null"); + return 0; + } + result = (lldb::SBTypeFormat *)new lldb::SBTypeFormat((lldb::SBTypeFormat const &)*arg1); + *(lldb::SBTypeFormat **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeFormat(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + result = (bool)((lldb::SBTypeFormat const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1IsEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + lldb::SBTypeFormat *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + arg2 = *(lldb::SBTypeFormat **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeFormat & reference is null"); + return 0; + } + result = (bool)(arg1)->IsEqualTo(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1GetFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + lldb::Format result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + result = (lldb::Format)(arg1)->GetFormat(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1GetTypeName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + result = (char *)(arg1)->GetTypeName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1GetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + result = (uint32_t)(arg1)->GetOptions(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1SetFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + lldb::Format arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + arg2 = (lldb::Format)jarg2; + (arg1)->SetFormat(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1SetTypeName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetTypeName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1SetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetOptions(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeFormat_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeFormat *arg1 = (lldb::SBTypeFormat *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeFormat **)&jarg1; + result = lldb_SBTypeFormat___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeNameSpecifier_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeNameSpecifier *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier(); + *(lldb::SBTypeNameSpecifier **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeNameSpecifier_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + bool arg2 ; + lldb::SBTypeNameSpecifier *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = jarg2 ? true : false; + result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier((char const *)arg1,arg2); + *(lldb::SBTypeNameSpecifier **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeNameSpecifier_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeNameSpecifier *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier((char const *)arg1); + *(lldb::SBTypeNameSpecifier **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeNameSpecifier_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBType arg1 ; + lldb::SBType *argp1 ; + lldb::SBTypeNameSpecifier *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + argp1 = *(lldb::SBType **)&jarg1; + if (!argp1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg1 = *argp1; + result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier(arg1); + *(lldb::SBTypeNameSpecifier **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeNameSpecifier_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = 0 ; + lldb::SBTypeNameSpecifier *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeNameSpecifier const & reference is null"); + return 0; + } + result = (lldb::SBTypeNameSpecifier *)new lldb::SBTypeNameSpecifier((lldb::SBTypeNameSpecifier const &)*arg1); + *(lldb::SBTypeNameSpecifier **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeNameSpecifier(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + result = (bool)((lldb::SBTypeNameSpecifier const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1IsEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + lldb::SBTypeNameSpecifier *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + arg2 = *(lldb::SBTypeNameSpecifier **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeNameSpecifier & reference is null"); + return 0; + } + result = (bool)(arg1)->IsEqualTo(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + result = (arg1)->GetType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1IsRegex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + result = (bool)(arg1)->IsRegex(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeNameSpecifier_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeNameSpecifier *arg1 = (lldb::SBTypeNameSpecifier *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeNameSpecifier **)&jarg1; + result = lldb_SBTypeNameSpecifier___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeSummaryOptions_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeSummaryOptions *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeSummaryOptions *)new lldb::SBTypeSummaryOptions(); + *(lldb::SBTypeSummaryOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeSummaryOptions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeSummaryOptions *arg1 = 0 ; + lldb::SBTypeSummaryOptions *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeSummaryOptions const & reference is null"); + return 0; + } + result = (lldb::SBTypeSummaryOptions *)new lldb::SBTypeSummaryOptions((lldb::SBTypeSummaryOptions const &)*arg1); + *(lldb::SBTypeSummaryOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeSummaryOptions(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeSummaryOptions *arg1 = (lldb::SBTypeSummaryOptions *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummaryOptions_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSummaryOptions *arg1 = (lldb::SBTypeSummaryOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTypeSummaryOptions_1GetLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBTypeSummaryOptions *arg1 = (lldb::SBTypeSummaryOptions *) 0 ; + lldb::LanguageType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + result = (lldb::LanguageType)(arg1)->GetLanguage(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBTypeSummaryOptions_1GetCapping(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBTypeSummaryOptions *arg1 = (lldb::SBTypeSummaryOptions *) 0 ; + lldb::TypeSummaryCapping result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + result = (lldb::TypeSummaryCapping)(arg1)->GetCapping(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSummaryOptions_1SetLanguage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBTypeSummaryOptions *arg1 = (lldb::SBTypeSummaryOptions *) 0 ; + lldb::LanguageType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + arg2 = (lldb::LanguageType)jarg2; + (arg1)->SetLanguage(arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSummaryOptions_1SetCapping(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBTypeSummaryOptions *arg1 = (lldb::SBTypeSummaryOptions *) 0 ; + lldb::TypeSummaryCapping arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummaryOptions **)&jarg1; + arg2 = (lldb::TypeSummaryCapping)jarg2; + (arg1)->SetCapping(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeSummary_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeSummary *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeSummary *)new lldb::SBTypeSummary(); + *(lldb::SBTypeSummary **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1CreateWithSummaryString_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (uint32_t)jarg2; + result = lldb::SBTypeSummary::CreateWithSummaryString((char const *)arg1,arg2); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1CreateWithSummaryString_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = lldb::SBTypeSummary::CreateWithSummaryString((char const *)arg1); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1CreateWithFunctionName_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (uint32_t)jarg2; + result = lldb::SBTypeSummary::CreateWithFunctionName((char const *)arg1,arg2); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1CreateWithFunctionName_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = lldb::SBTypeSummary::CreateWithFunctionName((char const *)arg1); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1CreateWithScriptCode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (uint32_t)jarg2; + result = lldb::SBTypeSummary::CreateWithScriptCode((char const *)arg1,arg2); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1CreateWithScriptCode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = lldb::SBTypeSummary::CreateWithScriptCode((char const *)arg1); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeSummary_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeSummary *arg1 = 0 ; + lldb::SBTypeSummary *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeSummary const & reference is null"); + return 0; + } + result = (lldb::SBTypeSummary *)new lldb::SBTypeSummary((lldb::SBTypeSummary const &)*arg1); + *(lldb::SBTypeSummary **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeSummary(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = (bool)((lldb::SBTypeSummary const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1IsEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + lldb::SBTypeSummary *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + arg2 = *(lldb::SBTypeSummary **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeSummary & reference is null"); + return 0; + } + result = (bool)(arg1)->IsEqualTo(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1IsFunctionCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = (bool)(arg1)->IsFunctionCode(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1IsFunctionName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = (bool)(arg1)->IsFunctionName(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1IsSummaryString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = (bool)(arg1)->IsSummaryString(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1GetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = (char *)(arg1)->GetData(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1SetSummaryString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetSummaryString((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1SetFunctionName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetFunctionName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1SetFunctionCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetFunctionCode((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1GetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = (uint32_t)(arg1)->GetOptions(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1SetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetOptions(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeSummary_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeSummary *arg1 = (lldb::SBTypeSummary *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSummary **)&jarg1; + result = lldb_SBTypeSummary___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeSynthetic_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBTypeSynthetic *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBTypeSynthetic *)new lldb::SBTypeSynthetic(); + *(lldb::SBTypeSynthetic **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1CreateWithClassName_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (uint32_t)jarg2; + result = lldb::SBTypeSynthetic::CreateWithClassName((char const *)arg1,arg2); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1CreateWithClassName_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = lldb::SBTypeSynthetic::CreateWithClassName((char const *)arg1); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1CreateWithScriptCode_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + uint32_t arg2 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (uint32_t)jarg2; + result = lldb::SBTypeSynthetic::CreateWithScriptCode((char const *)arg1,arg2); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1CreateWithScriptCode_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + result = lldb::SBTypeSynthetic::CreateWithScriptCode((char const *)arg1); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBTypeSynthetic_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = 0 ; + lldb::SBTypeSynthetic *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeSynthetic const & reference is null"); + return 0; + } + result = (lldb::SBTypeSynthetic *)new lldb::SBTypeSynthetic((lldb::SBTypeSynthetic const &)*arg1); + *(lldb::SBTypeSynthetic **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBTypeSynthetic(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + result = (bool)((lldb::SBTypeSynthetic const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1IsEqualTo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + lldb::SBTypeSynthetic *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + arg2 = *(lldb::SBTypeSynthetic **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeSynthetic & reference is null"); + return 0; + } + result = (bool)(arg1)->IsEqualTo(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1IsClassCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + result = (bool)(arg1)->IsClassCode(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1GetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + result = (char *)(arg1)->GetData(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1SetClassName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetClassName((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1SetClassCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetClassCode((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1GetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + result = (uint32_t)(arg1)->GetOptions(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1SetOptions(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetOptions(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBTypeSynthetic_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBTypeSynthetic *arg1 = (lldb::SBTypeSynthetic *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBTypeSynthetic **)&jarg1; + result = lldb_SBTypeSynthetic___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBUnixSignals_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBUnixSignals *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBUnixSignals *)new lldb::SBUnixSignals(); + *(lldb::SBUnixSignals **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBUnixSignals_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBUnixSignals *arg1 = 0 ; + lldb::SBUnixSignals *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBUnixSignals const & reference is null"); + return 0; + } + result = (lldb::SBUnixSignals *)new lldb::SBUnixSignals((lldb::SBUnixSignals const &)*arg1); + *(lldb::SBUnixSignals **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBUnixSignals(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + delete arg1; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + result = (bool)((lldb::SBUnixSignals const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetSignalAsCString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jstring jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + result = (char *)((lldb::SBUnixSignals const *)arg1)->GetSignalAsCString(arg2); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetSignalNumberFromName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jint jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + char *arg2 = (char *) 0 ; + int32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (int32_t)((lldb::SBUnixSignals const *)arg1)->GetSignalNumberFromName((char const *)arg2); + jresult = (jint)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetShouldSuppress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + result = (bool)((lldb::SBUnixSignals const *)arg1)->GetShouldSuppress(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1SetShouldSuppress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + bool arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + arg3 = jarg3 ? true : false; + result = (bool)(arg1)->SetShouldSuppress(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetShouldStop(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + result = (bool)((lldb::SBUnixSignals const *)arg1)->GetShouldStop(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1SetShouldStop(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + bool arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + arg3 = jarg3 ? true : false; + result = (bool)(arg1)->SetShouldStop(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetShouldNotify(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + result = (bool)((lldb::SBUnixSignals const *)arg1)->GetShouldNotify(arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1SetShouldNotify(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jboolean jarg3) { + jboolean jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + bool arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + arg3 = jarg3 ? true : false; + result = (bool)(arg1)->SetShouldNotify(arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetNumSignals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + result = (int32_t)((lldb::SBUnixSignals const *)arg1)->GetNumSignals(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBUnixSignals_1GetSignalAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jint jresult = 0 ; + lldb::SBUnixSignals *arg1 = (lldb::SBUnixSignals *) 0 ; + int32_t arg2 ; + int32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBUnixSignals **)&jarg1; + arg2 = (int32_t)jarg2; + result = (int32_t)((lldb::SBUnixSignals const *)arg1)->GetSignalAtIndex(arg2); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBValue_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBValue *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBValue *)new lldb::SBValue(); + *(lldb::SBValue **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBValue_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = 0 ; + lldb::SBValue *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBValue const & reference is null"); + return 0; + } + result = (lldb::SBValue *)new lldb::SBValue((lldb::SBValue const &)*arg1); + *(lldb::SBValue **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBValue(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBValue **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValue_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetError(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBValue_1GetID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::user_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (lldb::user_id_t)(arg1)->GetID(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetTypeName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetTypeName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetDisplayTypeName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetDisplayTypeName(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetByteSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetByteSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1IsInScope(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->IsInScope(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBValue_1GetFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::Format result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (lldb::Format)(arg1)->GetFormat(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValue_1SetFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::Format arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (lldb::Format)jarg2; + (arg1)->SetFormat(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetValue(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsSigned_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBError *arg2 = 0 ; + int64_t arg3 ; + int64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + arg3 = (int64_t)jarg3; + result = (int64_t)(arg1)->GetValueAsSigned(*arg2,arg3); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsSigned_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBError *arg2 = 0 ; + int64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (int64_t)(arg1)->GetValueAsSigned(*arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsUnsigned_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jobject jarg3) { + jobject jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBError *arg2 = 0 ; + uint64_t arg3 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint64_t)(arg1)->GetValueAsUnsigned(*arg2,arg3); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsUnsigned_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jobject jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBError *arg2 = 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBError **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (uint64_t)(arg1)->GetValueAsUnsigned(*arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsSigned_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + int64_t arg2 ; + int64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (int64_t)jarg2; + result = (int64_t)(arg1)->GetValueAsSigned(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsSigned_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + int64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (int64_t)(arg1)->GetValueAsSigned(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsUnsigned_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jobject jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint64_t arg2 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (uint64_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (uint64_t)(arg1)->GetValueAsUnsigned(arg2); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueAsUnsigned_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint64_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (uint64_t)(arg1)->GetValueAsUnsigned(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::ValueType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (lldb::ValueType)(arg1)->GetValueType(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueDidChange(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->GetValueDidChange(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetSummary_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetSummary(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetSummary_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::SBTypeSummaryOptions *arg3 = 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = *(lldb::SBTypeSummaryOptions **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTypeSummaryOptions & reference is null"); + return 0; + } + result = (char *)(arg1)->GetSummary(*arg2,*arg3); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetObjectDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetObjectDescription(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetDynamicValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::DynamicValueType arg2 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (lldb::DynamicValueType)jarg2; + result = (arg1)->GetDynamicValue(arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetStaticValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetStaticValue(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetNonSyntheticValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetNonSyntheticValue(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBValue_1GetPreferDynamicValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::DynamicValueType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (lldb::DynamicValueType)(arg1)->GetPreferDynamicValue(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValue_1SetPreferDynamicValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::DynamicValueType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (lldb::DynamicValueType)jarg2; + (arg1)->SetPreferDynamicValue(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1GetPreferSyntheticValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->GetPreferSyntheticValue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValue_1SetPreferSyntheticValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetPreferSyntheticValue(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1IsDynamic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->IsDynamic(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1IsSynthetic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->IsSynthetic(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1IsSyntheticChildrenGenerated(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->IsSyntheticChildrenGenerated(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValue_1SetSyntheticChildrenGenerated(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetSyntheticChildrenGenerated(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1GetLocation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (char *)(arg1)->GetLocation(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1SetValueFromCString_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (bool)(arg1)->SetValueFromCString((char const *)arg2); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1SetValueFromCString_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBError *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (bool)(arg1)->SetValueFromCString((char const *)arg2,*arg3); + jresult = (jboolean)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetTypeFormat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBTypeFormat result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetTypeFormat(); + *(lldb::SBTypeFormat **)&jresult = new lldb::SBTypeFormat((const lldb::SBTypeFormat &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetTypeSummary(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBTypeSummary result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetTypeSummary(); + *(lldb::SBTypeSummary **)&jresult = new lldb::SBTypeSummary((const lldb::SBTypeSummary &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetTypeFilter(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBTypeFilter result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetTypeFilter(); + *(lldb::SBTypeFilter **)&jresult = new lldb::SBTypeFilter((const lldb::SBTypeFilter &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetTypeSynthetic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBTypeSynthetic result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetTypeSynthetic(); + *(lldb::SBTypeSynthetic **)&jresult = new lldb::SBTypeSynthetic((const lldb::SBTypeSynthetic &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetChildAtIndex_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint32_t arg2 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetChildAtIndex(arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetChildAtIndex_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jint jarg3, jboolean jarg4) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint32_t arg2 ; + lldb::DynamicValueType arg3 ; + bool arg4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = (lldb::DynamicValueType)jarg3; + arg4 = jarg4 ? true : false; + result = (arg1)->GetChildAtIndex(arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1CreateChildAtOffset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t arg3 ; + lldb::SBType arg4 ; + lldb::SBType *argp4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (uint32_t)jarg3; + argp4 = *(lldb::SBType **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg4 = *argp4; + result = (arg1)->CreateChildAtOffset((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1Cast(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBType arg2 ; + lldb::SBType *argp2 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + argp2 = *(lldb::SBType **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg2 = *argp2; + result = (arg1)->Cast(arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1CreateValueFromExpression_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (arg1)->CreateValueFromExpression((char const *)arg2,(char const *)arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1CreateValueFromExpression_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + lldb::SBExpressionOptions *arg4 = 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = *(lldb::SBExpressionOptions **)&jarg4; + if (!arg4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExpressionOptions & reference is null"); + return 0; + } + result = (arg1)->CreateValueFromExpression((char const *)arg2,(char const *)arg3,*arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1CreateValueFromAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jobject jarg3, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::addr_t arg3 ; + lldb::SBType arg4 ; + lldb::SBType *argp4 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg4_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg3); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg3, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg3 = 0; + if (sz > 0) { + arg3 = (lldb::addr_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + argp4 = *(lldb::SBType **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg4 = *argp4; + result = (arg1)->CreateValueFromAddress((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1CreateValueFromData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) { + jlong jresult = 0 ; + 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; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + (void)jarg4_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + argp3 = *(lldb::SBData **)&jarg3; + if (!argp3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBData"); + return 0; + } + arg3 = *argp3; + argp4 = *(lldb::SBType **)&jarg4; + if (!argp4) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null lldb::SBType"); + return 0; + } + arg4 = *argp4; + result = (arg1)->CreateValueFromData((char const *)arg2,arg3,arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetType(); + *(lldb::SBType **)&jresult = new lldb::SBType((const lldb::SBType &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetIndexOfChildWithName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (uint32_t)(arg1)->GetIndexOfChildWithName((char const *)arg2); + jresult = (jlong)result; + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetChildMemberWithName_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->GetChildMemberWithName((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetChildMemberWithName_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::DynamicValueType arg3 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = (lldb::DynamicValueType)jarg3; + result = (arg1)->GetChildMemberWithName((char const *)arg2,arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetValueForExpressionPath(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = (arg1)->GetValueForExpressionPath((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetDeclaration(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBDeclaration result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetDeclaration(); + *(lldb::SBDeclaration **)&jresult = new lldb::SBDeclaration((const lldb::SBDeclaration &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1MightHaveChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->MightHaveChildren(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1IsRuntimeSupportValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->IsRuntimeSupportValue(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetNumChildren_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (uint32_t)(arg1)->GetNumChildren(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetNumChildren_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint32_t arg2 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (uint32_t)(arg1)->GetNumChildren(arg2); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetOpaqueType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + void *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (void *)(arg1)->GetOpaqueType(); + *(void **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1Dereference(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->Dereference(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1AddressOf(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->AddressOf(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1TypeIsPointerType(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (bool)(arg1)->TypeIsPointerType(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetTarget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBTarget result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetTarget(); + *(lldb::SBTarget **)&jresult = new lldb::SBTarget((const lldb::SBTarget &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetProcess(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBProcess result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetProcess(); + *(lldb::SBProcess **)&jresult = new lldb::SBProcess((const lldb::SBProcess &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetThread(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBThread result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetThread(); + *(lldb::SBThread **)&jresult = new lldb::SBThread((const lldb::SBThread &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetFrame(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBFrame result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetFrame(); + *(lldb::SBFrame **)&jresult = new lldb::SBFrame((const lldb::SBFrame &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1Watch(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jboolean jarg3, jboolean jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool arg2 ; + bool arg3 ; + bool arg4 ; + lldb::SBError *arg5 = 0 ; + lldb::SBWatchpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = jarg2 ? true : false; + arg3 = jarg3 ? true : false; + arg4 = jarg4 ? true : false; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->Watch(arg2,arg3,arg4,*arg5); + *(lldb::SBWatchpoint **)&jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1WatchPointee(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2, jboolean jarg3, jboolean jarg4, jlong jarg5, jobject jarg5_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + bool arg2 ; + bool arg3 ; + bool arg4 ; + lldb::SBError *arg5 = 0 ; + lldb::SBWatchpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg5_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = jarg2 ? true : false; + arg3 = jarg3 ? true : false; + arg4 = jarg4 ? true : false; + arg5 = *(lldb::SBError **)&jarg5; + if (!arg5) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (arg1)->WatchPointee(arg2,arg3,arg4,*arg5); + *(lldb::SBWatchpoint **)&jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetDescription(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1GetExpressionPath_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + result = (bool)(arg1)->GetExpressionPath(*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetPointeeData_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint32_t arg2 ; + uint32_t arg3 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (uint32_t)jarg2; + arg3 = (uint32_t)jarg3; + result = (arg1)->GetPointeeData(arg2,arg3); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetPointeeData_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + uint32_t arg2 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = (uint32_t)jarg2; + result = (arg1)->GetPointeeData(arg2); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetPointeeData_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetPointeeData(); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetData(); + *(lldb::SBData **)&jresult = new lldb::SBData((const lldb::SBData &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1SetData(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBData *arg2 = 0 ; + lldb::SBError *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBData **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBData & reference is null"); + return 0; + } + arg3 = *(lldb::SBError **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBError & reference is null"); + return 0; + } + result = (bool)(arg1)->SetData(*arg2,*arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBValue_1GetLoadAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (lldb::addr_t)(arg1)->GetLoadAddress(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1GetAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBAddress result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->GetAddress(); + *(lldb::SBAddress **)&jresult = new lldb::SBAddress((const lldb::SBAddress &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1Persist(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = (arg1)->Persist(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1GetExpressionPath_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jboolean jarg3) { + jboolean jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + lldb::SBStream *arg2 = 0 ; + bool arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = jarg3 ? true : false; + result = (bool)(arg1)->GetExpressionPath(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1EvaluateExpression_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = ((lldb::SBValue const *)arg1)->EvaluateExpression((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1EvaluateExpression_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBExpressionOptions *arg3 = 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBExpressionOptions **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExpressionOptions const & reference is null"); + return 0; + } + result = ((lldb::SBValue const *)arg1)->EvaluateExpression((char const *)arg2,(lldb::SBExpressionOptions const &)*arg3); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1EvaluateExpression_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jstring jarg4) { + jlong jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBExpressionOptions *arg3 = 0 ; + char *arg4 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBValue **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + arg3 = *(lldb::SBExpressionOptions **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBExpressionOptions const & reference is null"); + return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = ((lldb::SBValue const *)arg1)->EvaluateExpression((char const *)arg2,(lldb::SBExpressionOptions const &)*arg3,(char const *)arg4); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValue_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValue *arg1 = (lldb::SBValue *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValue **)&jarg1; + result = lldb_SBValue___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBValueList_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBValueList *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBValueList *)new lldb::SBValueList(); + *(lldb::SBValueList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBValueList_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValueList *arg1 = 0 ; + lldb::SBValueList *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBValueList const & reference is null"); + return 0; + } + result = (lldb::SBValueList *)new lldb::SBValueList((lldb::SBValueList const &)*arg1); + *(lldb::SBValueList **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBValueList(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBValueList **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValueList_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + result = (bool)((lldb::SBValueList const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValueList_1Clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + (arg1)->Clear(); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValueList_1Append_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + lldb::SBValue *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValueList **)&jarg1; + arg2 = *(lldb::SBValue **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBValue const & reference is null"); + return ; + } + (arg1)->Append((lldb::SBValue const &)*arg2); +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBValueList_1Append_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + lldb::SBValueList *arg2 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBValueList **)&jarg1; + arg2 = *(lldb::SBValueList **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBValueList const & reference is null"); + return ; + } + (arg1)->Append((lldb::SBValueList const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValueList_1GetSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + result = (uint32_t)((lldb::SBValueList const *)arg1)->GetSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValueList_1GetValueAtIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + jlong jresult = 0 ; + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + uint32_t arg2 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + arg2 = (uint32_t)jarg2; + result = ((lldb::SBValueList const *)arg1)->GetValueAtIndex(arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValueList_1FindValueObjectByUID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) { + jlong jresult = 0 ; + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + lldb::user_id_t arg2 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + { + jclass clazz; + jmethodID mid; + jbyteArray ba; + jbyte* bae; + jsize sz; + int i; + + if (!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null"); + return 0; + } + clazz = jenv->GetObjectClass(jarg2); + mid = jenv->GetMethodID(clazz, "toByteArray", "()[B"); + ba = (jbyteArray)jenv->CallObjectMethod(jarg2, mid); + bae = jenv->GetByteArrayElements(ba, 0); + sz = jenv->GetArrayLength(ba); + arg2 = 0; + if (sz > 0) { + arg2 = (lldb::user_id_t)(signed char)bae[0]; + for(i=1; iReleaseByteArrayElements(ba, bae, 0); + } + result = (arg1)->FindValueObjectByUID(arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValueList_1GetFirstValueByName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + jlong jresult = 0 ; + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + char *arg2 = (char *) 0 ; + lldb::SBValue result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return 0; + } + result = ((lldb::SBValueList const *)arg1)->GetFirstValueByName((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBValueList_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBValueList *arg1 = (lldb::SBValueList *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBValueList **)&jarg1; + result = lldb_SBValueList___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBVariablesOptions_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBVariablesOptions *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBVariablesOptions *)new lldb::SBVariablesOptions(); + *(lldb::SBVariablesOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBVariablesOptions_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBVariablesOptions *arg1 = 0 ; + lldb::SBVariablesOptions *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBVariablesOptions const & reference is null"); + return 0; + } + result = (lldb::SBVariablesOptions *)new lldb::SBVariablesOptions((lldb::SBVariablesOptions const &)*arg1); + *(lldb::SBVariablesOptions **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBVariablesOptions(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (bool)((lldb::SBVariablesOptions const *)arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetIncludeArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (bool)((lldb::SBVariablesOptions const *)arg1)->GetIncludeArguments(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetIncludeArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIncludeArguments(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetIncludeRecognizedArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + lldb::SBTarget *arg2 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = *(lldb::SBTarget **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBTarget const & reference is null"); + return 0; + } + result = (bool)((lldb::SBVariablesOptions const *)arg1)->GetIncludeRecognizedArguments((lldb::SBTarget const &)*arg2); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetIncludeRecognizedArguments(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIncludeRecognizedArguments(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetIncludeLocals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (bool)((lldb::SBVariablesOptions const *)arg1)->GetIncludeLocals(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetIncludeLocals(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIncludeLocals(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetIncludeStatics(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (bool)((lldb::SBVariablesOptions const *)arg1)->GetIncludeStatics(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetIncludeStatics(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIncludeStatics(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetInScopeOnly(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (bool)((lldb::SBVariablesOptions const *)arg1)->GetInScopeOnly(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetInScopeOnly(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetInScopeOnly(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetIncludeRuntimeSupportValues(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (bool)((lldb::SBVariablesOptions const *)arg1)->GetIncludeRuntimeSupportValues(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetIncludeRuntimeSupportValues(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetIncludeRuntimeSupportValues(arg2); +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1GetUseDynamic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + lldb::DynamicValueType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + result = (lldb::DynamicValueType)((lldb::SBVariablesOptions const *)arg1)->GetUseDynamic(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBVariablesOptions_1SetUseDynamic(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + lldb::SBVariablesOptions *arg1 = (lldb::SBVariablesOptions *) 0 ; + lldb::DynamicValueType arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBVariablesOptions **)&jarg1; + arg2 = (lldb::DynamicValueType)jarg2; + (arg1)->SetUseDynamic(arg2); +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBWatchpoint_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { + jlong jresult = 0 ; + lldb::SBWatchpoint *result = 0 ; + + (void)jenv; + (void)jcls; + result = (lldb::SBWatchpoint *)new lldb::SBWatchpoint(); + *(lldb::SBWatchpoint **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBWatchpoint_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBWatchpoint *arg1 = 0 ; + lldb::SBWatchpoint *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBWatchpoint const & reference is null"); + return 0; + } + result = (lldb::SBWatchpoint *)new lldb::SBWatchpoint((lldb::SBWatchpoint const &)*arg1); + *(lldb::SBWatchpoint **)&jresult = result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBWatchpoint(JNIEnv *jenv, jclass jcls, jlong jarg1) { + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + delete arg1; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1IsValid(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (bool)(arg1)->IsValid(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetError(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + lldb::SBError result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (arg1)->GetError(); + *(lldb::SBError **)&jresult = new lldb::SBError((const lldb::SBError &)result); + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + lldb::watch_id_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (lldb::watch_id_t)(arg1)->GetID(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetHardwareIndex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + int32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (int32_t)(arg1)->GetHardwareIndex(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jobject JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetWatchAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jobject jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + lldb::addr_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (lldb::addr_t)(arg1)->GetWatchAddress(); + { + jbyteArray ba = jenv->NewByteArray(9); + jbyte* bae = jenv->GetByteArrayElements(ba, 0); + jclass clazz = jenv->FindClass("java/math/BigInteger"); + jmethodID mid = jenv->GetMethodID(clazz, "", "([B)V"); + jobject bigint; + int i; + + bae[0] = 0; + for(i=1; i<9; i++ ) { + bae[i] = (jbyte)(result>>8*(8-i)); + } + + jenv->ReleaseByteArrayElements(ba, bae, 0); + bigint = jenv->NewObject(clazz, mid, ba); + jenv->DeleteLocalRef(ba); + jresult = bigint; + } + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetWatchSize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + size_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (arg1)->GetWatchSize(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1SetEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + bool arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + arg2 = jarg2 ? true : false; + (arg1)->SetEnabled(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1IsEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (bool)(arg1)->IsEnabled(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetHitCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (uint32_t)(arg1)->GetHitCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + uint32_t result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (uint32_t)(arg1)->GetIgnoreCount(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1SetIgnoreCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + uint32_t arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + arg2 = (uint32_t)jarg2; + (arg1)->SetIgnoreCount(arg2); +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + char *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = (char *)(arg1)->GetCondition(); + if (result) jresult = jenv->NewStringUTF((const char *)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1SetCondition(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetCondition((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3) { + jboolean jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + lldb::SBStream *arg2 = 0 ; + lldb::DescriptionLevel arg3 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + arg2 = *(lldb::SBStream **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBStream & reference is null"); + return 0; + } + arg3 = (lldb::DescriptionLevel)jarg3; + result = (bool)(arg1)->GetDescription(*arg2,arg3); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1EventIsWatchpointEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (bool)lldb::SBWatchpoint::EventIsWatchpointEvent((lldb::SBEvent const &)*arg1); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetWatchpointEventTypeFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::WatchpointEventType result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = (lldb::WatchpointEventType)lldb::SBWatchpoint::GetWatchpointEventTypeFromEvent((lldb::SBEvent const &)*arg1); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1GetWatchpointFromEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + lldb::SBEvent *arg1 = 0 ; + lldb::SBWatchpoint result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBEvent **)&jarg1; + if (!arg1) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "lldb::SBEvent const & reference is null"); + return 0; + } + result = lldb::SBWatchpoint::GetWatchpointFromEvent((lldb::SBEvent const &)*arg1); + *(lldb::SBWatchpoint **)&jresult = new lldb::SBWatchpoint((const lldb::SBWatchpoint &)result); + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_SWIG_lldbJNI_SBWatchpoint_1_1_1str_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + lldb::SBWatchpoint *arg1 = (lldb::SBWatchpoint *) 0 ; + std::string result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBWatchpoint **)&jarg1; + result = lldb_SBWatchpoint___str__(arg1); + jresult = jenv->NewStringUTF((&result)->c_str()); + return jresult; +} + + +#ifdef __cplusplus +} +#endif + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/CMakeLists.txt new file mode 100644 index 0000000000..c8df7c9243 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/CMakeLists.txt @@ -0,0 +1,48 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +file(GLOB SWIG_INTERFACES interface/*.i) +file(GLOB_RECURSE SWIG_SOURCES *.swig) +file(GLOB SWIG_HEADERS + ${LLDB_SOURCE_DIR}/include/lldb/API/*.h + ${LLDB_SOURCE_DIR}/include/lldb/*.h +) +file(GLOB SWIG_PRIVATE_HEADERS + ${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h +) +foreach(private_header ${SWIG_PRIVATE_HEADERS}) + list(REMOVE_ITEM SWIG_HEADERS ${private_header}) +endforeach() + +if(LLDB_BUILD_FRAMEWORK) + set(framework_arg --framework --target-platform Darwin) +endif() + +if(APPLE) + set(DARWIN_EXTRAS "-D__APPLE__") +else() + set(DARWIN_EXTRAS "") +endif() + +set(SWIG_COMMON_FLAGS + -c++ + -features autodoc + -I${LLDB_SOURCE_DIR}/include + -I${CMAKE_CURRENT_SOURCE_DIR} + -D__STDC_LIMIT_MACROS + -D__STDC_CONSTANT_MACROS + ${DARWIN_EXTRAS} +) + +if (LLDB_ENABLE_PYTHON) + add_subdirectory(python) +endif() + +if (LLDB_ENABLE_LUA) + add_subdirectory(lua) +endif() + +if (LLDB_ENABLE_JAVA) + add_subdirectory(java) +endif() + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/CMakeLists.txt new file mode 100644 index 0000000000..191db4c21f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/CMakeLists.txt @@ -0,0 +1,23 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapJava.cpp + DEPENDS ${SWIG_SOURCES} + DEPENDS ${SWIG_INTERFACES} + DEPENDS ${SWIG_HEADERS} + COMMAND ${SWIG_EXECUTABLE} + ${SWIG_COMMON_FLAGS} + -I${CMAKE_CURRENT_SOURCE_DIR} + -java + -package SWIG + -c++ + -outdir ${CMAKE_CURRENT_BINARY_DIR} + -o ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapJava.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/java.swig + VERBATIM + COMMENT "Building LLDB Java wrapper") + +add_custom_target(swig_wrapper_java ALL DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapJava.cpp +) diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java-typemaps.swig b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java-typemaps.swig new file mode 100644 index 0000000000..24b90c895b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java-typemaps.swig @@ -0,0 +1,21 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +%include +%include +%include + +%typemap(javabase) ByteArray "SWIGTYPE_p_void" +%typemap(javabody) ByteArray %{ + private long swigCPtr; // Minor bodge to work around private variable in parent + private boolean swigCMemOwn; + public $javaclassname(long cPtr, boolean cMemoryOwn) { + super(cPtr, cMemoryOwn); + this.swigCPtr = SWIGTYPE_p_void.getCPtr(this); + swigCMemOwn = cMemoryOwn; + } +%} + +%array_class(jbyte, ByteArray); + +%apply char **STRING_ARRAY { char ** } diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java.swig b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java.swig new file mode 100644 index 0000000000..2cfe68d859 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/bindings/java/java.swig @@ -0,0 +1,25 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* + lldb.swig + + This is the input file for SWIG, to create the appropriate C++ wrappers and + functions for various scripting languages, to enable them to call the + liblldb Script Bridge functions. +*/ + +%module lldb + +%include +%include "java-typemaps.swig" +%include "macros.swig" +%include "headers.swig" + +%{ +using namespace lldb_private; +using namespace lldb; +%} + +%include "interfaces.swig" +//%include "lua-wrapper.swig" diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/FindJavaAndSwig.cmake b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/FindJavaAndSwig.cmake new file mode 100644 index 0000000000..6dc3d176d6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/FindJavaAndSwig.cmake @@ -0,0 +1,32 @@ +#.rst: +# FindJavaAndSwig +# -------------- +# +# Find Java and SWIG as a whole. + +#if(JAVA_LIBRARIES AND JAVA_INCLUDE_DIR AND SWIG_EXECUTABLE) +if(SWIG_EXECUTABLE) + set(JAVAANDSWIG_FOUND TRUE) +else() + find_package(SWIG 2.0) + if (SWIG_FOUND) + find_package(Java 11.0) + if(JAVA_FOUND AND SWIG_FOUND) + mark_as_advanced( + JAVA_LIBRARIES + JAVA_INCLUDE_DIR + SWIG_EXECUTABLE) + endif() + else() + message(STATUS "SWIG 2 or later is required for Java support in LLDB but could not be found") + endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(JavaAndSwig + FOUND_VAR + JAVAANDSWIG_FOUND + REQUIRED_VARS + JAVA_LIBRARIES + JAVA_INCLUDE_DIR + SWIG_EXECUTABLE) +endif() diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/LLDBConfig.cmake b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/LLDBConfig.cmake new file mode 100644 index 0000000000..a38a763f45 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/cmake/modules/LLDBConfig.cmake @@ -0,0 +1,319 @@ +include(CheckCXXSymbolExists) +include(CheckTypeSize) + +set(LLDB_PROJECT_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) +set(LLDB_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/source") +set(LLDB_INCLUDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include") + +set(LLDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(LLDB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + +if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) + message(FATAL_ERROR + "In-source builds are not allowed. CMake would overwrite the makefiles " + "distributed with LLDB. Please create a directory and run cmake from " + "there, passing the path to this source directory as the last argument. " + "This process created the file `CMakeCache.txt' and the directory " + "`CMakeFiles'. Please delete them.") +endif() + +set(LLDB_LINKER_SUPPORTS_GROUPS OFF) +if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") + # The Darwin linker doesn't understand --start-group/--end-group. + set(LLDB_LINKER_SUPPORTS_GROUPS ON) +endif() + +macro(add_optional_dependency variable description package found) + cmake_parse_arguments(ARG + "" + "VERSION" + "" + ${ARGN}) + + set(${variable} "Auto" CACHE STRING "${description} On, Off or Auto (default)") + string(TOUPPER "${${variable}}" ${variable}) + + if("${${variable}}" STREQUAL "AUTO") + set(find_package TRUE) + set(maybe_required) + elseif(${${variable}}) + set(find_package TRUE) + set(maybe_required REQUIRED) + else() + set(find_package FALSE) + set(${variable} FALSE) + endif() + + if(${find_package}) + find_package(${package} ${ARG_VERSION} ${maybe_required}) + set(${variable} "${${found}}") + endif() + + message(STATUS "${description}: ${${variable}}") +endmacro() + +add_optional_dependency(LLDB_ENABLE_LIBEDIT "Enable editline support in LLDB" LibEdit LibEdit_FOUND) +add_optional_dependency(LLDB_ENABLE_CURSES "Enable curses support in LLDB" CursesAndPanel CURSESANDPANEL_FOUND) +add_optional_dependency(LLDB_ENABLE_LZMA "Enable LZMA compression support in LLDB" LibLZMA LIBLZMA_FOUND) +add_optional_dependency(LLDB_ENABLE_LUA "Enable Lua scripting support in LLDB" LuaAndSwig LUAANDSWIG_FOUND) +add_optional_dependency(LLDB_ENABLE_JAVA "Enable Java scripting support in LLDB" JavaAndSwig JAVAANDSWIG_FOUND) +add_optional_dependency(LLDB_ENABLE_PYTHON "Enable Python scripting support in LLDB" PythonAndSwig PYTHONANDSWIG_FOUND) +add_optional_dependency(LLDB_ENABLE_LIBXML2 "Enable Libxml 2 support in LLDB" LibXml2 LIBXML2_FOUND VERSION 2.8) + +option(LLDB_USE_SYSTEM_SIX "Use six.py shipped with system and do not install a copy of it" OFF) +option(LLDB_USE_ENTITLEMENTS "When codesigning, use entitlements if available" ON) +option(LLDB_BUILD_FRAMEWORK "Build LLDB.framework (Darwin only)" OFF) +option(LLDB_NO_INSTALL_DEFAULT_RPATH "Disable default RPATH settings in binaries" OFF) +option(LLDB_USE_SYSTEM_DEBUGSERVER "Use the system's debugserver for testing (Darwin only)." OFF) +option(LLDB_SKIP_STRIP "Whether to skip stripping of binaries when installing lldb." OFF) +option(LLDB_SKIP_DSYM "Whether to skip generating a dSYM when installing lldb." OFF) + +if (LLDB_USE_SYSTEM_DEBUGSERVER) + # The custom target for the system debugserver has no install target, so we + # need to remove it from the LLVM_DISTRIBUTION_COMPONENTS list. + if (LLVM_DISTRIBUTION_COMPONENTS) + list(REMOVE_ITEM LLVM_DISTRIBUTION_COMPONENTS debugserver) + set(LLVM_DISTRIBUTION_COMPONENTS ${LLVM_DISTRIBUTION_COMPONENTS} CACHE STRING "" FORCE) + endif() +endif() + +if(LLDB_BUILD_FRAMEWORK) + if(NOT APPLE) + message(FATAL_ERROR "LLDB.framework can only be generated when targeting Apple platforms") + endif() + + set(LLDB_FRAMEWORK_VERSION A CACHE STRING "LLDB.framework version (default is A)") + set(LLDB_FRAMEWORK_BUILD_DIR bin CACHE STRING "Output directory for LLDB.framework") + set(LLDB_FRAMEWORK_INSTALL_DIR Library/Frameworks CACHE STRING "Install directory for LLDB.framework") + + get_filename_component(LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR ${LLDB_FRAMEWORK_BUILD_DIR} ABSOLUTE + BASE_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}) + + # Essentially, emit the framework's dSYM outside of the framework directory. + set(LLDB_DEBUGINFO_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin CACHE STRING + "Directory to emit dSYM files stripped from executables and libraries (Darwin Only)") +endif() + +if(APPLE AND CMAKE_GENERATOR STREQUAL Xcode) + if(NOT LLDB_EXPLICIT_XCODE_CACHE_USED) + message(WARNING + "When building with Xcode, we recommend using the corresponding cache script. " + "If this was a mistake, clean your build directory and re-run CMake with:\n" + " -C ${CMAKE_SOURCE_DIR}/cmake/caches/Apple-lldb-Xcode.cmake\n" + "See: https://lldb.llvm.org/resources/build.html#cmakegeneratedxcodeproject\n") + endif() +endif() + +if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") + set(LLDB_EXPORT_ALL_SYMBOLS 0 CACHE BOOL + "Causes lldb to export all symbols when building liblldb.") +else() + # Windows doesn't support toggling this, so don't bother making it a + # cache variable. + set(LLDB_EXPORT_ALL_SYMBOLS 0) +endif() + +if ((NOT MSVC) OR MSVC12) + add_definitions( -DHAVE_ROUND ) +endif() + +# Check if we libedit capable of handling wide characters (built with +# '--enable-widec'). +if (LLDB_ENABLE_LIBEDIT) + set(CMAKE_REQUIRED_LIBRARIES ${LibEdit_LIBRARIES}) + set(CMAKE_REQUIRED_INCLUDES ${LibEdit_INCLUDE_DIRS}) + check_symbol_exists(el_winsertstr histedit.h LLDB_EDITLINE_USE_WCHAR) + set(CMAKE_EXTRA_INCLUDE_FILES histedit.h) + check_type_size(el_rfunc_t LLDB_EL_RFUNC_T_SIZE) + if (LLDB_EL_RFUNC_T_SIZE STREQUAL "") + set(LLDB_HAVE_EL_RFUNC_T 0) + else() + set(LLDB_HAVE_EL_RFUNC_T 1) + endif() + set(CMAKE_REQUIRED_LIBRARIES) + set(CMAKE_REQUIRED_INCLUDES) + set(CMAKE_EXTRA_INCLUDE_FILES) +endif() + +if (LLDB_ENABLE_PYTHON) + if(CMAKE_SYSTEM_NAME MATCHES "Windows") + set(default_embed_python_home ON) + else() + set(default_embed_python_home OFF) + endif() + option(LLDB_EMBED_PYTHON_HOME + "Embed PYTHONHOME in the binary. If set to OFF, PYTHONHOME environment variable will be used to to locate Python." + ${default_embed_python_home}) + + include_directories(${Python3_INCLUDE_DIRS}) + if (LLDB_EMBED_PYTHON_HOME) + get_filename_component(PYTHON_HOME "${Python3_EXECUTABLE}" DIRECTORY) + set(LLDB_PYTHON_HOME "${PYTHON_HOME}" CACHE STRING + "Path to use as PYTHONHOME in lldb. If a relative path is specified, it will be resolved at runtime relative to liblldb directory.") + endif() +endif() + +if (LLVM_EXTERNAL_CLANG_SOURCE_DIR) + include_directories(${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include) +else () + include_directories(${CMAKE_SOURCE_DIR}/tools/clang/include) +endif () +include_directories("${CMAKE_CURRENT_BINARY_DIR}/../clang/include") + +# Disable GCC warnings +check_cxx_compiler_flag("-Wno-deprecated-declarations" CXX_SUPPORTS_NO_DEPRECATED_DECLARATIONS) +append_if(CXX_SUPPORTS_NO_DEPRECATED_DECLARATIONS "-Wno-deprecated-declarations" CMAKE_CXX_FLAGS) + +check_cxx_compiler_flag("-Wno-unknown-pragmas" CXX_SUPPORTS_NO_UNKNOWN_PRAGMAS) +append_if(CXX_SUPPORTS_NO_UNKNOWN_PRAGMAS "-Wno-unknown-pragmas" CMAKE_CXX_FLAGS) + +check_cxx_compiler_flag("-Wno-strict-aliasing" CXX_SUPPORTS_NO_STRICT_ALIASING) +append_if(CXX_SUPPORTS_NO_STRICT_ALIASING "-Wno-strict-aliasing" CMAKE_CXX_FLAGS) + +# Disable Clang warnings +check_cxx_compiler_flag("-Wno-deprecated-register" CXX_SUPPORTS_NO_DEPRECATED_REGISTER) +append_if(CXX_SUPPORTS_NO_DEPRECATED_REGISTER "-Wno-deprecated-register" CMAKE_CXX_FLAGS) + +check_cxx_compiler_flag("-Wno-vla-extension" CXX_SUPPORTS_NO_VLA_EXTENSION) +append_if(CXX_SUPPORTS_NO_VLA_EXTENSION "-Wno-vla-extension" CMAKE_CXX_FLAGS) + +# Disable MSVC warnings +if( MSVC ) + add_definitions( + -wd4018 # Suppress 'warning C4018: '>=' : signed/unsigned mismatch' + -wd4068 # Suppress 'warning C4068: unknown pragma' + -wd4150 # Suppress 'warning C4150: deletion of pointer to incomplete type' + -wd4201 # Suppress 'warning C4201: nonstandard extension used: nameless struct/union' + -wd4251 # Suppress 'warning C4251: T must have dll-interface to be used by clients of class U.' + -wd4521 # Suppress 'warning C4521: 'type' : multiple copy constructors specified' + -wd4530 # Suppress 'warning C4530: C++ exception handler used, but unwind semantics are not enabled.' + ) +endif() + +# Use the Unicode (UTF-16) APIs by default on Win32 +if (CMAKE_SYSTEM_NAME MATCHES "Windows") + add_definitions( -D_UNICODE -DUNICODE ) +endif() + +# If LLDB_VERSION_* is specified, use it, if not use LLVM_VERSION_*. +if(NOT DEFINED LLDB_VERSION_MAJOR) + set(LLDB_VERSION_MAJOR ${LLVM_VERSION_MAJOR}) +endif() +if(NOT DEFINED LLDB_VERSION_MINOR) + set(LLDB_VERSION_MINOR ${LLVM_VERSION_MINOR}) +endif() +if(NOT DEFINED LLDB_VERSION_PATCH) + set(LLDB_VERSION_PATCH ${LLVM_VERSION_PATCH}) +endif() +if(NOT DEFINED LLDB_VERSION_SUFFIX) + set(LLDB_VERSION_SUFFIX ${LLVM_VERSION_SUFFIX}) +endif() +set(LLDB_VERSION "${LLDB_VERSION_MAJOR}.${LLDB_VERSION_MINOR}.${LLDB_VERSION_PATCH}${LLDB_VERSION_SUFFIX}") +message(STATUS "LLDB version: ${LLDB_VERSION}") + +if (LLDB_ENABLE_LZMA) + include_directories(${LIBLZMA_INCLUDE_DIRS}) +endif() + +if (LLDB_ENABLE_LIBXML2) + include_directories(${LIBXML2_INCLUDE_DIR}) +endif() + +include_directories(BEFORE + ${CMAKE_CURRENT_BINARY_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/include + ) + +if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(DIRECTORY include/ + COMPONENT lldb-headers + DESTINATION include + FILES_MATCHING + PATTERN "*.h" + PATTERN ".cmake" EXCLUDE + ) + + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ + COMPONENT lldb-headers + DESTINATION include + FILES_MATCHING + PATTERN "*.h" + PATTERN ".cmake" EXCLUDE + ) + + add_custom_target(lldb-headers) + set_target_properties(lldb-headers PROPERTIES FOLDER "lldb misc") + + if (NOT CMAKE_CONFIGURATION_TYPES) + add_llvm_install_targets(install-lldb-headers + COMPONENT lldb-headers) + endif() +endif() + + +# If LLDB is building against a prebuilt Clang, then the Clang resource +# directory that LLDB is using for its embedded Clang instance needs to point +# to the resource directory of the used Clang installation. +if (NOT TARGET clang-resource-headers) + set(LLDB_CLANG_RESOURCE_DIR_NAME "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}") + # Iterate over the possible places where the external resource directory + # could be and pick the first that exists. + foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" + "${LLVM_BUILD_LIBRARY_DIR}" + "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") + # Build the resource directory path by appending 'clang/'. + set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") + if (IS_DIRECTORY "${CANDIDATE_RESOURCE_DIR}") + set(LLDB_EXTERNAL_CLANG_RESOURCE_DIR "${CANDIDATE_RESOURCE_DIR}") + break() + endif() + endforeach() + + if (NOT LLDB_EXTERNAL_CLANG_RESOURCE_DIR) + message(FATAL_ERROR "Expected directory for clang-resource headers not found: ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}") + endif() +endif() + +# Find Apple-specific libraries or frameworks that may be needed. +if (APPLE) + if(NOT APPLE_EMBEDDED) + find_library(CARBON_LIBRARY Carbon) + find_library(CORE_SERVICES_LIBRARY CoreServices) + endif() + find_library(FOUNDATION_LIBRARY Foundation) + find_library(CORE_FOUNDATION_LIBRARY CoreFoundation) + find_library(SECURITY_LIBRARY Security) + include_directories(${LIBXML2_INCLUDE_DIR}) +endif() + +if( WIN32 AND NOT CYGWIN ) + set(PURE_WINDOWS 1) +endif() + +if(NOT PURE_WINDOWS) + set(CMAKE_THREAD_PREFER_PTHREAD TRUE) + find_package(Threads REQUIRED) +endif() + +# Figure out if lldb could use lldb-server. If so, then we'll +# ensure we build lldb-server when an lldb target is being built. +if (CMAKE_SYSTEM_NAME MATCHES "Android|Darwin|FreeBSD|Linux|NetBSD|Windows") + set(LLDB_CAN_USE_LLDB_SERVER ON) +else() + set(LLDB_CAN_USE_LLDB_SERVER OFF) +endif() + +# Figure out if lldb could use debugserver. If so, then we'll +# ensure we build debugserver when we build lldb. +if (CMAKE_SYSTEM_NAME MATCHES "Darwin") + set(LLDB_CAN_USE_DEBUGSERVER ON) +else() + set(LLDB_CAN_USE_DEBUGSERVER OFF) +endif() + +if ((CMAKE_SYSTEM_NAME MATCHES "Android") AND LLVM_BUILD_STATIC AND + ((ANDROID_ABI MATCHES "armeabi") OR (ANDROID_ABI MATCHES "mips"))) + add_definitions(-DANDROID_USE_ACCEPT_WORKAROUND) +endif() + +include(LLDBGenerateConfig) diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni.h b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni.h new file mode 100644 index 0000000000..730e502e35 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni.h @@ -0,0 +1,1964 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* + * @(#)jni.h 1.62 06/02/02 + * + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + */ + +/* + * We used part of Netscape's Java Runtime Interface (JRI) as the starting + * point of our design and implementation. + */ + +/****************************************************************************** + * Java Runtime Interface + * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved. + *****************************************************************************/ + +#ifndef _JAVASOFT_JNI_H_ +#define _JAVASOFT_JNI_H_ + +#include +#include + +/* jni_md.h contains the machine-dependent typedefs for jbyte, jint + and jlong */ + +#include "jni_md.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * JNI Types + */ + +#ifndef JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H + +typedef unsigned char jboolean; +typedef unsigned short jchar; +typedef short jshort; +typedef float jfloat; +typedef double jdouble; + +typedef jint jsize; + +#ifdef __cplusplus + +class _jobject {}; +class _jclass : public _jobject {}; +class _jthrowable : public _jobject {}; +class _jstring : public _jobject {}; +class _jarray : public _jobject {}; +class _jbooleanArray : public _jarray {}; +class _jbyteArray : public _jarray {}; +class _jcharArray : public _jarray {}; +class _jshortArray : public _jarray {}; +class _jintArray : public _jarray {}; +class _jlongArray : public _jarray {}; +class _jfloatArray : public _jarray {}; +class _jdoubleArray : public _jarray {}; +class _jobjectArray : public _jarray {}; + +typedef _jobject *jobject; +typedef _jclass *jclass; +typedef _jthrowable *jthrowable; +typedef _jstring *jstring; +typedef _jarray *jarray; +typedef _jbooleanArray *jbooleanArray; +typedef _jbyteArray *jbyteArray; +typedef _jcharArray *jcharArray; +typedef _jshortArray *jshortArray; +typedef _jintArray *jintArray; +typedef _jlongArray *jlongArray; +typedef _jfloatArray *jfloatArray; +typedef _jdoubleArray *jdoubleArray; +typedef _jobjectArray *jobjectArray; + +#else + +struct _jobject; + +typedef struct _jobject *jobject; +typedef jobject jclass; +typedef jobject jthrowable; +typedef jobject jstring; +typedef jobject jarray; +typedef jarray jbooleanArray; +typedef jarray jbyteArray; +typedef jarray jcharArray; +typedef jarray jshortArray; +typedef jarray jintArray; +typedef jarray jlongArray; +typedef jarray jfloatArray; +typedef jarray jdoubleArray; +typedef jarray jobjectArray; + +#endif + +typedef jobject jweak; + +typedef union jvalue { + jboolean z; + jbyte b; + jchar c; + jshort s; + jint i; + jlong j; + jfloat f; + jdouble d; + jobject l; +} jvalue; + +struct _jfieldID; +typedef struct _jfieldID *jfieldID; + +struct _jmethodID; +typedef struct _jmethodID *jmethodID; + +/* Return values from jobjectRefType */ +typedef enum _jobjectType { + JNIInvalidRefType = 0, + JNILocalRefType = 1, + JNIGlobalRefType = 2, + JNIWeakGlobalRefType = 3 +} jobjectRefType; + + +#endif /* JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H */ + +/* + * jboolean constants + */ + +#define JNI_FALSE 0 +#define JNI_TRUE 1 + +/* + * possible return values for JNI functions. + */ + +#define JNI_OK 0 /* success */ +#define JNI_ERR (-1) /* unknown error */ +#define JNI_EDETACHED (-2) /* thread detached from the VM */ +#define JNI_EVERSION (-3) /* JNI version error */ +#define JNI_ENOMEM (-4) /* not enough memory */ +#define JNI_EEXIST (-5) /* VM already created */ +#define JNI_EINVAL (-6) /* invalid arguments */ + +/* + * used in ReleaseScalarArrayElements + */ + +#define JNI_COMMIT 1 +#define JNI_ABORT 2 + +/* + * used in RegisterNatives to describe native method name, signature, + * and function pointer. + */ + +typedef struct { + char *name; + char *signature; + void *fnPtr; +} JNINativeMethod; + +/* + * JNI Native Method Interface. + */ + +struct JNINativeInterface_; + +struct JNIEnv_; + +#ifdef __cplusplus +typedef JNIEnv_ JNIEnv; +#else +typedef const struct JNINativeInterface_ *JNIEnv; +#endif + +/* + * JNI Invocation Interface. + */ + +struct JNIInvokeInterface_; + +struct JavaVM_; + +#ifdef __cplusplus +typedef JavaVM_ JavaVM; +#else +typedef const struct JNIInvokeInterface_ *JavaVM; +#endif + +struct JNINativeInterface_ { + void *reserved0; + void *reserved1; + void *reserved2; + + void *reserved3; + +#if !TARGET_RT_MAC_CFM && defined(__ppc__) + void* cfm_vectors[225]; +#endif /* !TARGET_RT_MAC_CFM && defined(__ppc__) */ + + jint (JNICALL *GetVersion)(JNIEnv *env); + + jclass (JNICALL *DefineClass) + (JNIEnv *env, const char *name, jobject loader, const jbyte *buf, + jsize len); + jclass (JNICALL *FindClass) + (JNIEnv *env, const char *name); + + jmethodID (JNICALL *FromReflectedMethod) + (JNIEnv *env, jobject method); + jfieldID (JNICALL *FromReflectedField) + (JNIEnv *env, jobject field); + + jobject (JNICALL *ToReflectedMethod) + (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic); + + jclass (JNICALL *GetSuperclass) + (JNIEnv *env, jclass sub); + jboolean (JNICALL *IsAssignableFrom) + (JNIEnv *env, jclass sub, jclass sup); + + jobject (JNICALL *ToReflectedField) + (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic); + + jint (JNICALL *Throw) + (JNIEnv *env, jthrowable obj); + jint (JNICALL *ThrowNew) + (JNIEnv *env, jclass clazz, const char *msg); + jthrowable (JNICALL *ExceptionOccurred) + (JNIEnv *env); + void (JNICALL *ExceptionDescribe) + (JNIEnv *env); + void (JNICALL *ExceptionClear) + (JNIEnv *env); + void (JNICALL *FatalError) + (JNIEnv *env, const char *msg); + + jint (JNICALL *PushLocalFrame) + (JNIEnv *env, jint capacity); + jobject (JNICALL *PopLocalFrame) + (JNIEnv *env, jobject result); + + jobject (JNICALL *NewGlobalRef) + (JNIEnv *env, jobject lobj); + void (JNICALL *DeleteGlobalRef) + (JNIEnv *env, jobject gref); + void (JNICALL *DeleteLocalRef) + (JNIEnv *env, jobject obj); + jboolean (JNICALL *IsSameObject) + (JNIEnv *env, jobject obj1, jobject obj2); + jobject (JNICALL *NewLocalRef) + (JNIEnv *env, jobject ref); + jint (JNICALL *EnsureLocalCapacity) + (JNIEnv *env, jint capacity); + + jobject (JNICALL *AllocObject) + (JNIEnv *env, jclass clazz); + jobject (JNICALL *NewObject) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jobject (JNICALL *NewObjectV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jobject (JNICALL *NewObjectA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jclass (JNICALL *GetObjectClass) + (JNIEnv *env, jobject obj); + jboolean (JNICALL *IsInstanceOf) + (JNIEnv *env, jobject obj, jclass clazz); + + jmethodID (JNICALL *GetMethodID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + + jobject (JNICALL *CallObjectMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jobject (JNICALL *CallObjectMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jobject (JNICALL *CallObjectMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args); + + jboolean (JNICALL *CallBooleanMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jboolean (JNICALL *CallBooleanMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jboolean (JNICALL *CallBooleanMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args); + + jbyte (JNICALL *CallByteMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jbyte (JNICALL *CallByteMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jbyte (JNICALL *CallByteMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jchar (JNICALL *CallCharMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jchar (JNICALL *CallCharMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jchar (JNICALL *CallCharMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jshort (JNICALL *CallShortMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jshort (JNICALL *CallShortMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jshort (JNICALL *CallShortMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jint (JNICALL *CallIntMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jint (JNICALL *CallIntMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jint (JNICALL *CallIntMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jlong (JNICALL *CallLongMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jlong (JNICALL *CallLongMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jlong (JNICALL *CallLongMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jfloat (JNICALL *CallFloatMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jfloat (JNICALL *CallFloatMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jfloat (JNICALL *CallFloatMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jdouble (JNICALL *CallDoubleMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jdouble (JNICALL *CallDoubleMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jdouble (JNICALL *CallDoubleMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + void (JNICALL *CallVoidMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + void (JNICALL *CallVoidMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + void (JNICALL *CallVoidMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args); + + jobject (JNICALL *CallNonvirtualObjectMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jobject (JNICALL *CallNonvirtualObjectMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jobject (JNICALL *CallNonvirtualObjectMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue * args); + + jboolean (JNICALL *CallNonvirtualBooleanMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jboolean (JNICALL *CallNonvirtualBooleanMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jboolean (JNICALL *CallNonvirtualBooleanMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue * args); + + jbyte (JNICALL *CallNonvirtualByteMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jbyte (JNICALL *CallNonvirtualByteMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jbyte (JNICALL *CallNonvirtualByteMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jchar (JNICALL *CallNonvirtualCharMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jchar (JNICALL *CallNonvirtualCharMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jchar (JNICALL *CallNonvirtualCharMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jshort (JNICALL *CallNonvirtualShortMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jshort (JNICALL *CallNonvirtualShortMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jshort (JNICALL *CallNonvirtualShortMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jint (JNICALL *CallNonvirtualIntMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jint (JNICALL *CallNonvirtualIntMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jint (JNICALL *CallNonvirtualIntMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jlong (JNICALL *CallNonvirtualLongMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jlong (JNICALL *CallNonvirtualLongMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jlong (JNICALL *CallNonvirtualLongMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jfloat (JNICALL *CallNonvirtualFloatMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jfloat (JNICALL *CallNonvirtualFloatMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jfloat (JNICALL *CallNonvirtualFloatMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jdouble (JNICALL *CallNonvirtualDoubleMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jdouble (JNICALL *CallNonvirtualDoubleMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jdouble (JNICALL *CallNonvirtualDoubleMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + void (JNICALL *CallNonvirtualVoidMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + void (JNICALL *CallNonvirtualVoidMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + void (JNICALL *CallNonvirtualVoidMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue * args); + + jfieldID (JNICALL *GetFieldID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + + jobject (JNICALL *GetObjectField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jboolean (JNICALL *GetBooleanField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jbyte (JNICALL *GetByteField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jchar (JNICALL *GetCharField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jshort (JNICALL *GetShortField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jint (JNICALL *GetIntField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jlong (JNICALL *GetLongField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jfloat (JNICALL *GetFloatField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jdouble (JNICALL *GetDoubleField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + + void (JNICALL *SetObjectField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val); + void (JNICALL *SetBooleanField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val); + void (JNICALL *SetByteField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val); + void (JNICALL *SetCharField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val); + void (JNICALL *SetShortField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val); + void (JNICALL *SetIntField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jint val); + void (JNICALL *SetLongField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val); + void (JNICALL *SetFloatField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val); + void (JNICALL *SetDoubleField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val); + + jmethodID (JNICALL *GetStaticMethodID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + + jobject (JNICALL *CallStaticObjectMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jobject (JNICALL *CallStaticObjectMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jobject (JNICALL *CallStaticObjectMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jboolean (JNICALL *CallStaticBooleanMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jboolean (JNICALL *CallStaticBooleanMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jboolean (JNICALL *CallStaticBooleanMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jbyte (JNICALL *CallStaticByteMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jbyte (JNICALL *CallStaticByteMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jbyte (JNICALL *CallStaticByteMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jchar (JNICALL *CallStaticCharMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jchar (JNICALL *CallStaticCharMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jchar (JNICALL *CallStaticCharMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jshort (JNICALL *CallStaticShortMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jshort (JNICALL *CallStaticShortMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jshort (JNICALL *CallStaticShortMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jint (JNICALL *CallStaticIntMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jint (JNICALL *CallStaticIntMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jint (JNICALL *CallStaticIntMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jlong (JNICALL *CallStaticLongMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jlong (JNICALL *CallStaticLongMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jlong (JNICALL *CallStaticLongMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jfloat (JNICALL *CallStaticFloatMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jfloat (JNICALL *CallStaticFloatMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jfloat (JNICALL *CallStaticFloatMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jdouble (JNICALL *CallStaticDoubleMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jdouble (JNICALL *CallStaticDoubleMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jdouble (JNICALL *CallStaticDoubleMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + void (JNICALL *CallStaticVoidMethod) + (JNIEnv *env, jclass cls, jmethodID methodID, ...); + void (JNICALL *CallStaticVoidMethodV) + (JNIEnv *env, jclass cls, jmethodID methodID, va_list args); + void (JNICALL *CallStaticVoidMethodA) + (JNIEnv *env, jclass cls, jmethodID methodID, const jvalue * args); + + jfieldID (JNICALL *GetStaticFieldID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + jobject (JNICALL *GetStaticObjectField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jboolean (JNICALL *GetStaticBooleanField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jbyte (JNICALL *GetStaticByteField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jchar (JNICALL *GetStaticCharField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jshort (JNICALL *GetStaticShortField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jint (JNICALL *GetStaticIntField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jlong (JNICALL *GetStaticLongField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jfloat (JNICALL *GetStaticFloatField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jdouble (JNICALL *GetStaticDoubleField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + + void (JNICALL *SetStaticObjectField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value); + void (JNICALL *SetStaticBooleanField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value); + void (JNICALL *SetStaticByteField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value); + void (JNICALL *SetStaticCharField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value); + void (JNICALL *SetStaticShortField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value); + void (JNICALL *SetStaticIntField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value); + void (JNICALL *SetStaticLongField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value); + void (JNICALL *SetStaticFloatField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value); + void (JNICALL *SetStaticDoubleField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value); + + jstring (JNICALL *NewString) + (JNIEnv *env, const jchar *unicode, jsize len); + jsize (JNICALL *GetStringLength) + (JNIEnv *env, jstring str); + const jchar *(JNICALL *GetStringChars) + (JNIEnv *env, jstring str, jboolean *isCopy); + void (JNICALL *ReleaseStringChars) + (JNIEnv *env, jstring str, const jchar *chars); + + jstring (JNICALL *NewStringUTF) + (JNIEnv *env, const char *utf); + jsize (JNICALL *GetStringUTFLength) + (JNIEnv *env, jstring str); + const char* (JNICALL *GetStringUTFChars) + (JNIEnv *env, jstring str, jboolean *isCopy); + void (JNICALL *ReleaseStringUTFChars) + (JNIEnv *env, jstring str, const char* chars); + + + jsize (JNICALL *GetArrayLength) + (JNIEnv *env, jarray array); + + jobjectArray (JNICALL *NewObjectArray) + (JNIEnv *env, jsize len, jclass clazz, jobject init); + jobject (JNICALL *GetObjectArrayElement) + (JNIEnv *env, jobjectArray array, jsize index); + void (JNICALL *SetObjectArrayElement) + (JNIEnv *env, jobjectArray array, jsize index, jobject val); + + jbooleanArray (JNICALL *NewBooleanArray) + (JNIEnv *env, jsize len); + jbyteArray (JNICALL *NewByteArray) + (JNIEnv *env, jsize len); + jcharArray (JNICALL *NewCharArray) + (JNIEnv *env, jsize len); + jshortArray (JNICALL *NewShortArray) + (JNIEnv *env, jsize len); + jintArray (JNICALL *NewIntArray) + (JNIEnv *env, jsize len); + jlongArray (JNICALL *NewLongArray) + (JNIEnv *env, jsize len); + jfloatArray (JNICALL *NewFloatArray) + (JNIEnv *env, jsize len); + jdoubleArray (JNICALL *NewDoubleArray) + (JNIEnv *env, jsize len); + + jboolean * (JNICALL *GetBooleanArrayElements) + (JNIEnv *env, jbooleanArray array, jboolean *isCopy); + jbyte * (JNICALL *GetByteArrayElements) + (JNIEnv *env, jbyteArray array, jboolean *isCopy); + jchar * (JNICALL *GetCharArrayElements) + (JNIEnv *env, jcharArray array, jboolean *isCopy); + jshort * (JNICALL *GetShortArrayElements) + (JNIEnv *env, jshortArray array, jboolean *isCopy); + jint * (JNICALL *GetIntArrayElements) + (JNIEnv *env, jintArray array, jboolean *isCopy); + jlong * (JNICALL *GetLongArrayElements) + (JNIEnv *env, jlongArray array, jboolean *isCopy); + jfloat * (JNICALL *GetFloatArrayElements) + (JNIEnv *env, jfloatArray array, jboolean *isCopy); + jdouble * (JNICALL *GetDoubleArrayElements) + (JNIEnv *env, jdoubleArray array, jboolean *isCopy); + + void (JNICALL *ReleaseBooleanArrayElements) + (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode); + void (JNICALL *ReleaseByteArrayElements) + (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode); + void (JNICALL *ReleaseCharArrayElements) + (JNIEnv *env, jcharArray array, jchar *elems, jint mode); + void (JNICALL *ReleaseShortArrayElements) + (JNIEnv *env, jshortArray array, jshort *elems, jint mode); + void (JNICALL *ReleaseIntArrayElements) + (JNIEnv *env, jintArray array, jint *elems, jint mode); + void (JNICALL *ReleaseLongArrayElements) + (JNIEnv *env, jlongArray array, jlong *elems, jint mode); + void (JNICALL *ReleaseFloatArrayElements) + (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode); + void (JNICALL *ReleaseDoubleArrayElements) + (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode); + + void (JNICALL *GetBooleanArrayRegion) + (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf); + void (JNICALL *GetByteArrayRegion) + (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf); + void (JNICALL *GetCharArrayRegion) + (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf); + void (JNICALL *GetShortArrayRegion) + (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf); + void (JNICALL *GetIntArrayRegion) + (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf); + void (JNICALL *GetLongArrayRegion) + (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf); + void (JNICALL *GetFloatArrayRegion) + (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf); + void (JNICALL *GetDoubleArrayRegion) + (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf); + + void (JNICALL *SetBooleanArrayRegion) + (JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf); + void (JNICALL *SetByteArrayRegion) + (JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf); + void (JNICALL *SetCharArrayRegion) + (JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf); + void (JNICALL *SetShortArrayRegion) + (JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf); + void (JNICALL *SetIntArrayRegion) + (JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf); + void (JNICALL *SetLongArrayRegion) + (JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf); + void (JNICALL *SetFloatArrayRegion) + (JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf); + void (JNICALL *SetDoubleArrayRegion) + (JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf); + + jint (JNICALL *RegisterNatives) + (JNIEnv *env, jclass clazz, const JNINativeMethod *methods, + jint nMethods); + jint (JNICALL *UnregisterNatives) + (JNIEnv *env, jclass clazz); + + jint (JNICALL *MonitorEnter) + (JNIEnv *env, jobject obj); + jint (JNICALL *MonitorExit) + (JNIEnv *env, jobject obj); + + jint (JNICALL *GetJavaVM) + (JNIEnv *env, JavaVM **vm); + + void (JNICALL *GetStringRegion) + (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf); + void (JNICALL *GetStringUTFRegion) + (JNIEnv *env, jstring str, jsize start, jsize len, char *buf); + + void * (JNICALL *GetPrimitiveArrayCritical) + (JNIEnv *env, jarray array, jboolean *isCopy); + void (JNICALL *ReleasePrimitiveArrayCritical) + (JNIEnv *env, jarray array, void *carray, jint mode); + + const jchar * (JNICALL *GetStringCritical) + (JNIEnv *env, jstring string, jboolean *isCopy); + void (JNICALL *ReleaseStringCritical) + (JNIEnv *env, jstring string, const jchar *cstring); + + jweak (JNICALL *NewWeakGlobalRef) + (JNIEnv *env, jobject obj); + void (JNICALL *DeleteWeakGlobalRef) + (JNIEnv *env, jweak ref); + + jboolean (JNICALL *ExceptionCheck) + (JNIEnv *env); + + jobject (JNICALL *NewDirectByteBuffer) + (JNIEnv* env, void* address, jlong capacity); + void* (JNICALL *GetDirectBufferAddress) + (JNIEnv* env, jobject buf); + jlong (JNICALL *GetDirectBufferCapacity) + (JNIEnv* env, jobject buf); + + /* New JNI 1.6 Features */ + + jobjectRefType (JNICALL *GetObjectRefType) + (JNIEnv* env, jobject obj); + + #if TARGET_RT_MAC_CFM && defined(__ppc__) + void* real_functions[228]; + #endif /* TARGET_RT_MAC_CFM && defined(__ppc__) */ +}; + +/* + * We use inlined functions for C++ so that programmers can write: + * + * env->FindClass("java/lang/String") + * + * in C++ rather than: + * + * (*env)->FindClass(env, "java/lang/String") + * + * in C. + */ + +struct JNIEnv_ { + const struct JNINativeInterface_ *functions; +#ifdef __cplusplus + + jint GetVersion() { + return functions->GetVersion(this); + } + jclass DefineClass(const char *name, jobject loader, const jbyte *buf, + jsize len) { + return functions->DefineClass(this, name, loader, buf, len); + } + jclass FindClass(const char *name) { + return functions->FindClass(this, name); + } + jmethodID FromReflectedMethod(jobject method) { + return functions->FromReflectedMethod(this,method); + } + jfieldID FromReflectedField(jobject field) { + return functions->FromReflectedField(this,field); + } + + jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) { + return functions->ToReflectedMethod(this, cls, methodID, isStatic); + } + + jclass GetSuperclass(jclass sub) { + return functions->GetSuperclass(this, sub); + } + jboolean IsAssignableFrom(jclass sub, jclass sup) { + return functions->IsAssignableFrom(this, sub, sup); + } + + jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) { + return functions->ToReflectedField(this,cls,fieldID,isStatic); + } + + jint Throw(jthrowable obj) { + return functions->Throw(this, obj); + } + jint ThrowNew(jclass clazz, const char *msg) { + return functions->ThrowNew(this, clazz, msg); + } + jthrowable ExceptionOccurred() { + return functions->ExceptionOccurred(this); + } + void ExceptionDescribe() { + functions->ExceptionDescribe(this); + } + void ExceptionClear() { + functions->ExceptionClear(this); + } + void FatalError(const char *msg) { + functions->FatalError(this, msg); + } + + jint PushLocalFrame(jint capacity) { + return functions->PushLocalFrame(this,capacity); + } + jobject PopLocalFrame(jobject result) { + return functions->PopLocalFrame(this,result); + } + + jobject NewGlobalRef(jobject lobj) { + return functions->NewGlobalRef(this,lobj); + } + void DeleteGlobalRef(jobject gref) { + functions->DeleteGlobalRef(this,gref); + } + void DeleteLocalRef(jobject obj) { + functions->DeleteLocalRef(this, obj); + } + + jboolean IsSameObject(jobject obj1, jobject obj2) { + return functions->IsSameObject(this,obj1,obj2); + } + + jobject NewLocalRef(jobject ref) { + return functions->NewLocalRef(this,ref); + } + jint EnsureLocalCapacity(jint capacity) { + return functions->EnsureLocalCapacity(this,capacity); + } + + jobject AllocObject(jclass clazz) { + return functions->AllocObject(this,clazz); + } + jobject NewObject(jclass clazz, jmethodID methodID, ...) { + va_list args; + jobject result; + va_start(args, methodID); + result = functions->NewObjectV(this,clazz,methodID,args); + va_end(args); + return result; + } + jobject NewObjectV(jclass clazz, jmethodID methodID, + va_list args) { + return functions->NewObjectV(this,clazz,methodID,args); + } + jobject NewObjectA(jclass clazz, jmethodID methodID, + const jvalue *args) { + return functions->NewObjectA(this,clazz,methodID,args); + } + + jclass GetObjectClass(jobject obj) { + return functions->GetObjectClass(this,obj); + } + jboolean IsInstanceOf(jobject obj, jclass clazz) { + return functions->IsInstanceOf(this,obj,clazz); + } + + jmethodID GetMethodID(jclass clazz, const char *name, + const char *sig) { + return functions->GetMethodID(this,clazz,name,sig); + } + + jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jobject result; + va_start(args,methodID); + result = functions->CallObjectMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jobject CallObjectMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallObjectMethodV(this,obj,methodID,args); + } + jobject CallObjectMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallObjectMethodA(this,obj,methodID,args); + } + + jboolean CallBooleanMethod(jobject obj, + jmethodID methodID, ...) { + va_list args; + jboolean result; + va_start(args,methodID); + result = functions->CallBooleanMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jboolean CallBooleanMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallBooleanMethodV(this,obj,methodID,args); + } + jboolean CallBooleanMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallBooleanMethodA(this,obj,methodID, args); + } + + jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jbyte result; + va_start(args,methodID); + result = functions->CallByteMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jbyte CallByteMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallByteMethodV(this,obj,methodID,args); + } + jbyte CallByteMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallByteMethodA(this,obj,methodID,args); + } + + jchar CallCharMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jchar result; + va_start(args,methodID); + result = functions->CallCharMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jchar CallCharMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallCharMethodV(this,obj,methodID,args); + } + jchar CallCharMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallCharMethodA(this,obj,methodID,args); + } + + jshort CallShortMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jshort result; + va_start(args,methodID); + result = functions->CallShortMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jshort CallShortMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallShortMethodV(this,obj,methodID,args); + } + jshort CallShortMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallShortMethodA(this,obj,methodID,args); + } + + jint CallIntMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jint result; + va_start(args,methodID); + result = functions->CallIntMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jint CallIntMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallIntMethodV(this,obj,methodID,args); + } + jint CallIntMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallIntMethodA(this,obj,methodID,args); + } + + jlong CallLongMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jlong result; + va_start(args,methodID); + result = functions->CallLongMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jlong CallLongMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallLongMethodV(this,obj,methodID,args); + } + jlong CallLongMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallLongMethodA(this,obj,methodID,args); + } + + jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jfloat result; + va_start(args,methodID); + result = functions->CallFloatMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jfloat CallFloatMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallFloatMethodV(this,obj,methodID,args); + } + jfloat CallFloatMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallFloatMethodA(this,obj,methodID,args); + } + + jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jdouble result; + va_start(args,methodID); + result = functions->CallDoubleMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jdouble CallDoubleMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallDoubleMethodV(this,obj,methodID,args); + } + jdouble CallDoubleMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallDoubleMethodA(this,obj,methodID,args); + } + + void CallVoidMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + va_start(args,methodID); + functions->CallVoidMethodV(this,obj,methodID,args); + va_end(args); + } + void CallVoidMethodV(jobject obj, jmethodID methodID, + va_list args) { + functions->CallVoidMethodV(this,obj,methodID,args); + } + void CallVoidMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + functions->CallVoidMethodA(this,obj,methodID,args); + } + + jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jobject result; + va_start(args,methodID); + result = functions->CallNonvirtualObjectMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualObjectMethodV(this,obj,clazz, + methodID,args); + } + jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualObjectMethodA(this,obj,clazz, + methodID,args); + } + + jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jboolean result; + va_start(args,methodID); + result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualBooleanMethodV(this,obj,clazz, + methodID,args); + } + jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualBooleanMethodA(this,obj,clazz, + methodID, args); + } + + jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jbyte result; + va_start(args,methodID); + result = functions->CallNonvirtualByteMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualByteMethodV(this,obj,clazz, + methodID,args); + } + jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualByteMethodA(this,obj,clazz, + methodID,args); + } + + jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jchar result; + va_start(args,methodID); + result = functions->CallNonvirtualCharMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualCharMethodV(this,obj,clazz, + methodID,args); + } + jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualCharMethodA(this,obj,clazz, + methodID,args); + } + + jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jshort result; + va_start(args,methodID); + result = functions->CallNonvirtualShortMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualShortMethodV(this,obj,clazz, + methodID,args); + } + jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualShortMethodA(this,obj,clazz, + methodID,args); + } + + jint CallNonvirtualIntMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jint result; + va_start(args,methodID); + result = functions->CallNonvirtualIntMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jint CallNonvirtualIntMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualIntMethodV(this,obj,clazz, + methodID,args); + } + jint CallNonvirtualIntMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualIntMethodA(this,obj,clazz, + methodID,args); + } + + jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jlong result; + va_start(args,methodID); + result = functions->CallNonvirtualLongMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualLongMethodV(this,obj,clazz, + methodID,args); + } + jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualLongMethodA(this,obj,clazz, + methodID,args); + } + + jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jfloat result; + va_start(args,methodID); + result = functions->CallNonvirtualFloatMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz, + jmethodID methodID, + va_list args) { + return functions->CallNonvirtualFloatMethodV(this,obj,clazz, + methodID,args); + } + jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz, + jmethodID methodID, + const jvalue * args) { + return functions->CallNonvirtualFloatMethodA(this,obj,clazz, + methodID,args); + } + + jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jdouble result; + va_start(args,methodID); + result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz, + jmethodID methodID, + va_list args) { + return functions->CallNonvirtualDoubleMethodV(this,obj,clazz, + methodID,args); + } + jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz, + jmethodID methodID, + const jvalue * args) { + return functions->CallNonvirtualDoubleMethodA(this,obj,clazz, + methodID,args); + } + + void CallNonvirtualVoidMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + va_start(args,methodID); + functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args); + va_end(args); + } + void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, + jmethodID methodID, + va_list args) { + functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args); + } + void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, + jmethodID methodID, + const jvalue * args) { + functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args); + } + + jfieldID GetFieldID(jclass clazz, const char *name, + const char *sig) { + return functions->GetFieldID(this,clazz,name,sig); + } + + jobject GetObjectField(jobject obj, jfieldID fieldID) { + return functions->GetObjectField(this,obj,fieldID); + } + jboolean GetBooleanField(jobject obj, jfieldID fieldID) { + return functions->GetBooleanField(this,obj,fieldID); + } + jbyte GetByteField(jobject obj, jfieldID fieldID) { + return functions->GetByteField(this,obj,fieldID); + } + jchar GetCharField(jobject obj, jfieldID fieldID) { + return functions->GetCharField(this,obj,fieldID); + } + jshort GetShortField(jobject obj, jfieldID fieldID) { + return functions->GetShortField(this,obj,fieldID); + } + jint GetIntField(jobject obj, jfieldID fieldID) { + return functions->GetIntField(this,obj,fieldID); + } + jlong GetLongField(jobject obj, jfieldID fieldID) { + return functions->GetLongField(this,obj,fieldID); + } + jfloat GetFloatField(jobject obj, jfieldID fieldID) { + return functions->GetFloatField(this,obj,fieldID); + } + jdouble GetDoubleField(jobject obj, jfieldID fieldID) { + return functions->GetDoubleField(this,obj,fieldID); + } + + void SetObjectField(jobject obj, jfieldID fieldID, jobject val) { + functions->SetObjectField(this,obj,fieldID,val); + } + void SetBooleanField(jobject obj, jfieldID fieldID, + jboolean val) { + functions->SetBooleanField(this,obj,fieldID,val); + } + void SetByteField(jobject obj, jfieldID fieldID, + jbyte val) { + functions->SetByteField(this,obj,fieldID,val); + } + void SetCharField(jobject obj, jfieldID fieldID, + jchar val) { + functions->SetCharField(this,obj,fieldID,val); + } + void SetShortField(jobject obj, jfieldID fieldID, + jshort val) { + functions->SetShortField(this,obj,fieldID,val); + } + void SetIntField(jobject obj, jfieldID fieldID, + jint val) { + functions->SetIntField(this,obj,fieldID,val); + } + void SetLongField(jobject obj, jfieldID fieldID, + jlong val) { + functions->SetLongField(this,obj,fieldID,val); + } + void SetFloatField(jobject obj, jfieldID fieldID, + jfloat val) { + functions->SetFloatField(this,obj,fieldID,val); + } + void SetDoubleField(jobject obj, jfieldID fieldID, + jdouble val) { + functions->SetDoubleField(this,obj,fieldID,val); + } + + jmethodID GetStaticMethodID(jclass clazz, const char *name, + const char *sig) { + return functions->GetStaticMethodID(this,clazz,name,sig); + } + + jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, + ...) { + va_list args; + jobject result; + va_start(args,methodID); + result = functions->CallStaticObjectMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID, + va_list args) { + return functions->CallStaticObjectMethodV(this,clazz,methodID,args); + } + jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID, + const jvalue *args) { + return functions->CallStaticObjectMethodA(this,clazz,methodID,args); + } + + jboolean CallStaticBooleanMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jboolean result; + va_start(args,methodID); + result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jboolean CallStaticBooleanMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticBooleanMethodV(this,clazz,methodID,args); + } + jboolean CallStaticBooleanMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticBooleanMethodA(this,clazz,methodID,args); + } + + jbyte CallStaticByteMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jbyte result; + va_start(args,methodID); + result = functions->CallStaticByteMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jbyte CallStaticByteMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticByteMethodV(this,clazz,methodID,args); + } + jbyte CallStaticByteMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticByteMethodA(this,clazz,methodID,args); + } + + jchar CallStaticCharMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jchar result; + va_start(args,methodID); + result = functions->CallStaticCharMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jchar CallStaticCharMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticCharMethodV(this,clazz,methodID,args); + } + jchar CallStaticCharMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticCharMethodA(this,clazz,methodID,args); + } + + jshort CallStaticShortMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jshort result; + va_start(args,methodID); + result = functions->CallStaticShortMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jshort CallStaticShortMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticShortMethodV(this,clazz,methodID,args); + } + jshort CallStaticShortMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticShortMethodA(this,clazz,methodID,args); + } + + jint CallStaticIntMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jint result; + va_start(args,methodID); + result = functions->CallStaticIntMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jint CallStaticIntMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticIntMethodV(this,clazz,methodID,args); + } + jint CallStaticIntMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticIntMethodA(this,clazz,methodID,args); + } + + jlong CallStaticLongMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jlong result; + va_start(args,methodID); + result = functions->CallStaticLongMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jlong CallStaticLongMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticLongMethodV(this,clazz,methodID,args); + } + jlong CallStaticLongMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticLongMethodA(this,clazz,methodID,args); + } + + jfloat CallStaticFloatMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jfloat result; + va_start(args,methodID); + result = functions->CallStaticFloatMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jfloat CallStaticFloatMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticFloatMethodV(this,clazz,methodID,args); + } + jfloat CallStaticFloatMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticFloatMethodA(this,clazz,methodID,args); + } + + jdouble CallStaticDoubleMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jdouble result; + va_start(args,methodID); + result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jdouble CallStaticDoubleMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticDoubleMethodV(this,clazz,methodID,args); + } + jdouble CallStaticDoubleMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticDoubleMethodA(this,clazz,methodID,args); + } + + void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) { + va_list args; + va_start(args,methodID); + functions->CallStaticVoidMethodV(this,cls,methodID,args); + va_end(args); + } + void CallStaticVoidMethodV(jclass cls, jmethodID methodID, + va_list args) { + functions->CallStaticVoidMethodV(this,cls,methodID,args); + } + void CallStaticVoidMethodA(jclass cls, jmethodID methodID, + const jvalue * args) { + functions->CallStaticVoidMethodA(this,cls,methodID,args); + } + + jfieldID GetStaticFieldID(jclass clazz, const char *name, + const char *sig) { + return functions->GetStaticFieldID(this,clazz,name,sig); + } + jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticObjectField(this,clazz,fieldID); + } + jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticBooleanField(this,clazz,fieldID); + } + jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticByteField(this,clazz,fieldID); + } + jchar GetStaticCharField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticCharField(this,clazz,fieldID); + } + jshort GetStaticShortField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticShortField(this,clazz,fieldID); + } + jint GetStaticIntField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticIntField(this,clazz,fieldID); + } + jlong GetStaticLongField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticLongField(this,clazz,fieldID); + } + jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticFloatField(this,clazz,fieldID); + } + jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticDoubleField(this,clazz,fieldID); + } + + void SetStaticObjectField(jclass clazz, jfieldID fieldID, + jobject value) { + functions->SetStaticObjectField(this,clazz,fieldID,value); + } + void SetStaticBooleanField(jclass clazz, jfieldID fieldID, + jboolean value) { + functions->SetStaticBooleanField(this,clazz,fieldID,value); + } + void SetStaticByteField(jclass clazz, jfieldID fieldID, + jbyte value) { + functions->SetStaticByteField(this,clazz,fieldID,value); + } + void SetStaticCharField(jclass clazz, jfieldID fieldID, + jchar value) { + functions->SetStaticCharField(this,clazz,fieldID,value); + } + void SetStaticShortField(jclass clazz, jfieldID fieldID, + jshort value) { + functions->SetStaticShortField(this,clazz,fieldID,value); + } + void SetStaticIntField(jclass clazz, jfieldID fieldID, + jint value) { + functions->SetStaticIntField(this,clazz,fieldID,value); + } + void SetStaticLongField(jclass clazz, jfieldID fieldID, + jlong value) { + functions->SetStaticLongField(this,clazz,fieldID,value); + } + void SetStaticFloatField(jclass clazz, jfieldID fieldID, + jfloat value) { + functions->SetStaticFloatField(this,clazz,fieldID,value); + } + void SetStaticDoubleField(jclass clazz, jfieldID fieldID, + jdouble value) { + functions->SetStaticDoubleField(this,clazz,fieldID,value); + } + + jstring NewString(const jchar *unicode, jsize len) { + return functions->NewString(this,unicode,len); + } + jsize GetStringLength(jstring str) { + return functions->GetStringLength(this,str); + } + const jchar *GetStringChars(jstring str, jboolean *isCopy) { + return functions->GetStringChars(this,str,isCopy); + } + void ReleaseStringChars(jstring str, const jchar *chars) { + functions->ReleaseStringChars(this,str,chars); + } + + jstring NewStringUTF(const char *utf) { + return functions->NewStringUTF(this,utf); + } + jsize GetStringUTFLength(jstring str) { + return functions->GetStringUTFLength(this,str); + } + const char* GetStringUTFChars(jstring str, jboolean *isCopy) { + return functions->GetStringUTFChars(this,str,isCopy); + } + void ReleaseStringUTFChars(jstring str, const char* chars) { + functions->ReleaseStringUTFChars(this,str,chars); + } + + jsize GetArrayLength(jarray array) { + return functions->GetArrayLength(this,array); + } + + jobjectArray NewObjectArray(jsize len, jclass clazz, + jobject init) { + return functions->NewObjectArray(this,len,clazz,init); + } + jobject GetObjectArrayElement(jobjectArray array, jsize index) { + return functions->GetObjectArrayElement(this,array,index); + } + void SetObjectArrayElement(jobjectArray array, jsize index, + jobject val) { + functions->SetObjectArrayElement(this,array,index,val); + } + + jbooleanArray NewBooleanArray(jsize len) { + return functions->NewBooleanArray(this,len); + } + jbyteArray NewByteArray(jsize len) { + return functions->NewByteArray(this,len); + } + jcharArray NewCharArray(jsize len) { + return functions->NewCharArray(this,len); + } + jshortArray NewShortArray(jsize len) { + return functions->NewShortArray(this,len); + } + jintArray NewIntArray(jsize len) { + return functions->NewIntArray(this,len); + } + jlongArray NewLongArray(jsize len) { + return functions->NewLongArray(this,len); + } + jfloatArray NewFloatArray(jsize len) { + return functions->NewFloatArray(this,len); + } + jdoubleArray NewDoubleArray(jsize len) { + return functions->NewDoubleArray(this,len); + } + + jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) { + return functions->GetBooleanArrayElements(this,array,isCopy); + } + jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) { + return functions->GetByteArrayElements(this,array,isCopy); + } + jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) { + return functions->GetCharArrayElements(this,array,isCopy); + } + jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) { + return functions->GetShortArrayElements(this,array,isCopy); + } + jint * GetIntArrayElements(jintArray array, jboolean *isCopy) { + return functions->GetIntArrayElements(this,array,isCopy); + } + jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) { + return functions->GetLongArrayElements(this,array,isCopy); + } + jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) { + return functions->GetFloatArrayElements(this,array,isCopy); + } + jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) { + return functions->GetDoubleArrayElements(this,array,isCopy); + } + + void ReleaseBooleanArrayElements(jbooleanArray array, + jboolean *elems, + jint mode) { + functions->ReleaseBooleanArrayElements(this,array,elems,mode); + } + void ReleaseByteArrayElements(jbyteArray array, + jbyte *elems, + jint mode) { + functions->ReleaseByteArrayElements(this,array,elems,mode); + } + void ReleaseCharArrayElements(jcharArray array, + jchar *elems, + jint mode) { + functions->ReleaseCharArrayElements(this,array,elems,mode); + } + void ReleaseShortArrayElements(jshortArray array, + jshort *elems, + jint mode) { + functions->ReleaseShortArrayElements(this,array,elems,mode); + } + void ReleaseIntArrayElements(jintArray array, + jint *elems, + jint mode) { + functions->ReleaseIntArrayElements(this,array,elems,mode); + } + void ReleaseLongArrayElements(jlongArray array, + jlong *elems, + jint mode) { + functions->ReleaseLongArrayElements(this,array,elems,mode); + } + void ReleaseFloatArrayElements(jfloatArray array, + jfloat *elems, + jint mode) { + functions->ReleaseFloatArrayElements(this,array,elems,mode); + } + void ReleaseDoubleArrayElements(jdoubleArray array, + jdouble *elems, + jint mode) { + functions->ReleaseDoubleArrayElements(this,array,elems,mode); + } + + void GetBooleanArrayRegion(jbooleanArray array, + jsize start, jsize len, jboolean *buf) { + functions->GetBooleanArrayRegion(this,array,start,len,buf); + } + void GetByteArrayRegion(jbyteArray array, + jsize start, jsize len, jbyte *buf) { + functions->GetByteArrayRegion(this,array,start,len,buf); + } + void GetCharArrayRegion(jcharArray array, + jsize start, jsize len, jchar *buf) { + functions->GetCharArrayRegion(this,array,start,len,buf); + } + void GetShortArrayRegion(jshortArray array, + jsize start, jsize len, jshort *buf) { + functions->GetShortArrayRegion(this,array,start,len,buf); + } + void GetIntArrayRegion(jintArray array, + jsize start, jsize len, jint *buf) { + functions->GetIntArrayRegion(this,array,start,len,buf); + } + void GetLongArrayRegion(jlongArray array, + jsize start, jsize len, jlong *buf) { + functions->GetLongArrayRegion(this,array,start,len,buf); + } + void GetFloatArrayRegion(jfloatArray array, + jsize start, jsize len, jfloat *buf) { + functions->GetFloatArrayRegion(this,array,start,len,buf); + } + void GetDoubleArrayRegion(jdoubleArray array, + jsize start, jsize len, jdouble *buf) { + functions->GetDoubleArrayRegion(this,array,start,len,buf); + } + + void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, + const jboolean *buf) { + functions->SetBooleanArrayRegion(this,array,start,len,buf); + } + void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, + const jbyte *buf) { + functions->SetByteArrayRegion(this,array,start,len,buf); + } + void SetCharArrayRegion(jcharArray array, jsize start, jsize len, + const jchar *buf) { + functions->SetCharArrayRegion(this,array,start,len,buf); + } + void SetShortArrayRegion(jshortArray array, jsize start, jsize len, + const jshort *buf) { + functions->SetShortArrayRegion(this,array,start,len,buf); + } + void SetIntArrayRegion(jintArray array, jsize start, jsize len, + const jint *buf) { + functions->SetIntArrayRegion(this,array,start,len,buf); + } + void SetLongArrayRegion(jlongArray array, jsize start, jsize len, + const jlong *buf) { + functions->SetLongArrayRegion(this,array,start,len,buf); + } + void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, + const jfloat *buf) { + functions->SetFloatArrayRegion(this,array,start,len,buf); + } + void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, + const jdouble *buf) { + functions->SetDoubleArrayRegion(this,array,start,len,buf); + } + + jint RegisterNatives(jclass clazz, const JNINativeMethod *methods, + jint nMethods) { + return functions->RegisterNatives(this,clazz,methods,nMethods); + } + jint UnregisterNatives(jclass clazz) { + return functions->UnregisterNatives(this,clazz); + } + + jint MonitorEnter(jobject obj) { + return functions->MonitorEnter(this,obj); + } + jint MonitorExit(jobject obj) { + return functions->MonitorExit(this,obj); + } + + jint GetJavaVM(JavaVM **vm) { + return functions->GetJavaVM(this,vm); + } + + void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) { + functions->GetStringRegion(this,str,start,len,buf); + } + void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) { + functions->GetStringUTFRegion(this,str,start,len,buf); + } + + void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) { + return functions->GetPrimitiveArrayCritical(this,array,isCopy); + } + void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) { + functions->ReleasePrimitiveArrayCritical(this,array,carray,mode); + } + + const jchar * GetStringCritical(jstring string, jboolean *isCopy) { + return functions->GetStringCritical(this,string,isCopy); + } + void ReleaseStringCritical(jstring string, const jchar *cstring) { + functions->ReleaseStringCritical(this,string,cstring); + } + + jweak NewWeakGlobalRef(jobject obj) { + return functions->NewWeakGlobalRef(this,obj); + } + void DeleteWeakGlobalRef(jweak ref) { + functions->DeleteWeakGlobalRef(this,ref); + } + + jboolean ExceptionCheck() { + return functions->ExceptionCheck(this); + } + + jobject NewDirectByteBuffer(void* address, jlong capacity) { + return functions->NewDirectByteBuffer(this, address, capacity); + } + void* GetDirectBufferAddress(jobject buf) { + return functions->GetDirectBufferAddress(this, buf); + } + jlong GetDirectBufferCapacity(jobject buf) { + return functions->GetDirectBufferCapacity(this, buf); + } + jobjectRefType GetObjectRefType(jobject obj) { + return functions->GetObjectRefType(this, obj); + } + +#endif /* __cplusplus */ +}; + +typedef struct JavaVMOption { + char *optionString; + void *extraInfo; +} JavaVMOption; + +typedef struct JavaVMInitArgs { + jint version; + + jint nOptions; + JavaVMOption *options; + jboolean ignoreUnrecognized; +} JavaVMInitArgs; + +typedef struct JavaVMAttachArgs { + jint version; + + char *name; + jobject group; +} JavaVMAttachArgs; + +/* These will be VM-specific. */ + +#define JDK1_2 +#define JDK1_4 + +/* End VM-specific. */ + +struct JNIInvokeInterface_ { + void *reserved0; + void *reserved1; + void *reserved2; + +#if !TARGET_RT_MAC_CFM && defined(__ppc__) + void* cfm_vectors[4]; +#endif /* !TARGET_RT_MAC_CFM && defined(__ppc__) */ + + jint (JNICALL *DestroyJavaVM)(JavaVM *vm); + + jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args); + + jint (JNICALL *DetachCurrentThread)(JavaVM *vm); + + jint (JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version); + + jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args); + +#if TARGET_RT_MAC_CFM && defined(__ppc__) + void* real_functions[5]; +#endif /* TARGET_RT_MAC_CFM && defined(__ppc__) */ +}; + +struct JavaVM_ { + const struct JNIInvokeInterface_ *functions; +#ifdef __cplusplus + + jint DestroyJavaVM() { + return functions->DestroyJavaVM(this); + } + jint AttachCurrentThread(void **penv, void *args) { + return functions->AttachCurrentThread(this, penv, args); + } + jint DetachCurrentThread() { + return functions->DetachCurrentThread(this); + } + + jint GetEnv(void **penv, jint version) { + return functions->GetEnv(this, penv, version); + } + jint AttachCurrentThreadAsDaemon(void **penv, void *args) { + return functions->AttachCurrentThreadAsDaemon(this, penv, args); + } +#endif +}; + +#ifdef _JNI_IMPLEMENTATION_ +#define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT +#else +#define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT +#endif +_JNI_IMPORT_OR_EXPORT_ __attribute__((deprecated)) jint JNICALL +JNI_GetDefaultJavaVMInitArgs(void *args); + +_JNI_IMPORT_OR_EXPORT_ __attribute__((deprecated)) jint JNICALL +JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args); + +_JNI_IMPORT_OR_EXPORT_ __attribute__((deprecated)) jint JNICALL +JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *); + +/* Defined by native libraries. */ +JNIEXPORT jint JNICALL +JNI_OnLoad(JavaVM *vm, void *reserved); + +JNIEXPORT void JNICALL +JNI_OnUnload(JavaVM *vm, void *reserved); + +#define JNI_VERSION_1_1 0x00010001 +#define JNI_VERSION_1_2 0x00010002 +#define JNI_VERSION_1_4 0x00010004 +#define JNI_VERSION_1_6 0x00010006 + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* !_JAVASOFT_JNI_H_ */ + + + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni_md.h b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni_md.h new file mode 100644 index 0000000000..d71d676ad7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/jni_md.h @@ -0,0 +1,26 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* + * @(#)jni_md.h 1.19 05/11/17 + * + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + */ + +#ifndef _JAVASOFT_JNI_MD_H_ +#define _JAVASOFT_JNI_MD_H_ + +#define JNIEXPORT __attribute__((visibility("default"))) +#define JNIIMPORT +#define JNICALL + +#if defined(__LP64__) && __LP64__ /* for -Wundef */ +typedef int jint; +#else +typedef long jint; +#endif +typedef long long jlong; +typedef signed char jbyte; + +#endif /* !_JAVASOFT_JNI_MD_H_ */ diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/lldb/Host/Config.h.cmake b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/lldb/Host/Config.h.cmake new file mode 100644 index 0000000000..9f86ec47ed --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/include/lldb/Host/Config.h.cmake @@ -0,0 +1,64 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +//===-- Config.h -----------------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_HOST_CONFIG_H +#define LLDB_HOST_CONFIG_H + +#cmakedefine01 LLDB_EDITLINE_USE_WCHAR + +#cmakedefine01 LLDB_HAVE_EL_RFUNC_T + + +#cmakedefine01 HAVE_SYS_TYPES_H + +#cmakedefine01 HAVE_SYS_EVENT_H + +#cmakedefine01 HAVE_PPOLL + +#cmakedefine01 HAVE_PTSNAME_R + +#cmakedefine01 HAVE_SIGACTION + +#cmakedefine01 HAVE_PROCESS_VM_READV + +#cmakedefine01 HAVE_NR_PROCESS_VM_READV + +#ifndef HAVE_LIBCOMPRESSION +#cmakedefine HAVE_LIBCOMPRESSION +#endif + +#cmakedefine01 LLDB_ENABLE_POSIX + +#cmakedefine01 LLDB_ENABLE_TERMIOS + +#cmakedefine01 LLDB_ENABLE_LZMA + +#cmakedefine01 LLDB_ENABLE_CURSES + +#cmakedefine01 CURSES_HAVE_NCURSES_CURSES_H + +#cmakedefine01 LLDB_ENABLE_LIBEDIT + +#cmakedefine01 LLDB_ENABLE_LIBXML2 + +#cmakedefine01 LLDB_ENABLE_LUA + +#cmakedefine01 LLDB_ENABLE_PYTHON + +#cmakedefine01 LLDB_ENABLE_JAVA + +#cmakedefine01 LLDB_EMBED_PYTHON_HOME + +#cmakedefine LLDB_PYTHON_HOME R"(${LLDB_PYTHON_HOME})" + +#define LLDB_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" + +#endif // #ifndef LLDB_HOST_CONFIG_H diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/CMakeLists.txt new file mode 100644 index 0000000000..1e255457ec --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/CMakeLists.txt @@ -0,0 +1,247 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) + add_definitions( -DEXPORT_LIBLLDB ) +endif() + +get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS) + +if(LLDB_BUILD_FRAMEWORK) + set(option_install_prefix INSTALL_PREFIX ${LLDB_FRAMEWORK_INSTALL_DIR}) + set(option_framework FRAMEWORK) +endif() + +if(LLDB_ENABLE_PYTHON) + get_target_property(python_bindings_dir swig_wrapper_python BINARY_DIR) + set(lldb_python_wrapper ${python_bindings_dir}/LLDBWrapPython.cpp) +endif() + +if(LLDB_ENABLE_LUA) + get_target_property(lua_bindings_dir swig_wrapper_lua BINARY_DIR) + set(lldb_lua_wrapper ${lua_bindings_dir}/LLDBWrapLua.cpp) +endif() + +if(LLDB_ENABLE_JAVA) + get_target_property(java_bindings_dir swig_wrapper_java BINARY_DIR) + set(lldb_java_wrapper ${java_bindings_dir}/LLDBWrapJava.cpp) +endif() + +add_lldb_library(liblldb SHARED ${option_framework} + SBAddress.cpp + SBAttachInfo.cpp + SBBlock.cpp + SBBreakpoint.cpp + SBBreakpointLocation.cpp + SBBreakpointName.cpp + SBBreakpointOptionCommon.cpp + SBBroadcaster.cpp + SBCommandInterpreter.cpp + SBCommandInterpreterRunOptions.cpp + SBCommandReturnObject.cpp + SBCommunication.cpp + SBCompileUnit.cpp + SBData.cpp + SBDebugger.cpp + SBDeclaration.cpp + SBEnvironment.cpp + SBError.cpp + SBEvent.cpp + SBExecutionContext.cpp + SBExpressionOptions.cpp + SBFileSpec.cpp + SBFile.cpp + SBFileSpecList.cpp + SBFrame.cpp + SBFunction.cpp + SBHostOS.cpp + SBInstruction.cpp + SBInstructionList.cpp + SBLanguageRuntime.cpp + SBLaunchInfo.cpp + SBLineEntry.cpp + SBListener.cpp + SBMemoryRegionInfo.cpp + SBMemoryRegionInfoList.cpp + SBModule.cpp + SBModuleSpec.cpp + SBPlatform.cpp + SBProcess.cpp + SBProcessInfo.cpp + SBQueue.cpp + SBQueueItem.cpp + SBReproducer.cpp + SBSection.cpp + SBSourceManager.cpp + SBStream.cpp + SBStringList.cpp + SBStructuredData.cpp + SBSymbol.cpp + SBSymbolContext.cpp + SBSymbolContextList.cpp + SBTarget.cpp + SBThread.cpp + SBThreadCollection.cpp + SBThreadPlan.cpp + SBTrace.cpp + SBTraceOptions.cpp + SBType.cpp + SBTypeCategory.cpp + SBTypeEnumMember.cpp + SBTypeFilter.cpp + SBTypeFormat.cpp + SBTypeNameSpecifier.cpp + SBTypeSummary.cpp + SBTypeSynthetic.cpp + SBValue.cpp + SBValueList.cpp + SBVariablesOptions.cpp + SBWatchpoint.cpp + SBUnixSignals.cpp + SystemInitializerFull.cpp + ${lldb_python_wrapper} + ${lldb_lua_wrapper} + ${lldb_java_wrapper} + + LINK_LIBS + lldbBase + lldbBreakpoint + lldbCore + lldbDataFormatters + lldbExpression + lldbHost + lldbInitialization + lldbInterpreter + lldbSymbol + lldbTarget + lldbUtility + ${LLDB_ALL_PLUGINS} + LINK_COMPONENTS + Support + + ${option_install_prefix} +) + +# lib/pythonX.Y/dist-packages/lldb/_lldb.so is a symlink to lib/liblldb.so, +# which depends on lib/libLLVM*.so (BUILD_SHARED_LIBS) or lib/libLLVM-10git.so +# (LLVM_LINK_LLVM_DYLIB). Add an additional rpath $ORIGIN/../../../../lib so +# that _lldb.so can be loaded from Python. +if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX AND NOT APPLE) + set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}") +endif() + +if(Python3_RPATH) + set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}") + set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH "${Python3_RPATH}") +endif() + + +if(LLDB_ENABLE_PYTHON) + add_dependencies(liblldb swig_wrapper_python) + + if (MSVC) + set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0") + else() + set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " -w") + endif() + + set_source_files_properties(${lldb_python_wrapper} PROPERTIES GENERATED ON) + if (CLANG_CL) + set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING + PROPERTY COMPILE_FLAGS " -Wno-unused-function") + endif() + if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND + NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") + set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING + PROPERTY COMPILE_FLAGS " -Wno-sequence-point -Wno-cast-qual") + endif () +endif() + +if(LLDB_ENABLE_LUA) + add_dependencies(liblldb swig_wrapper_lua) + target_include_directories(liblldb PRIVATE ${LUA_INCLUDE_DIR}) + + if (MSVC) + set_property(SOURCE ${lldb_lua_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0") + else() + set_property(SOURCE ${lldb_lua_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " -w") + endif() + + set_source_files_properties(${lldb_lua_wrapper} PROPERTIES GENERATED ON) +endif() + +if(LLDB_ENABLE_JAVA) + add_dependencies(liblldb swig_wrapper_java) + target_include_directories(liblldb PRIVATE ${JAVA_INCLUDE_DIR}) + target_include_directories(liblldb PRIVATE ${JAVA_INCLUDE_DIR}/darwin) + + if (MSVC) + set_property(SOURCE ${lldb_java_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0") + else() + set_property(SOURCE ${lldb_java_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " ") + endif() + + set_source_files_properties(${lldb_java_wrapper} PROPERTIES GENERATED ON) +endif() + + +set_target_properties(liblldb + PROPERTIES + VERSION ${LLDB_VERSION} +) + +if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") + if (NOT LLDB_EXPORT_ALL_SYMBOLS) + # If we're not exporting all symbols, we'll want to explicitly set + # the exported symbols here. This prevents 'log enable --stack ...' + # from working on some systems but limits the liblldb size. + MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb namespace") + add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb.exports) + else() + # Don't use an explicit export. Instead, tell the linker to + # export all symbols. + MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb and lldb_private namespaces") + add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb-private.exports) + endif() + set_target_properties(liblldb_exports PROPERTIES FOLDER "lldb misc") +endif() + +if (MSVC) + # Only MSVC has the ABI compatibility problem and avoids using FindPythonLibs, + # so only it needs to explicitly link against ${Python3_LIBRARIES} + if (LLDB_ENABLE_PYTHON) + target_link_libraries(liblldb PRIVATE ${Python3_LIBRARIES}) + endif() +else() + set_target_properties(liblldb + PROPERTIES + OUTPUT_NAME lldb + ) +endif() + +# The Clang expression parser in LLDB requires the Clang resource directory to function. +if (TARGET clang-resource-headers) + # If building alongside Clang, just add a dependency to ensure it is build together with liblldb. + add_dependencies(liblldb clang-resource-headers) +else() + # In a standalone build create a symlink from the LLDB library directory that points to the + # resource directory in the Clang library directory. LLDB searches relative to its install path, + # and the symlink is created in the same relative path as the resource directory of Clang when + # building alongside Clang. + # When building the LLDB framework, this isn't necessary as there we copy everything we need into + # the framework (including the Clang resourece directory). + if(NOT LLDB_BUILD_FRAMEWORK) + set(LLDB_CLANG_RESOURCE_DIR_PARENT "$/clang") + file(MAKE_DIRECTORY "${LLDB_CLANG_RESOURCE_DIR_PARENT}") + add_custom_command(TARGET liblldb POST_BUILD + COMMENT "Linking Clang resource dir into LLDB build directory: ${LLDB_CLANG_RESOURCE_DIR_PARENT}" + COMMAND ${CMAKE_COMMAND} -E make_directory "${LLDB_CLANG_RESOURCE_DIR_PARENT}" + COMMAND ${CMAKE_COMMAND} -E create_symlink "${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}" + "${LLDB_CLANG_RESOURCE_DIR_PARENT}/${LLDB_CLANG_RESOURCE_DIR_NAME}" + ) + endif() +endif() + +if(LLDB_BUILD_FRAMEWORK) + include(LLDBFramework) +endif() diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/SBDebugger.cpp b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/SBDebugger.cpp new file mode 100644 index 0000000000..5cf4887048 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/SBDebugger.cpp @@ -0,0 +1,1904 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +//===-- SBDebugger.cpp ----------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "SBReproducerPrivate.h" +#include "SystemInitializerFull.h" + +#include "lldb/API/SBDebugger.h" + +#include "lldb/lldb-private.h" + +#include "lldb/API/SBBroadcaster.h" +#include "lldb/API/SBCommandInterpreter.h" +#include "lldb/API/SBCommandInterpreterRunOptions.h" +#include "lldb/API/SBCommandReturnObject.h" +#include "lldb/API/SBError.h" +#include "lldb/API/SBEvent.h" +#include "lldb/API/SBFile.h" +#include "lldb/API/SBFrame.h" +#include "lldb/API/SBListener.h" +#include "lldb/API/SBProcess.h" +#include "lldb/API/SBSourceManager.h" +#include "lldb/API/SBStream.h" +#include "lldb/API/SBStringList.h" +#include "lldb/API/SBStructuredData.h" +#include "lldb/API/SBTarget.h" +#include "lldb/API/SBThread.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/Core/Debugger.h" +#include "lldb/Core/PluginManager.h" +#include "lldb/Core/Progress.h" +#include "lldb/Core/StreamFile.h" +#include "lldb/Core/StructuredDataImpl.h" +#include "lldb/DataFormatters/DataVisualization.h" +#include "lldb/Host/Config.h" +#include "lldb/Host/XML.h" +#include "lldb/Initialization/SystemLifetimeManager.h" +#include "lldb/Interpreter/CommandInterpreter.h" +#include "lldb/Interpreter/OptionArgParser.h" +#include "lldb/Interpreter/OptionGroupPlatform.h" +#include "lldb/Target/Process.h" +#include "lldb/Target/TargetList.h" +#include "lldb/Utility/Args.h" +#include "lldb/Utility/State.h" + +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/DynamicLibrary.h" +#include "llvm/Support/ManagedStatic.h" + +using namespace lldb; +using namespace lldb_private; + +static llvm::sys::DynamicLibrary LoadPlugin(const lldb::DebuggerSP &debugger_sp, + const FileSpec &spec, + Status &error) { + llvm::sys::DynamicLibrary dynlib = + llvm::sys::DynamicLibrary::getPermanentLibrary(spec.GetPath().c_str()); + if (dynlib.isValid()) { + typedef bool (*LLDBCommandPluginInit)(lldb::SBDebugger & debugger); + + lldb::SBDebugger debugger_sb(debugger_sp); + // This calls the bool lldb::PluginInitialize(lldb::SBDebugger debugger) + // function. + // TODO: mangle this differently for your system - on OSX, the first + // underscore needs to be removed and the second one stays + LLDBCommandPluginInit init_func = + (LLDBCommandPluginInit)(uintptr_t)dynlib.getAddressOfSymbol( + "_ZN4lldb16PluginInitializeENS_10SBDebuggerE"); + if (init_func) { + if (init_func(debugger_sb)) + return dynlib; + else + error.SetErrorString("plug-in refused to load " + "(lldb::PluginInitialize(lldb::SBDebugger) " + "returned false)"); + } else { + error.SetErrorString("plug-in is missing the required initialization: " + "lldb::PluginInitialize(lldb::SBDebugger)"); + } + } else { + if (FileSystem::Instance().Exists(spec)) + error.SetErrorString("this file does not represent a loadable dylib"); + else + error.SetErrorString("no such file"); + } + return llvm::sys::DynamicLibrary(); +} + +static llvm::ManagedStatic g_debugger_lifetime; + +SBError SBInputReader::Initialize( + lldb::SBDebugger &sb_debugger, + unsigned long (*callback)(void *, lldb::SBInputReader *, + lldb::InputReaderAction, char const *, + unsigned long), + void *a, lldb::InputReaderGranularity b, char const *c, char const *d, + bool e) { + LLDB_RECORD_DUMMY( + lldb::SBError, SBInputReader, Initialize, + (lldb::SBDebugger &, + unsigned long (*)(void *, lldb::SBInputReader *, lldb::InputReaderAction, + const char *, unsigned long), + void *, lldb::InputReaderGranularity, const char *, const char *, bool), + sb_debugger, callback, a, b, c, d, e); + + return SBError(); +} + +void SBInputReader::SetIsDone(bool b) { + LLDB_RECORD_METHOD(void, SBInputReader, SetIsDone, (bool), b); +} + +bool SBInputReader::IsActive() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBInputReader, IsActive); + + return false; +} + +SBDebugger::SBDebugger() { LLDB_RECORD_CONSTRUCTOR_NO_ARGS(SBDebugger); } + +SBDebugger::SBDebugger(const lldb::DebuggerSP &debugger_sp) + : m_opaque_sp(debugger_sp) { + LLDB_RECORD_CONSTRUCTOR(SBDebugger, (const lldb::DebuggerSP &), debugger_sp); +} + +SBDebugger::SBDebugger(const SBDebugger &rhs) : m_opaque_sp(rhs.m_opaque_sp) { + LLDB_RECORD_CONSTRUCTOR(SBDebugger, (const lldb::SBDebugger &), rhs); +} + +SBDebugger::~SBDebugger() = default; + +SBDebugger &SBDebugger::operator=(const SBDebugger &rhs) { + LLDB_RECORD_METHOD(lldb::SBDebugger &, + SBDebugger, operator=,(const lldb::SBDebugger &), rhs); + + if (this != &rhs) { + m_opaque_sp = rhs.m_opaque_sp; + } + return LLDB_RECORD_RESULT(*this); +} + +const char *SBDebugger::GetBroadcasterClass() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(const char *, SBDebugger, + GetBroadcasterClass); + + return Debugger::GetStaticBroadcasterClass().AsCString(); +} + +const char *SBDebugger::GetProgressFromEvent(const lldb::SBEvent &event, + uint64_t &progress_id, + uint64_t &completed, + uint64_t &total, + bool &is_debugger_specific) { + const Debugger::ProgressEventData *progress_data = + Debugger::ProgressEventData::GetEventDataFromEvent(event.get()); + if (progress_data == nullptr) + return nullptr; + progress_id = progress_data->GetID(); + completed = progress_data->GetCompleted(); + total = progress_data->GetTotal(); + is_debugger_specific = progress_data->IsDebuggerSpecific(); + // We must record the static method _after_ the out parameters have been + // filled in. + LLDB_RECORD_STATIC_METHOD( + const char *, SBDebugger, GetProgressFromEvent, + (const lldb::SBEvent &, uint64_t &, uint64_t &, uint64_t &, bool &), + event, progress_id, completed, total, is_debugger_specific); + return LLDB_RECORD_RESULT(progress_data->GetMessage().c_str()) +} + +SBBroadcaster SBDebugger::GetBroadcaster() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBBroadcaster, SBDebugger, GetBroadcaster); + SBBroadcaster broadcaster(&m_opaque_sp->GetBroadcaster(), false); + return LLDB_RECORD_RESULT(broadcaster); +} + +void SBDebugger::Initialize() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(void, SBDebugger, Initialize); + SBError ignored = SBDebugger::InitializeWithErrorHandling(); +} + +lldb::SBError SBDebugger::InitializeWithErrorHandling() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(lldb::SBError, SBDebugger, + InitializeWithErrorHandling); + + SBError error; + if (auto e = g_debugger_lifetime->Initialize( + std::make_unique(), LoadPlugin)) { + error.SetError(Status(std::move(e))); + } + return LLDB_RECORD_RESULT(error); +} + +void SBDebugger::Terminate() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(void, SBDebugger, Terminate); + + g_debugger_lifetime->Terminate(); +} + +void SBDebugger::Clear() { + LLDB_RECORD_METHOD_NO_ARGS(void, SBDebugger, Clear); + + if (m_opaque_sp) + m_opaque_sp->ClearIOHandlers(); + + m_opaque_sp.reset(); +} + +SBDebugger SBDebugger::Create() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(lldb::SBDebugger, SBDebugger, Create); + + return LLDB_RECORD_RESULT(SBDebugger::Create(false, nullptr, nullptr)); +} + +SBDebugger SBDebugger::Create(bool source_init_files) { + LLDB_RECORD_STATIC_METHOD(lldb::SBDebugger, SBDebugger, Create, (bool), + source_init_files); + + return LLDB_RECORD_RESULT( + SBDebugger::Create(source_init_files, nullptr, nullptr)); +} + +SBDebugger SBDebugger::Create(bool source_init_files, + lldb::LogOutputCallback callback, void *baton) + +{ + LLDB_RECORD_DUMMY(lldb::SBDebugger, SBDebugger, Create, + (bool, lldb::LogOutputCallback, void *), source_init_files, + callback, baton); + + SBDebugger debugger; + + // Currently we have issues if this function is called simultaneously on two + // different threads. The issues mainly revolve around the fact that the + // lldb_private::FormatManager uses global collections and having two threads + // parsing the .lldbinit files can cause mayhem. So to get around this for + // now we need to use a mutex to prevent bad things from happening. + static std::recursive_mutex g_mutex; + std::lock_guard guard(g_mutex); + + debugger.reset(Debugger::CreateInstance(callback, baton)); + + SBCommandInterpreter interp = debugger.GetCommandInterpreter(); + if (source_init_files) { + interp.get()->SkipLLDBInitFiles(false); + interp.get()->SkipAppInitFiles(false); + SBCommandReturnObject result; + interp.SourceInitFileInHomeDirectory(result, false); + } else { + interp.get()->SkipLLDBInitFiles(true); + interp.get()->SkipAppInitFiles(true); + } + return debugger; +} + +void SBDebugger::Destroy(SBDebugger &debugger) { + LLDB_RECORD_STATIC_METHOD(void, SBDebugger, Destroy, (lldb::SBDebugger &), + debugger); + + Debugger::Destroy(debugger.m_opaque_sp); + + if (debugger.m_opaque_sp.get() != nullptr) + debugger.m_opaque_sp.reset(); +} + +void SBDebugger::MemoryPressureDetected() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(void, SBDebugger, MemoryPressureDetected); + + // Since this function can be call asynchronously, we allow it to be non- + // mandatory. We have seen deadlocks with this function when called so we + // need to safeguard against this until we can determine what is causing the + // deadlocks. + + const bool mandatory = false; + + ModuleList::RemoveOrphanSharedModules(mandatory); +} + +bool SBDebugger::IsValid() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBDebugger, IsValid); + return this->operator bool(); +} +SBDebugger::operator bool() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBDebugger, operator bool); + + return m_opaque_sp.get() != nullptr; +} + +void SBDebugger::SetAsync(bool b) { + LLDB_RECORD_METHOD(void, SBDebugger, SetAsync, (bool), b); + + if (m_opaque_sp) + m_opaque_sp->SetAsyncExecution(b); +} + +bool SBDebugger::GetAsync() { + LLDB_RECORD_METHOD_NO_ARGS(bool, SBDebugger, GetAsync); + + return (m_opaque_sp ? m_opaque_sp->GetAsyncExecution() : false); +} + +void SBDebugger::SkipLLDBInitFiles(bool b) { + LLDB_RECORD_METHOD(void, SBDebugger, SkipLLDBInitFiles, (bool), b); + + if (m_opaque_sp) + m_opaque_sp->GetCommandInterpreter().SkipLLDBInitFiles(b); +} + +void SBDebugger::SkipAppInitFiles(bool b) { + LLDB_RECORD_METHOD(void, SBDebugger, SkipAppInitFiles, (bool), b); + + if (m_opaque_sp) + m_opaque_sp->GetCommandInterpreter().SkipAppInitFiles(b); +} + +void SBDebugger::SetInputFileHandle(FILE *fh, bool transfer_ownership) { + LLDB_RECORD_METHOD(void, SBDebugger, SetInputFileHandle, (FILE *, bool), fh, + transfer_ownership); + SetInputFile((FileSP)std::make_shared(fh, transfer_ownership)); +} + +SBError SBDebugger::SetInputFile(FileSP file_sp) { + LLDB_RECORD_METHOD(SBError, SBDebugger, SetInputFile, (FileSP), file_sp); + return LLDB_RECORD_RESULT(SetInputFile(SBFile(file_sp))); +} + +// Shouldn't really be settable after initialization as this could cause lots +// of problems; don't want users trying to switch modes in the middle of a +// debugging session. +SBError SBDebugger::SetInputFile(SBFile file) { + LLDB_RECORD_METHOD(SBError, SBDebugger, SetInputFile, (SBFile), file); + + SBError error; + if (!m_opaque_sp) { + error.ref().SetErrorString("invalid debugger"); + return LLDB_RECORD_RESULT(error); + } + + repro::DataRecorder *recorder = nullptr; + if (repro::Generator *g = repro::Reproducer::Instance().GetGenerator()) + recorder = g->GetOrCreate().GetNewRecorder(); + + FileSP file_sp = file.m_opaque_sp; + + static std::unique_ptr> loader = + repro::MultiLoader::Create( + repro::Reproducer::Instance().GetLoader()); + if (loader) { + llvm::Optional nextfile = loader->GetNextFile(); + FILE *fh = nextfile ? FileSystem::Instance().Fopen(nextfile->c_str(), "r") + : nullptr; + // FIXME Jonas Devlieghere: shouldn't this error be propagated out to the + // reproducer somehow if fh is NULL? + if (fh) { + file_sp = std::make_shared(fh, true); + } + } + + if (!file_sp || !file_sp->IsValid()) { + error.ref().SetErrorString("invalid file"); + return LLDB_RECORD_RESULT(error); + } + + m_opaque_sp->SetInputFile(file_sp, recorder); + return LLDB_RECORD_RESULT(error); +} + +SBError SBDebugger::SetOutputFile(FileSP file_sp) { + LLDB_RECORD_METHOD(SBError, SBDebugger, SetOutputFile, (FileSP), file_sp); + return LLDB_RECORD_RESULT(SetOutputFile(SBFile(file_sp))); +} + +void SBDebugger::SetOutputFileHandle(FILE *fh, bool transfer_ownership) { + LLDB_RECORD_METHOD(void, SBDebugger, SetOutputFileHandle, (FILE *, bool), fh, + transfer_ownership); + SetOutputFile((FileSP)std::make_shared(fh, transfer_ownership)); +} + +SBError SBDebugger::SetOutputFile(SBFile file) { + LLDB_RECORD_METHOD(SBError, SBDebugger, SetOutputFile, (SBFile file), file); + SBError error; + if (!m_opaque_sp) { + error.ref().SetErrorString("invalid debugger"); + return LLDB_RECORD_RESULT(error); + } + if (!file) { + error.ref().SetErrorString("invalid file"); + return LLDB_RECORD_RESULT(error); + } + m_opaque_sp->SetOutputFile(file.m_opaque_sp); + return LLDB_RECORD_RESULT(error); +} + +void SBDebugger::SetErrorFileHandle(FILE *fh, bool transfer_ownership) { + LLDB_RECORD_METHOD(void, SBDebugger, SetErrorFileHandle, (FILE *, bool), fh, + transfer_ownership); + SetErrorFile((FileSP)std::make_shared(fh, transfer_ownership)); +} + +SBError SBDebugger::SetErrorFile(FileSP file_sp) { + LLDB_RECORD_METHOD(SBError, SBDebugger, SetErrorFile, (FileSP), file_sp); + return LLDB_RECORD_RESULT(SetErrorFile(SBFile(file_sp))); +} + +SBError SBDebugger::SetErrorFile(SBFile file) { + LLDB_RECORD_METHOD(SBError, SBDebugger, SetErrorFile, (SBFile file), file); + SBError error; + if (!m_opaque_sp) { + error.ref().SetErrorString("invalid debugger"); + return LLDB_RECORD_RESULT(error); + } + if (!file) { + error.ref().SetErrorString("invalid file"); + return LLDB_RECORD_RESULT(error); + } + m_opaque_sp->SetErrorFile(file.m_opaque_sp); + return LLDB_RECORD_RESULT(error); +} + +FILE *SBDebugger::GetInputFileHandle() { + LLDB_RECORD_METHOD_NO_ARGS(FILE *, SBDebugger, GetInputFileHandle); + if (m_opaque_sp) { + File &file_sp = m_opaque_sp->GetInputFile(); + return LLDB_RECORD_RESULT(file_sp.GetStream()); + } + return LLDB_RECORD_RESULT(nullptr); +} + +SBFile SBDebugger::GetInputFile() { + LLDB_RECORD_METHOD_NO_ARGS(SBFile, SBDebugger, GetInputFile); + if (m_opaque_sp) { + return LLDB_RECORD_RESULT(SBFile(m_opaque_sp->GetInputFileSP())); + } + return LLDB_RECORD_RESULT(SBFile()); +} + +FILE *SBDebugger::GetOutputFileHandle() { + LLDB_RECORD_METHOD_NO_ARGS(FILE *, SBDebugger, GetOutputFileHandle); + if (m_opaque_sp) { + StreamFile &stream_file = m_opaque_sp->GetOutputStream(); + return LLDB_RECORD_RESULT(stream_file.GetFile().GetStream()); + } + return LLDB_RECORD_RESULT(nullptr); +} + +SBFile SBDebugger::GetOutputFile() { + LLDB_RECORD_METHOD_NO_ARGS(SBFile, SBDebugger, GetOutputFile); + if (m_opaque_sp) { + SBFile file(m_opaque_sp->GetOutputStream().GetFileSP()); + return LLDB_RECORD_RESULT(file); + } + return LLDB_RECORD_RESULT(SBFile()); +} + +FILE *SBDebugger::GetErrorFileHandle() { + LLDB_RECORD_METHOD_NO_ARGS(FILE *, SBDebugger, GetErrorFileHandle); + + if (m_opaque_sp) { + StreamFile &stream_file = m_opaque_sp->GetErrorStream(); + return LLDB_RECORD_RESULT(stream_file.GetFile().GetStream()); + } + return LLDB_RECORD_RESULT(nullptr); +} + +SBFile SBDebugger::GetErrorFile() { + LLDB_RECORD_METHOD_NO_ARGS(SBFile, SBDebugger, GetErrorFile); + SBFile file; + if (m_opaque_sp) { + SBFile file(m_opaque_sp->GetErrorStream().GetFileSP()); + return LLDB_RECORD_RESULT(file); + } + return LLDB_RECORD_RESULT(SBFile()); +} + +void SBDebugger::SaveInputTerminalState() { + LLDB_RECORD_DUMMY_NO_ARGS(void, SBDebugger, SaveInputTerminalState); + + if (m_opaque_sp) + m_opaque_sp->SaveInputTerminalState(); +} + +void SBDebugger::RestoreInputTerminalState() { + LLDB_RECORD_DUMMY_NO_ARGS(void, SBDebugger, RestoreInputTerminalState); + + if (m_opaque_sp) + m_opaque_sp->RestoreInputTerminalState(); +} +SBCommandInterpreter SBDebugger::GetCommandInterpreter() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBCommandInterpreter, SBDebugger, + GetCommandInterpreter); + + SBCommandInterpreter sb_interpreter; + if (m_opaque_sp) + sb_interpreter.reset(&m_opaque_sp->GetCommandInterpreter()); + + return LLDB_RECORD_RESULT(sb_interpreter); +} + +void SBDebugger::HandleCommand(const char *command) { + LLDB_RECORD_METHOD(void, SBDebugger, HandleCommand, (const char *), command); + + if (m_opaque_sp) { + TargetSP target_sp(m_opaque_sp->GetSelectedTarget()); + std::unique_lock lock; + if (target_sp) + lock = std::unique_lock(target_sp->GetAPIMutex()); + + SBCommandInterpreter sb_interpreter(GetCommandInterpreter()); + SBCommandReturnObject result; + + sb_interpreter.HandleCommand(command, result, false); + + result.PutError(m_opaque_sp->GetErrorStream().GetFileSP()); + result.PutOutput(m_opaque_sp->GetOutputStream().GetFileSP()); + + if (!m_opaque_sp->GetAsyncExecution()) { + SBProcess process(GetCommandInterpreter().GetProcess()); + ProcessSP process_sp(process.GetSP()); + if (process_sp) { + EventSP event_sp; + ListenerSP lldb_listener_sp = m_opaque_sp->GetListener(); + while (lldb_listener_sp->GetEventForBroadcaster( + process_sp.get(), event_sp, std::chrono::seconds(0))) { + SBEvent event(event_sp); + HandleProcessEvent(process, event, GetOutputFile(), GetErrorFile()); + } + } + } + } +} + +SBListener SBDebugger::GetListener() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBListener, SBDebugger, GetListener); + + SBListener sb_listener; + if (m_opaque_sp) + sb_listener.reset(m_opaque_sp->GetListener()); + + return LLDB_RECORD_RESULT(sb_listener); +} + +void SBDebugger::HandleProcessEvent(const SBProcess &process, + const SBEvent &event, SBFile out, + SBFile err) { + LLDB_RECORD_METHOD( + void, SBDebugger, HandleProcessEvent, + (const lldb::SBProcess &, const lldb::SBEvent &, SBFile, SBFile), process, + event, out, err); + + return HandleProcessEvent(process, event, out.m_opaque_sp, err.m_opaque_sp); +} + +void SBDebugger::HandleProcessEvent(const SBProcess &process, + const SBEvent &event, FILE *out, + FILE *err) { + LLDB_RECORD_METHOD( + void, SBDebugger, HandleProcessEvent, + (const lldb::SBProcess &, const lldb::SBEvent &, FILE *, FILE *), process, + event, out, err); + + FileSP outfile = std::make_shared(out, false); + FileSP errfile = std::make_shared(err, false); + return HandleProcessEvent(process, event, outfile, errfile); +} + +void SBDebugger::HandleProcessEvent(const SBProcess &process, + const SBEvent &event, FileSP out_sp, + FileSP err_sp) { + + LLDB_RECORD_METHOD( + void, SBDebugger, HandleProcessEvent, + (const lldb::SBProcess &, const lldb::SBEvent &, FileSP, FileSP), process, + event, out_sp, err_sp); + + if (!process.IsValid()) + return; + + TargetSP target_sp(process.GetTarget().GetSP()); + if (!target_sp) + return; + + const uint32_t event_type = event.GetType(); + char stdio_buffer[1024]; + size_t len; + + std::lock_guard guard(target_sp->GetAPIMutex()); + + if (event_type & + (Process::eBroadcastBitSTDOUT | Process::eBroadcastBitStateChanged)) { + // Drain stdout when we stop just in case we have any bytes + while ((len = process.GetSTDOUT(stdio_buffer, sizeof(stdio_buffer))) > 0) + if (out_sp) + out_sp->Write(stdio_buffer, len); + } + + if (event_type & + (Process::eBroadcastBitSTDERR | Process::eBroadcastBitStateChanged)) { + // Drain stderr when we stop just in case we have any bytes + while ((len = process.GetSTDERR(stdio_buffer, sizeof(stdio_buffer))) > 0) + if (err_sp) + err_sp->Write(stdio_buffer, len); + } + + if (event_type & Process::eBroadcastBitStateChanged) { + StateType event_state = SBProcess::GetStateFromEvent(event); + + if (event_state == eStateInvalid) + return; + + bool is_stopped = StateIsStoppedState(event_state); + if (!is_stopped) + process.ReportEventState(event, out_sp); + } +} + +SBSourceManager SBDebugger::GetSourceManager() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBSourceManager, SBDebugger, + GetSourceManager); + + SBSourceManager sb_source_manager(*this); + return LLDB_RECORD_RESULT(sb_source_manager); +} + +bool SBDebugger::GetDefaultArchitecture(char *arch_name, size_t arch_name_len) { + LLDB_RECORD_CHAR_PTR_STATIC_METHOD(bool, SBDebugger, GetDefaultArchitecture, + (char *, size_t), arch_name, "", + arch_name_len); + + if (arch_name && arch_name_len) { + ArchSpec default_arch = Target::GetDefaultArchitecture(); + + if (default_arch.IsValid()) { + const std::string &triple_str = default_arch.GetTriple().str(); + if (!triple_str.empty()) + ::snprintf(arch_name, arch_name_len, "%s", triple_str.c_str()); + else + ::snprintf(arch_name, arch_name_len, "%s", + default_arch.GetArchitectureName()); + return true; + } + } + if (arch_name && arch_name_len) + arch_name[0] = '\0'; + return false; +} + +bool SBDebugger::SetDefaultArchitecture(const char *arch_name) { + LLDB_RECORD_STATIC_METHOD(bool, SBDebugger, SetDefaultArchitecture, + (const char *), arch_name); + + if (arch_name) { + ArchSpec arch(arch_name); + if (arch.IsValid()) { + Target::SetDefaultArchitecture(arch); + return true; + } + } + return false; +} + +ScriptLanguage +SBDebugger::GetScriptingLanguage(const char *script_language_name) { + LLDB_RECORD_METHOD(lldb::ScriptLanguage, SBDebugger, GetScriptingLanguage, + (const char *), script_language_name); + + if (!script_language_name) + return eScriptLanguageDefault; + return OptionArgParser::ToScriptLanguage( + llvm::StringRef(script_language_name), eScriptLanguageDefault, nullptr); +} + +const char *SBDebugger::GetVersionString() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(const char *, SBDebugger, GetVersionString); + + return lldb_private::GetVersion(); +} + +const char *SBDebugger::StateAsCString(StateType state) { + LLDB_RECORD_STATIC_METHOD(const char *, SBDebugger, StateAsCString, + (lldb::StateType), state); + + return lldb_private::StateAsCString(state); +} + +static void AddBoolConfigEntry(StructuredData::Dictionary &dict, + llvm::StringRef name, bool value, + llvm::StringRef description) { + auto entry_up = std::make_unique(); + entry_up->AddBooleanItem("value", value); + entry_up->AddStringItem("description", description); + dict.AddItem(name, std::move(entry_up)); +} + +static void AddLLVMTargets(StructuredData::Dictionary &dict) { + auto array_up = std::make_unique(); +#define LLVM_TARGET(target) \ + array_up->AddItem(std::make_unique(#target)); +#include "llvm/Config/Targets.def" + auto entry_up = std::make_unique(); + entry_up->AddItem("value", std::move(array_up)); + entry_up->AddStringItem("description", "A list of configured LLVM targets."); + dict.AddItem("targets", std::move(entry_up)); +} + +SBStructuredData SBDebugger::GetBuildConfiguration() { + LLDB_RECORD_STATIC_METHOD_NO_ARGS(lldb::SBStructuredData, SBDebugger, + GetBuildConfiguration); + + auto config_up = std::make_unique(); + AddBoolConfigEntry( + *config_up, "xml", XMLDocument::XMLEnabled(), + "A boolean value that indicates if XML support is enabled in LLDB"); + AddBoolConfigEntry( + *config_up, "curses", LLDB_ENABLE_CURSES, + "A boolean value that indicates if curses support is enabled in LLDB"); + AddBoolConfigEntry( + *config_up, "editline", LLDB_ENABLE_LIBEDIT, + "A boolean value that indicates if editline support is enabled in LLDB"); + AddBoolConfigEntry( + *config_up, "lzma", LLDB_ENABLE_LZMA, + "A boolean value that indicates if lzma support is enabled in LLDB"); + AddBoolConfigEntry( + *config_up, "python", LLDB_ENABLE_PYTHON, + "A boolean value that indicates if python support is enabled in LLDB"); + AddBoolConfigEntry( + *config_up, "lua", LLDB_ENABLE_LUA, + "A boolean value that indicates if lua support is enabled in LLDB"); + AddBoolConfigEntry( + *config_up, "java", LLDB_ENABLE_JAVA, + "A boolean value that indicates if java support is enabled in LLDB"); + AddLLVMTargets(*config_up); + + SBStructuredData data; + data.m_impl_up->SetObjectSP(std::move(config_up)); + return LLDB_RECORD_RESULT(data); +} + +bool SBDebugger::StateIsRunningState(StateType state) { + LLDB_RECORD_STATIC_METHOD(bool, SBDebugger, StateIsRunningState, + (lldb::StateType), state); + + const bool result = lldb_private::StateIsRunningState(state); + + return result; +} + +bool SBDebugger::StateIsStoppedState(StateType state) { + LLDB_RECORD_STATIC_METHOD(bool, SBDebugger, StateIsStoppedState, + (lldb::StateType), state); + + const bool result = lldb_private::StateIsStoppedState(state, false); + + return result; +} + +lldb::SBTarget SBDebugger::CreateTarget(const char *filename, + const char *target_triple, + const char *platform_name, + bool add_dependent_modules, + lldb::SBError &sb_error) { + LLDB_RECORD_METHOD( + lldb::SBTarget, SBDebugger, CreateTarget, + (const char *, const char *, const char *, bool, lldb::SBError &), + filename, target_triple, platform_name, add_dependent_modules, sb_error); + + SBTarget sb_target; + TargetSP target_sp; + if (m_opaque_sp) { + sb_error.Clear(); + OptionGroupPlatform platform_options(false); + platform_options.SetPlatformName(platform_name); + + sb_error.ref() = m_opaque_sp->GetTargetList().CreateTarget( + *m_opaque_sp, filename, target_triple, + add_dependent_modules ? eLoadDependentsYes : eLoadDependentsNo, + &platform_options, target_sp); + + if (sb_error.Success()) + sb_target.SetSP(target_sp); + } else { + sb_error.SetErrorString("invalid debugger"); + } + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + LLDB_LOGF(log, + "SBDebugger(%p)::CreateTarget (filename=\"%s\", triple=%s, " + "platform_name=%s, add_dependent_modules=%u, error=%s) => " + "SBTarget(%p)", + static_cast(m_opaque_sp.get()), filename, target_triple, + platform_name, add_dependent_modules, sb_error.GetCString(), + static_cast(target_sp.get())); + + return LLDB_RECORD_RESULT(sb_target); +} + +SBTarget +SBDebugger::CreateTargetWithFileAndTargetTriple(const char *filename, + const char *target_triple) { + LLDB_RECORD_METHOD(lldb::SBTarget, SBDebugger, + CreateTargetWithFileAndTargetTriple, + (const char *, const char *), filename, target_triple); + + SBTarget sb_target; + TargetSP target_sp; + if (m_opaque_sp) { + const bool add_dependent_modules = true; + Status error(m_opaque_sp->GetTargetList().CreateTarget( + *m_opaque_sp, filename, target_triple, + add_dependent_modules ? eLoadDependentsYes : eLoadDependentsNo, nullptr, + target_sp)); + sb_target.SetSP(target_sp); + } + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + LLDB_LOGF(log, + "SBDebugger(%p)::CreateTargetWithFileAndTargetTriple " + "(filename=\"%s\", triple=%s) => SBTarget(%p)", + static_cast(m_opaque_sp.get()), filename, target_triple, + static_cast(target_sp.get())); + + return LLDB_RECORD_RESULT(sb_target); +} + +SBTarget SBDebugger::CreateTargetWithFileAndArch(const char *filename, + const char *arch_cstr) { + LLDB_RECORD_METHOD(lldb::SBTarget, SBDebugger, CreateTargetWithFileAndArch, + (const char *, const char *), filename, arch_cstr); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + + SBTarget sb_target; + TargetSP target_sp; + if (m_opaque_sp) { + Status error; + if (arch_cstr == nullptr) { + // The version of CreateTarget that takes an ArchSpec won't accept an + // empty ArchSpec, so when the arch hasn't been specified, we need to + // call the target triple version. + error = m_opaque_sp->GetTargetList().CreateTarget(*m_opaque_sp, filename, + arch_cstr, eLoadDependentsYes, nullptr, target_sp); + } else { + PlatformSP platform_sp = m_opaque_sp->GetPlatformList() + .GetSelectedPlatform(); + ArchSpec arch = Platform::GetAugmentedArchSpec(platform_sp.get(), + arch_cstr); + if (arch.IsValid()) + error = m_opaque_sp->GetTargetList().CreateTarget(*m_opaque_sp, filename, + arch, eLoadDependentsYes, platform_sp, target_sp); + else + error.SetErrorStringWithFormat("invalid arch_cstr: %s", arch_cstr); + } + if (error.Success()) + sb_target.SetSP(target_sp); + } + + LLDB_LOGF(log, + "SBDebugger(%p)::CreateTargetWithFileAndArch (filename=\"%s\", " + "arch=%s) => SBTarget(%p)", + static_cast(m_opaque_sp.get()), + filename ? filename : "", + arch_cstr ? arch_cstr : "", + static_cast(target_sp.get())); + + return LLDB_RECORD_RESULT(sb_target); +} + +SBTarget SBDebugger::CreateTarget(const char *filename) { + LLDB_RECORD_METHOD(lldb::SBTarget, SBDebugger, CreateTarget, (const char *), + filename); + + SBTarget sb_target; + TargetSP target_sp; + if (m_opaque_sp) { + Status error; + const bool add_dependent_modules = true; + error = m_opaque_sp->GetTargetList().CreateTarget( + *m_opaque_sp, filename, "", + add_dependent_modules ? eLoadDependentsYes : eLoadDependentsNo, nullptr, + target_sp); + + if (error.Success()) + sb_target.SetSP(target_sp); + } + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + LLDB_LOGF(log, + "SBDebugger(%p)::CreateTarget (filename=\"%s\") => SBTarget(%p)", + static_cast(m_opaque_sp.get()), filename, + static_cast(target_sp.get())); + return LLDB_RECORD_RESULT(sb_target); +} + +SBTarget SBDebugger::GetDummyTarget() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBTarget, SBDebugger, GetDummyTarget); + + SBTarget sb_target; + if (m_opaque_sp) { + sb_target.SetSP(m_opaque_sp->GetDummyTarget().shared_from_this()); + } + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + LLDB_LOGF(log, "SBDebugger(%p)::GetDummyTarget() => SBTarget(%p)", + static_cast(m_opaque_sp.get()), + static_cast(sb_target.GetSP().get())); + return LLDB_RECORD_RESULT(sb_target); +} + +bool SBDebugger::DeleteTarget(lldb::SBTarget &target) { + LLDB_RECORD_METHOD(bool, SBDebugger, DeleteTarget, (lldb::SBTarget &), + target); + + bool result = false; + if (m_opaque_sp) { + TargetSP target_sp(target.GetSP()); + if (target_sp) { + // No need to lock, the target list is thread safe + result = m_opaque_sp->GetTargetList().DeleteTarget(target_sp); + target_sp->Destroy(); + target.Clear(); + } + } + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + LLDB_LOGF(log, "SBDebugger(%p)::DeleteTarget (SBTarget(%p)) => %i", + static_cast(m_opaque_sp.get()), + static_cast(target.m_opaque_sp.get()), result); + + return result; +} + +SBTarget SBDebugger::GetTargetAtIndex(uint32_t idx) { + LLDB_RECORD_METHOD(lldb::SBTarget, SBDebugger, GetTargetAtIndex, (uint32_t), + idx); + + SBTarget sb_target; + if (m_opaque_sp) { + // No need to lock, the target list is thread safe + sb_target.SetSP(m_opaque_sp->GetTargetList().GetTargetAtIndex(idx)); + } + return LLDB_RECORD_RESULT(sb_target); +} + +uint32_t SBDebugger::GetIndexOfTarget(lldb::SBTarget target) { + LLDB_RECORD_METHOD(uint32_t, SBDebugger, GetIndexOfTarget, (lldb::SBTarget), + target); + + lldb::TargetSP target_sp = target.GetSP(); + if (!target_sp) + return UINT32_MAX; + + if (!m_opaque_sp) + return UINT32_MAX; + + return m_opaque_sp->GetTargetList().GetIndexOfTarget(target.GetSP()); +} + +SBTarget SBDebugger::FindTargetWithProcessID(lldb::pid_t pid) { + LLDB_RECORD_METHOD(lldb::SBTarget, SBDebugger, FindTargetWithProcessID, + (lldb::pid_t), pid); + + SBTarget sb_target; + if (m_opaque_sp) { + // No need to lock, the target list is thread safe + sb_target.SetSP(m_opaque_sp->GetTargetList().FindTargetWithProcessID(pid)); + } + return LLDB_RECORD_RESULT(sb_target); +} + +SBTarget SBDebugger::FindTargetWithFileAndArch(const char *filename, + const char *arch_name) { + LLDB_RECORD_METHOD(lldb::SBTarget, SBDebugger, FindTargetWithFileAndArch, + (const char *, const char *), filename, arch_name); + + SBTarget sb_target; + if (m_opaque_sp && filename && filename[0]) { + // No need to lock, the target list is thread safe + ArchSpec arch = Platform::GetAugmentedArchSpec( + m_opaque_sp->GetPlatformList().GetSelectedPlatform().get(), arch_name); + TargetSP target_sp( + m_opaque_sp->GetTargetList().FindTargetWithExecutableAndArchitecture( + FileSpec(filename), arch_name ? &arch : nullptr)); + sb_target.SetSP(target_sp); + } + return LLDB_RECORD_RESULT(sb_target); +} + +SBTarget SBDebugger::FindTargetWithLLDBProcess(const ProcessSP &process_sp) { + SBTarget sb_target; + if (m_opaque_sp) { + // No need to lock, the target list is thread safe + sb_target.SetSP( + m_opaque_sp->GetTargetList().FindTargetWithProcess(process_sp.get())); + } + return sb_target; +} + +uint32_t SBDebugger::GetNumTargets() { + LLDB_RECORD_METHOD_NO_ARGS(uint32_t, SBDebugger, GetNumTargets); + + if (m_opaque_sp) { + // No need to lock, the target list is thread safe + return m_opaque_sp->GetTargetList().GetNumTargets(); + } + return 0; +} + +SBTarget SBDebugger::GetSelectedTarget() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBTarget, SBDebugger, GetSelectedTarget); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + + SBTarget sb_target; + TargetSP target_sp; + if (m_opaque_sp) { + // No need to lock, the target list is thread safe + target_sp = m_opaque_sp->GetTargetList().GetSelectedTarget(); + sb_target.SetSP(target_sp); + } + + if (log) { + SBStream sstr; + sb_target.GetDescription(sstr, eDescriptionLevelBrief); + LLDB_LOGF(log, "SBDebugger(%p)::GetSelectedTarget () => SBTarget(%p): %s", + static_cast(m_opaque_sp.get()), + static_cast(target_sp.get()), sstr.GetData()); + } + + return LLDB_RECORD_RESULT(sb_target); +} + +void SBDebugger::SetSelectedTarget(SBTarget &sb_target) { + LLDB_RECORD_METHOD(void, SBDebugger, SetSelectedTarget, (lldb::SBTarget &), + sb_target); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + + TargetSP target_sp(sb_target.GetSP()); + if (m_opaque_sp) { + m_opaque_sp->GetTargetList().SetSelectedTarget(target_sp); + } + if (log) { + SBStream sstr; + sb_target.GetDescription(sstr, eDescriptionLevelBrief); + LLDB_LOGF(log, "SBDebugger(%p)::SetSelectedTarget () => SBTarget(%p): %s", + static_cast(m_opaque_sp.get()), + static_cast(target_sp.get()), sstr.GetData()); + } +} + +SBPlatform SBDebugger::GetSelectedPlatform() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBPlatform, SBDebugger, GetSelectedPlatform); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + + SBPlatform sb_platform; + DebuggerSP debugger_sp(m_opaque_sp); + if (debugger_sp) { + sb_platform.SetSP(debugger_sp->GetPlatformList().GetSelectedPlatform()); + } + LLDB_LOGF(log, "SBDebugger(%p)::GetSelectedPlatform () => SBPlatform(%p): %s", + static_cast(m_opaque_sp.get()), + static_cast(sb_platform.GetSP().get()), + sb_platform.GetName()); + return LLDB_RECORD_RESULT(sb_platform); +} + +void SBDebugger::SetSelectedPlatform(SBPlatform &sb_platform) { + LLDB_RECORD_METHOD(void, SBDebugger, SetSelectedPlatform, + (lldb::SBPlatform &), sb_platform); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + + DebuggerSP debugger_sp(m_opaque_sp); + if (debugger_sp) { + debugger_sp->GetPlatformList().SetSelectedPlatform(sb_platform.GetSP()); + } + + LLDB_LOGF(log, "SBDebugger(%p)::SetSelectedPlatform (SBPlatform(%p) %s)", + static_cast(m_opaque_sp.get()), + static_cast(sb_platform.GetSP().get()), + sb_platform.GetName()); +} + +uint32_t SBDebugger::GetNumPlatforms() { + LLDB_RECORD_METHOD_NO_ARGS(uint32_t, SBDebugger, GetNumPlatforms); + + if (m_opaque_sp) { + // No need to lock, the platform list is thread safe + return m_opaque_sp->GetPlatformList().GetSize(); + } + return 0; +} + +SBPlatform SBDebugger::GetPlatformAtIndex(uint32_t idx) { + LLDB_RECORD_METHOD(lldb::SBPlatform, SBDebugger, GetPlatformAtIndex, + (uint32_t), idx); + + SBPlatform sb_platform; + if (m_opaque_sp) { + // No need to lock, the platform list is thread safe + sb_platform.SetSP(m_opaque_sp->GetPlatformList().GetAtIndex(idx)); + } + return LLDB_RECORD_RESULT(sb_platform); +} + +uint32_t SBDebugger::GetNumAvailablePlatforms() { + LLDB_RECORD_METHOD_NO_ARGS(uint32_t, SBDebugger, GetNumAvailablePlatforms); + + uint32_t idx = 0; + while (true) { + if (!PluginManager::GetPlatformPluginNameAtIndex(idx)) { + break; + } + ++idx; + } + // +1 for the host platform, which should always appear first in the list. + return idx + 1; +} + +SBStructuredData SBDebugger::GetAvailablePlatformInfoAtIndex(uint32_t idx) { + LLDB_RECORD_METHOD(lldb::SBStructuredData, SBDebugger, + GetAvailablePlatformInfoAtIndex, (uint32_t), idx); + + SBStructuredData data; + auto platform_dict = std::make_unique(); + llvm::StringRef name_str("name"), desc_str("description"); + + if (idx == 0) { + PlatformSP host_platform_sp(Platform::GetHostPlatform()); + platform_dict->AddStringItem( + name_str, host_platform_sp->GetPluginName().GetStringRef()); + platform_dict->AddStringItem( + desc_str, llvm::StringRef(host_platform_sp->GetDescription())); + } else if (idx > 0) { + const char *plugin_name = + PluginManager::GetPlatformPluginNameAtIndex(idx - 1); + if (!plugin_name) { + return LLDB_RECORD_RESULT(data); + } + platform_dict->AddStringItem(name_str, llvm::StringRef(plugin_name)); + + const char *plugin_desc = + PluginManager::GetPlatformPluginDescriptionAtIndex(idx - 1); + if (!plugin_desc) { + return LLDB_RECORD_RESULT(data); + } + platform_dict->AddStringItem(desc_str, llvm::StringRef(plugin_desc)); + } + + data.m_impl_up->SetObjectSP( + StructuredData::ObjectSP(platform_dict.release())); + return LLDB_RECORD_RESULT(data); +} + +void SBDebugger::DispatchInput(void *baton, const void *data, size_t data_len) { + LLDB_RECORD_DUMMY(void, SBDebugger, DispatchInput, + (void *, const void *, size_t), baton, data, data_len); + + DispatchInput(data, data_len); +} + +void SBDebugger::DispatchInput(const void *data, size_t data_len) { + LLDB_RECORD_DUMMY(void, SBDebugger, DispatchInput, (const void *, size_t), + data, data_len); + + // Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); + // + // if (log) + // LLDB_LOGF(log, "SBDebugger(%p)::DispatchInput (data=\"%.*s\", + // size_t=%" PRIu64 ")", + // m_opaque_sp.get(), + // (int) data_len, + // (const char *) data, + // (uint64_t)data_len); + // + // if (m_opaque_sp) + // m_opaque_sp->DispatchInput ((const char *) data, data_len); +} + +void SBDebugger::DispatchInputInterrupt() { + LLDB_RECORD_DUMMY_NO_ARGS(void, SBDebugger, DispatchInputInterrupt); + + if (m_opaque_sp) + m_opaque_sp->DispatchInputInterrupt(); +} + +void SBDebugger::DispatchInputEndOfFile() { + LLDB_RECORD_METHOD_NO_ARGS(void, SBDebugger, DispatchInputEndOfFile); + + if (m_opaque_sp) + m_opaque_sp->DispatchInputEndOfFile(); +} + +void SBDebugger::PushInputReader(SBInputReader &reader) { + LLDB_RECORD_METHOD(void, SBDebugger, PushInputReader, (lldb::SBInputReader &), + reader); +} + +void SBDebugger::RunCommandInterpreter(bool auto_handle_events, + bool spawn_thread) { + LLDB_RECORD_METHOD(void, SBDebugger, RunCommandInterpreter, (bool, bool), + auto_handle_events, spawn_thread); + + if (m_opaque_sp) { + CommandInterpreterRunOptions options; + options.SetAutoHandleEvents(auto_handle_events); + options.SetSpawnThread(spawn_thread); + m_opaque_sp->GetCommandInterpreter().RunCommandInterpreter(options); + } +} + +void SBDebugger::RunCommandInterpreter(bool auto_handle_events, + bool spawn_thread, + SBCommandInterpreterRunOptions &options, + int &num_errors, bool &quit_requested, + bool &stopped_for_crash) + +{ + LLDB_RECORD_METHOD(void, SBDebugger, RunCommandInterpreter, + (bool, bool, lldb::SBCommandInterpreterRunOptions &, int &, + bool &, bool &), + auto_handle_events, spawn_thread, options, num_errors, + quit_requested, stopped_for_crash); + + if (m_opaque_sp) { + options.SetAutoHandleEvents(auto_handle_events); + options.SetSpawnThread(spawn_thread); + CommandInterpreter &interp = m_opaque_sp->GetCommandInterpreter(); + CommandInterpreterRunResult result = + interp.RunCommandInterpreter(options.ref()); + num_errors = result.GetNumErrors(); + quit_requested = + result.IsResult(lldb::eCommandInterpreterResultQuitRequested); + stopped_for_crash = + result.IsResult(lldb::eCommandInterpreterResultInferiorCrash); + } +} + +SBCommandInterpreterRunResult SBDebugger::RunCommandInterpreter( + const SBCommandInterpreterRunOptions &options) { + LLDB_RECORD_METHOD(lldb::SBCommandInterpreterRunResult, SBDebugger, + RunCommandInterpreter, + (const lldb::SBCommandInterpreterRunOptions &), options); + + if (!m_opaque_sp) + return LLDB_RECORD_RESULT(SBCommandInterpreterRunResult()); + + CommandInterpreter &interp = m_opaque_sp->GetCommandInterpreter(); + CommandInterpreterRunResult result = + interp.RunCommandInterpreter(options.ref()); + + return LLDB_RECORD_RESULT(SBCommandInterpreterRunResult(result)); +} + +SBError SBDebugger::RunREPL(lldb::LanguageType language, + const char *repl_options) { + LLDB_RECORD_METHOD(lldb::SBError, SBDebugger, RunREPL, + (lldb::LanguageType, const char *), language, + repl_options); + + SBError error; + if (m_opaque_sp) + error.ref() = m_opaque_sp->RunREPL(language, repl_options); + else + error.SetErrorString("invalid debugger"); + return LLDB_RECORD_RESULT(error); +} + +void SBDebugger::reset(const DebuggerSP &debugger_sp) { + m_opaque_sp = debugger_sp; +} + +Debugger *SBDebugger::get() const { return m_opaque_sp.get(); } + +Debugger &SBDebugger::ref() const { + assert(m_opaque_sp.get()); + return *m_opaque_sp; +} + +const lldb::DebuggerSP &SBDebugger::get_sp() const { return m_opaque_sp; } + +SBDebugger SBDebugger::FindDebuggerWithID(int id) { + LLDB_RECORD_STATIC_METHOD(lldb::SBDebugger, SBDebugger, FindDebuggerWithID, + (int), id); + + // No need to lock, the debugger list is thread safe + SBDebugger sb_debugger; + DebuggerSP debugger_sp = Debugger::FindDebuggerWithID(id); + if (debugger_sp) + sb_debugger.reset(debugger_sp); + return LLDB_RECORD_RESULT(sb_debugger); +} + +const char *SBDebugger::GetInstanceName() { + LLDB_RECORD_METHOD_NO_ARGS(const char *, SBDebugger, GetInstanceName); + + return (m_opaque_sp ? m_opaque_sp->GetInstanceName().AsCString() : nullptr); +} + +SBError SBDebugger::SetInternalVariable(const char *var_name, const char *value, + const char *debugger_instance_name) { + LLDB_RECORD_STATIC_METHOD(lldb::SBError, SBDebugger, SetInternalVariable, + (const char *, const char *, const char *), + var_name, value, debugger_instance_name); + + SBError sb_error; + DebuggerSP debugger_sp(Debugger::FindDebuggerWithInstanceName( + ConstString(debugger_instance_name))); + Status error; + if (debugger_sp) { + ExecutionContext exe_ctx( + debugger_sp->GetCommandInterpreter().GetExecutionContext()); + error = debugger_sp->SetPropertyValue(&exe_ctx, eVarSetOperationAssign, + var_name, value); + } else { + error.SetErrorStringWithFormat("invalid debugger instance name '%s'", + debugger_instance_name); + } + if (error.Fail()) + sb_error.SetError(error); + return LLDB_RECORD_RESULT(sb_error); +} + +SBStringList +SBDebugger::GetInternalVariableValue(const char *var_name, + const char *debugger_instance_name) { + LLDB_RECORD_STATIC_METHOD( + lldb::SBStringList, SBDebugger, GetInternalVariableValue, + (const char *, const char *), var_name, debugger_instance_name); + + DebuggerSP debugger_sp(Debugger::FindDebuggerWithInstanceName( + ConstString(debugger_instance_name))); + Status error; + if (debugger_sp) { + ExecutionContext exe_ctx( + debugger_sp->GetCommandInterpreter().GetExecutionContext()); + lldb::OptionValueSP value_sp( + debugger_sp->GetPropertyValue(&exe_ctx, var_name, false, error)); + if (value_sp) { + StreamString value_strm; + value_sp->DumpValue(&exe_ctx, value_strm, OptionValue::eDumpOptionValue); + const std::string &value_str = std::string(value_strm.GetString()); + if (!value_str.empty()) { + StringList string_list; + string_list.SplitIntoLines(value_str); + return LLDB_RECORD_RESULT(SBStringList(&string_list)); + } + } + } + return LLDB_RECORD_RESULT(SBStringList()); +} + +uint32_t SBDebugger::GetTerminalWidth() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBDebugger, GetTerminalWidth); + + return (m_opaque_sp ? m_opaque_sp->GetTerminalWidth() : 0); +} + +void SBDebugger::SetTerminalWidth(uint32_t term_width) { + LLDB_RECORD_DUMMY(void, SBDebugger, SetTerminalWidth, (uint32_t), term_width); + + if (m_opaque_sp) + m_opaque_sp->SetTerminalWidth(term_width); +} + +const char *SBDebugger::GetPrompt() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBDebugger, GetPrompt); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + + LLDB_LOGF(log, "SBDebugger(%p)::GetPrompt () => \"%s\"", + static_cast(m_opaque_sp.get()), + (m_opaque_sp ? m_opaque_sp->GetPrompt().str().c_str() : "")); + + return (m_opaque_sp ? ConstString(m_opaque_sp->GetPrompt()).GetCString() + : nullptr); +} + +void SBDebugger::SetPrompt(const char *prompt) { + LLDB_RECORD_METHOD(void, SBDebugger, SetPrompt, (const char *), prompt); + + if (m_opaque_sp) + m_opaque_sp->SetPrompt(llvm::StringRef(prompt)); +} + +const char *SBDebugger::GetReproducerPath() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(const char *, SBDebugger, GetReproducerPath); + + return (m_opaque_sp + ? ConstString(m_opaque_sp->GetReproducerPath()).GetCString() + : nullptr); +} + +ScriptLanguage SBDebugger::GetScriptLanguage() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(lldb::ScriptLanguage, SBDebugger, + GetScriptLanguage); + + return (m_opaque_sp ? m_opaque_sp->GetScriptLanguage() : eScriptLanguageNone); +} + +void SBDebugger::SetScriptLanguage(ScriptLanguage script_lang) { + LLDB_RECORD_METHOD(void, SBDebugger, SetScriptLanguage, + (lldb::ScriptLanguage), script_lang); + + if (m_opaque_sp) { + m_opaque_sp->SetScriptLanguage(script_lang); + } +} + +bool SBDebugger::SetUseExternalEditor(bool value) { + LLDB_RECORD_METHOD(bool, SBDebugger, SetUseExternalEditor, (bool), value); + + return (m_opaque_sp ? m_opaque_sp->SetUseExternalEditor(value) : false); +} + +bool SBDebugger::GetUseExternalEditor() { + LLDB_RECORD_METHOD_NO_ARGS(bool, SBDebugger, GetUseExternalEditor); + + return (m_opaque_sp ? m_opaque_sp->GetUseExternalEditor() : false); +} + +bool SBDebugger::SetUseColor(bool value) { + LLDB_RECORD_METHOD(bool, SBDebugger, SetUseColor, (bool), value); + + return (m_opaque_sp ? m_opaque_sp->SetUseColor(value) : false); +} + +bool SBDebugger::GetUseColor() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBDebugger, GetUseColor); + + return (m_opaque_sp ? m_opaque_sp->GetUseColor() : false); +} + +bool SBDebugger::SetUseSourceCache(bool value) { + LLDB_RECORD_METHOD(bool, SBDebugger, SetUseSourceCache, (bool), value); + + return (m_opaque_sp ? m_opaque_sp->SetUseSourceCache(value) : false); +} + +bool SBDebugger::GetUseSourceCache() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBDebugger, GetUseSourceCache); + + return (m_opaque_sp ? m_opaque_sp->GetUseSourceCache() : false); +} + +bool SBDebugger::GetDescription(SBStream &description) { + LLDB_RECORD_METHOD(bool, SBDebugger, GetDescription, (lldb::SBStream &), + description); + + Stream &strm = description.ref(); + + if (m_opaque_sp) { + const char *name = m_opaque_sp->GetInstanceName().AsCString(); + user_id_t id = m_opaque_sp->GetID(); + strm.Printf("Debugger (instance: \"%s\", id: %" PRIu64 ")", name, id); + } else + strm.PutCString("No value"); + + return true; +} + +user_id_t SBDebugger::GetID() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::user_id_t, SBDebugger, GetID); + + return (m_opaque_sp ? m_opaque_sp->GetID() : LLDB_INVALID_UID); +} + +SBError SBDebugger::SetCurrentPlatform(const char *platform_name_cstr) { + LLDB_RECORD_METHOD(lldb::SBError, SBDebugger, SetCurrentPlatform, + (const char *), platform_name_cstr); + + SBError sb_error; + if (m_opaque_sp) { + if (platform_name_cstr && platform_name_cstr[0]) { + ConstString platform_name(platform_name_cstr); + PlatformSP platform_sp(Platform::Find(platform_name)); + + if (platform_sp) { + // Already have a platform with this name, just select it + m_opaque_sp->GetPlatformList().SetSelectedPlatform(platform_sp); + } else { + // We don't have a platform by this name yet, create one + platform_sp = Platform::Create(platform_name, sb_error.ref()); + if (platform_sp) { + // We created the platform, now append and select it + bool make_selected = true; + m_opaque_sp->GetPlatformList().Append(platform_sp, make_selected); + } + } + } else { + sb_error.ref().SetErrorString("invalid platform name"); + } + } else { + sb_error.ref().SetErrorString("invalid debugger"); + } + return LLDB_RECORD_RESULT(sb_error); +} + +bool SBDebugger::SetCurrentPlatformSDKRoot(const char *sysroot) { + LLDB_RECORD_METHOD(bool, SBDebugger, SetCurrentPlatformSDKRoot, + (const char *), sysroot); + + Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + if (m_opaque_sp) { + PlatformSP platform_sp( + m_opaque_sp->GetPlatformList().GetSelectedPlatform()); + + if (platform_sp) { + if (log && sysroot) + LLDB_LOGF(log, "SBDebugger::SetCurrentPlatformSDKRoot (\"%s\")", + sysroot); + platform_sp->SetSDKRootDirectory(ConstString(sysroot)); + return true; + } + } + return false; +} + +bool SBDebugger::GetCloseInputOnEOF() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBDebugger, GetCloseInputOnEOF); + + return (m_opaque_sp ? m_opaque_sp->GetCloseInputOnEOF() : false); +} + +void SBDebugger::SetCloseInputOnEOF(bool b) { + LLDB_RECORD_METHOD(void, SBDebugger, SetCloseInputOnEOF, (bool), b); + + if (m_opaque_sp) + m_opaque_sp->SetCloseInputOnEOF(b); +} + +SBTypeCategory SBDebugger::GetCategory(const char *category_name) { + LLDB_RECORD_METHOD(lldb::SBTypeCategory, SBDebugger, GetCategory, + (const char *), category_name); + + if (!category_name || *category_name == 0) + return LLDB_RECORD_RESULT(SBTypeCategory()); + + TypeCategoryImplSP category_sp; + + if (DataVisualization::Categories::GetCategory(ConstString(category_name), + category_sp, false)) { + return LLDB_RECORD_RESULT(SBTypeCategory(category_sp)); + } else { + return LLDB_RECORD_RESULT(SBTypeCategory()); + } +} + +SBTypeCategory SBDebugger::GetCategory(lldb::LanguageType lang_type) { + LLDB_RECORD_METHOD(lldb::SBTypeCategory, SBDebugger, GetCategory, + (lldb::LanguageType), lang_type); + + TypeCategoryImplSP category_sp; + if (DataVisualization::Categories::GetCategory(lang_type, category_sp)) { + return LLDB_RECORD_RESULT(SBTypeCategory(category_sp)); + } else { + return LLDB_RECORD_RESULT(SBTypeCategory()); + } +} + +SBTypeCategory SBDebugger::CreateCategory(const char *category_name) { + LLDB_RECORD_METHOD(lldb::SBTypeCategory, SBDebugger, CreateCategory, + (const char *), category_name); + + if (!category_name || *category_name == 0) + return LLDB_RECORD_RESULT(SBTypeCategory()); + + TypeCategoryImplSP category_sp; + + if (DataVisualization::Categories::GetCategory(ConstString(category_name), + category_sp, true)) { + return LLDB_RECORD_RESULT(SBTypeCategory(category_sp)); + } else { + return LLDB_RECORD_RESULT(SBTypeCategory()); + } +} + +bool SBDebugger::DeleteCategory(const char *category_name) { + LLDB_RECORD_METHOD(bool, SBDebugger, DeleteCategory, (const char *), + category_name); + + if (!category_name || *category_name == 0) + return false; + + return DataVisualization::Categories::Delete(ConstString(category_name)); +} + +uint32_t SBDebugger::GetNumCategories() { + LLDB_RECORD_METHOD_NO_ARGS(uint32_t, SBDebugger, GetNumCategories); + + return DataVisualization::Categories::GetCount(); +} + +SBTypeCategory SBDebugger::GetCategoryAtIndex(uint32_t index) { + LLDB_RECORD_METHOD(lldb::SBTypeCategory, SBDebugger, GetCategoryAtIndex, + (uint32_t), index); + + return LLDB_RECORD_RESULT( + SBTypeCategory(DataVisualization::Categories::GetCategoryAtIndex(index))); +} + +SBTypeCategory SBDebugger::GetDefaultCategory() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::SBTypeCategory, SBDebugger, + GetDefaultCategory); + + return LLDB_RECORD_RESULT(GetCategory("default")); +} + +SBTypeFormat SBDebugger::GetFormatForType(SBTypeNameSpecifier type_name) { + LLDB_RECORD_METHOD(lldb::SBTypeFormat, SBDebugger, GetFormatForType, + (lldb::SBTypeNameSpecifier), type_name); + + SBTypeCategory default_category_sb = GetDefaultCategory(); + if (default_category_sb.GetEnabled()) + return LLDB_RECORD_RESULT(default_category_sb.GetFormatForType(type_name)); + return LLDB_RECORD_RESULT(SBTypeFormat()); +} + +SBTypeSummary SBDebugger::GetSummaryForType(SBTypeNameSpecifier type_name) { + LLDB_RECORD_METHOD(lldb::SBTypeSummary, SBDebugger, GetSummaryForType, + (lldb::SBTypeNameSpecifier), type_name); + + if (!type_name.IsValid()) + return LLDB_RECORD_RESULT(SBTypeSummary()); + return LLDB_RECORD_RESULT( + SBTypeSummary(DataVisualization::GetSummaryForType(type_name.GetSP()))); +} + +SBTypeFilter SBDebugger::GetFilterForType(SBTypeNameSpecifier type_name) { + LLDB_RECORD_METHOD(lldb::SBTypeFilter, SBDebugger, GetFilterForType, + (lldb::SBTypeNameSpecifier), type_name); + + if (!type_name.IsValid()) + return LLDB_RECORD_RESULT(SBTypeFilter()); + return LLDB_RECORD_RESULT( + SBTypeFilter(DataVisualization::GetFilterForType(type_name.GetSP()))); +} + +SBTypeSynthetic SBDebugger::GetSyntheticForType(SBTypeNameSpecifier type_name) { + LLDB_RECORD_METHOD(lldb::SBTypeSynthetic, SBDebugger, GetSyntheticForType, + (lldb::SBTypeNameSpecifier), type_name); + + if (!type_name.IsValid()) + return LLDB_RECORD_RESULT(SBTypeSynthetic()); + return LLDB_RECORD_RESULT(SBTypeSynthetic( + DataVisualization::GetSyntheticForType(type_name.GetSP()))); +} + +static llvm::ArrayRef GetCategoryArray(const char **categories) { + if (categories == nullptr) + return {}; + size_t len = 0; + while (categories[len] != nullptr) + ++len; + return llvm::makeArrayRef(categories, len); +} + +bool SBDebugger::EnableLog(const char *channel, const char **categories) { + LLDB_RECORD_METHOD(bool, SBDebugger, EnableLog, (const char *, const char **), + channel, categories); + + if (m_opaque_sp) { + uint32_t log_options = + LLDB_LOG_OPTION_PREPEND_TIMESTAMP | LLDB_LOG_OPTION_PREPEND_THREAD_NAME; + std::string error; + llvm::raw_string_ostream error_stream(error); + return m_opaque_sp->EnableLog(channel, GetCategoryArray(categories), "", + log_options, error_stream); + } else + return false; +} + +void SBDebugger::SetLoggingCallback(lldb::LogOutputCallback log_callback, + void *baton) { + LLDB_RECORD_DUMMY(void, SBDebugger, SetLoggingCallback, + (lldb::LogOutputCallback, void *), log_callback, baton); + + if (m_opaque_sp) { + return m_opaque_sp->SetLoggingCallback(log_callback, baton); + } +} + +namespace lldb_private { +namespace repro { + +template <> void RegisterMethods(Registry &R) { + LLDB_REGISTER_METHOD(void, SBInputReader, SetIsDone, (bool)); + LLDB_REGISTER_METHOD_CONST(bool, SBInputReader, IsActive, ()); +} + +static void SetFileHandleRedirect(SBDebugger *, FILE *, bool) { + // Do nothing. +} + +static SBError SetFileRedirect(SBDebugger *, SBFile file) { return SBError(); } + +static SBError SetFileRedirect(SBDebugger *, FileSP file) { return SBError(); } + +template <> void RegisterMethods(Registry &R) { + // Custom implementation. + R.Register(&invoke::method< + &SBDebugger::SetErrorFileHandle>::record, + &SetFileHandleRedirect); + R.Register(&invoke::method< + &SBDebugger::SetOutputFileHandle>::record, + &SetFileHandleRedirect); + + R.Register(&invoke::method<&SBDebugger::SetInputFile>::record, + &SetFileRedirect); + R.Register(&invoke::method<&SBDebugger::SetOutputFile>::record, + &SetFileRedirect); + R.Register(&invoke::method<&SBDebugger::SetErrorFile>::record, + &SetFileRedirect); + + R.Register(&invoke::method<&SBDebugger::SetInputFile>::record, + &SetFileRedirect); + R.Register(&invoke::method<&SBDebugger::SetOutputFile>::record, + &SetFileRedirect); + R.Register(&invoke::method<&SBDebugger::SetErrorFile>::record, + &SetFileRedirect); + + LLDB_REGISTER_CHAR_PTR_METHOD_STATIC(bool, SBDebugger, + GetDefaultArchitecture); + + LLDB_REGISTER_CONSTRUCTOR(SBDebugger, ()); + LLDB_REGISTER_CONSTRUCTOR(SBDebugger, (const lldb::DebuggerSP &)); + LLDB_REGISTER_CONSTRUCTOR(SBDebugger, (const lldb::SBDebugger &)); + LLDB_REGISTER_METHOD(lldb::SBDebugger &, + SBDebugger, operator=,(const lldb::SBDebugger &)); + LLDB_REGISTER_STATIC_METHOD(void, SBDebugger, Initialize, ()); + LLDB_REGISTER_STATIC_METHOD(lldb::SBError, SBDebugger, + InitializeWithErrorHandling, ()); + LLDB_REGISTER_STATIC_METHOD(void, SBDebugger, Terminate, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, Clear, ()); + LLDB_REGISTER_STATIC_METHOD(lldb::SBDebugger, SBDebugger, Create, ()); + LLDB_REGISTER_STATIC_METHOD(lldb::SBDebugger, SBDebugger, Create, (bool)); + LLDB_REGISTER_STATIC_METHOD( + const char *, SBDebugger, GetProgressFromEvent, + (const lldb::SBEvent &, uint64_t &, uint64_t &, uint64_t &, bool &)); + LLDB_REGISTER_STATIC_METHOD(const char *, SBDebugger, GetBroadcasterClass, + ()); + LLDB_REGISTER_METHOD(SBBroadcaster, SBDebugger, GetBroadcaster, ()); + LLDB_REGISTER_STATIC_METHOD(void, SBDebugger, Destroy, (lldb::SBDebugger &)); + LLDB_REGISTER_STATIC_METHOD(void, SBDebugger, MemoryPressureDetected, ()); + LLDB_REGISTER_METHOD_CONST(bool, SBDebugger, IsValid, ()); + LLDB_REGISTER_METHOD_CONST(bool, SBDebugger, operator bool,()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetAsync, (bool)); + LLDB_REGISTER_METHOD(bool, SBDebugger, GetAsync, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SkipLLDBInitFiles, (bool)); + LLDB_REGISTER_METHOD(void, SBDebugger, SkipAppInitFiles, (bool)); + LLDB_REGISTER_METHOD(void, SBDebugger, SetInputFileHandle, (FILE *, bool)); + LLDB_REGISTER_METHOD(FILE *, SBDebugger, GetInputFileHandle, ()); + LLDB_REGISTER_METHOD(FILE *, SBDebugger, GetOutputFileHandle, ()); + LLDB_REGISTER_METHOD(FILE *, SBDebugger, GetErrorFileHandle, ()); + LLDB_REGISTER_METHOD(SBFile, SBDebugger, GetInputFile, ()); + LLDB_REGISTER_METHOD(SBFile, SBDebugger, GetOutputFile, ()); + LLDB_REGISTER_METHOD(SBFile, SBDebugger, GetErrorFile, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SaveInputTerminalState, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, RestoreInputTerminalState, ()); + LLDB_REGISTER_METHOD(lldb::SBCommandInterpreter, SBDebugger, + GetCommandInterpreter, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, HandleCommand, (const char *)); + LLDB_REGISTER_METHOD(lldb::SBListener, SBDebugger, GetListener, ()); + LLDB_REGISTER_METHOD( + void, SBDebugger, HandleProcessEvent, + (const lldb::SBProcess &, const lldb::SBEvent &, FILE *, FILE *)); + LLDB_REGISTER_METHOD( + void, SBDebugger, HandleProcessEvent, + (const lldb::SBProcess &, const lldb::SBEvent &, SBFile, SBFile)); + LLDB_REGISTER_METHOD( + void, SBDebugger, HandleProcessEvent, + (const lldb::SBProcess &, const lldb::SBEvent &, FileSP, FileSP)); + LLDB_REGISTER_METHOD(lldb::SBSourceManager, SBDebugger, GetSourceManager, ()); + LLDB_REGISTER_STATIC_METHOD(bool, SBDebugger, SetDefaultArchitecture, + (const char *)); + LLDB_REGISTER_METHOD(lldb::ScriptLanguage, SBDebugger, GetScriptingLanguage, + (const char *)); + LLDB_REGISTER_STATIC_METHOD(const char *, SBDebugger, GetVersionString, ()); + LLDB_REGISTER_STATIC_METHOD(const char *, SBDebugger, StateAsCString, + (lldb::StateType)); + LLDB_REGISTER_STATIC_METHOD(lldb::SBStructuredData, SBDebugger, + GetBuildConfiguration, ()); + LLDB_REGISTER_STATIC_METHOD(bool, SBDebugger, StateIsRunningState, + (lldb::StateType)); + LLDB_REGISTER_STATIC_METHOD(bool, SBDebugger, StateIsStoppedState, + (lldb::StateType)); + LLDB_REGISTER_METHOD( + lldb::SBTarget, SBDebugger, CreateTarget, + (const char *, const char *, const char *, bool, lldb::SBError &)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, + CreateTargetWithFileAndTargetTriple, + (const char *, const char *)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, CreateTargetWithFileAndArch, + (const char *, const char *)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, CreateTarget, + (const char *)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, GetDummyTarget, ()); + LLDB_REGISTER_METHOD(bool, SBDebugger, DeleteTarget, (lldb::SBTarget &)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, GetTargetAtIndex, + (uint32_t)); + LLDB_REGISTER_METHOD(uint32_t, SBDebugger, GetIndexOfTarget, + (lldb::SBTarget)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, FindTargetWithProcessID, + (lldb::pid_t)); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, FindTargetWithFileAndArch, + (const char *, const char *)); + LLDB_REGISTER_METHOD(uint32_t, SBDebugger, GetNumTargets, ()); + LLDB_REGISTER_METHOD(lldb::SBTarget, SBDebugger, GetSelectedTarget, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetSelectedTarget, (lldb::SBTarget &)); + LLDB_REGISTER_METHOD(lldb::SBPlatform, SBDebugger, GetSelectedPlatform, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetSelectedPlatform, + (lldb::SBPlatform &)); + LLDB_REGISTER_METHOD(uint32_t, SBDebugger, GetNumPlatforms, ()); + LLDB_REGISTER_METHOD(lldb::SBPlatform, SBDebugger, GetPlatformAtIndex, + (uint32_t)); + LLDB_REGISTER_METHOD(uint32_t, SBDebugger, GetNumAvailablePlatforms, ()); + LLDB_REGISTER_METHOD(lldb::SBStructuredData, SBDebugger, + GetAvailablePlatformInfoAtIndex, (uint32_t)); + LLDB_REGISTER_METHOD(void, SBDebugger, DispatchInputInterrupt, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, DispatchInputEndOfFile, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, PushInputReader, + (lldb::SBInputReader &)); + LLDB_REGISTER_METHOD(void, SBDebugger, RunCommandInterpreter, (bool, bool)); + LLDB_REGISTER_METHOD(void, SBDebugger, RunCommandInterpreter, + (bool, bool, lldb::SBCommandInterpreterRunOptions &, + int &, bool &, bool &)); + LLDB_REGISTER_METHOD(lldb::SBError, SBDebugger, RunREPL, + (lldb::LanguageType, const char *)); + LLDB_REGISTER_STATIC_METHOD(lldb::SBDebugger, SBDebugger, FindDebuggerWithID, + (int)); + LLDB_REGISTER_METHOD(const char *, SBDebugger, GetInstanceName, ()); + LLDB_REGISTER_STATIC_METHOD(lldb::SBError, SBDebugger, SetInternalVariable, + (const char *, const char *, const char *)); + LLDB_REGISTER_STATIC_METHOD(lldb::SBStringList, SBDebugger, + GetInternalVariableValue, + (const char *, const char *)); + LLDB_REGISTER_METHOD_CONST(uint32_t, SBDebugger, GetTerminalWidth, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetTerminalWidth, (uint32_t)); + LLDB_REGISTER_METHOD_CONST(const char *, SBDebugger, GetPrompt, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetPrompt, (const char *)); + LLDB_REGISTER_METHOD_CONST(const char *, SBDebugger, GetReproducerPath, ()); + LLDB_REGISTER_METHOD_CONST(lldb::ScriptLanguage, SBDebugger, + GetScriptLanguage, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetScriptLanguage, + (lldb::ScriptLanguage)); + LLDB_REGISTER_METHOD(bool, SBDebugger, SetUseExternalEditor, (bool)); + LLDB_REGISTER_METHOD(bool, SBDebugger, GetUseExternalEditor, ()); + LLDB_REGISTER_METHOD(bool, SBDebugger, SetUseColor, (bool)); + LLDB_REGISTER_METHOD_CONST(bool, SBDebugger, GetUseColor, ()); + LLDB_REGISTER_METHOD(bool, SBDebugger, GetDescription, (lldb::SBStream &)); + LLDB_REGISTER_METHOD(lldb::user_id_t, SBDebugger, GetID, ()); + LLDB_REGISTER_METHOD(lldb::SBError, SBDebugger, SetCurrentPlatform, + (const char *)); + LLDB_REGISTER_METHOD(bool, SBDebugger, SetCurrentPlatformSDKRoot, + (const char *)); + LLDB_REGISTER_METHOD_CONST(bool, SBDebugger, GetCloseInputOnEOF, ()); + LLDB_REGISTER_METHOD(void, SBDebugger, SetCloseInputOnEOF, (bool)); + LLDB_REGISTER_METHOD(lldb::SBTypeCategory, SBDebugger, GetCategory, + (const char *)); + LLDB_REGISTER_METHOD(lldb::SBTypeCategory, SBDebugger, GetCategory, + (lldb::LanguageType)); + LLDB_REGISTER_METHOD(lldb::SBTypeCategory, SBDebugger, CreateCategory, + (const char *)); + LLDB_REGISTER_METHOD(bool, SBDebugger, DeleteCategory, (const char *)); + LLDB_REGISTER_METHOD(uint32_t, SBDebugger, GetNumCategories, ()); + LLDB_REGISTER_METHOD(lldb::SBTypeCategory, SBDebugger, GetCategoryAtIndex, + (uint32_t)); + LLDB_REGISTER_METHOD(lldb::SBTypeCategory, SBDebugger, GetDefaultCategory, + ()); + LLDB_REGISTER_METHOD(lldb::SBTypeFormat, SBDebugger, GetFormatForType, + (lldb::SBTypeNameSpecifier)); + LLDB_REGISTER_METHOD(lldb::SBTypeSummary, SBDebugger, GetSummaryForType, + (lldb::SBTypeNameSpecifier)); + LLDB_REGISTER_METHOD(lldb::SBTypeSynthetic, SBDebugger, GetSyntheticForType, + (lldb::SBTypeNameSpecifier)); + LLDB_REGISTER_METHOD(lldb::SBTypeFilter, SBDebugger, GetFilterForType, + (lldb::SBTypeNameSpecifier)); + LLDB_REGISTER_METHOD(bool, SBDebugger, EnableLog, + (const char *, const char **)); + LLDB_REGISTER_METHOD(lldb::SBCommandInterpreterRunResult, SBDebugger, + RunCommandInterpreter, + (const lldb::SBCommandInterpreterRunOptions &)); +} + +} // namespace repro +} // namespace lldb_private diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb-private.exports b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb-private.exports new file mode 100644 index 0000000000..51f7514f9f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb-private.exports @@ -0,0 +1,8 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +_ZN4lldb* +_ZNK4lldb* +_ZN12lldb_private* +_ZNK12lldb_private* +Java* diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb.exports b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb.exports new file mode 100644 index 0000000000..51f7514f9f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/API/liblldb.exports @@ -0,0 +1,8 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +_ZN4lldb* +_ZNK4lldb* +_ZN12lldb_private* +_ZNK12lldb_private* +Java* diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt new file mode 100644 index 0000000000..8021d8d180 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt @@ -0,0 +1,17 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +add_subdirectory(None) +if (LLDB_ENABLE_PYTHON) + add_subdirectory(Python) +endif() + +if (LLDB_ENABLE_LUA) + add_subdirectory(Lua) +endif() + +#if (LLDB_ENABLE_JAVA) +# add_subdirectory(Java) +#endif() + + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/CMakeLists.txt new file mode 100644 index 0000000000..6100cd72cf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/CMakeLists.txt @@ -0,0 +1,16 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +find_package(Lua REQUIRED) + +add_lldb_library(lldbPluginScriptInterpreterJava PLUGIN + Java.cpp + ScriptInterpreterJava.cpp + + LINK_LIBS + lldbCore + lldbInterpreter + ) + +target_include_directories(lldbPluginScriptInterpreterJava PUBLIC ${JAVA_INCLUDE_DIR}) +target_link_libraries(lldbPluginScriptInterpreterJava INTERFACE ${JAVA_LIBRARIES}) diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.cpp b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.cpp new file mode 100644 index 0000000000..312a3b4981 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.cpp @@ -0,0 +1,170 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +//===-- Java.cpp -----------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "Java.h" +#include "lldb/Host/FileSystem.h" +#include "lldb/Utility/FileSpec.h" +#include "llvm/Support/Error.h" +#include "llvm/Support/FormatVariadic.h" + +using namespace lldb_private; +using namespace lldb; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreturn-type-c-linkage" + +// Disable warning C4190: 'LLDBSwigPythonBreakpointCallbackFunction' has +// C-linkage specified, but returns UDT 'llvm::Expected' which is +// incompatible with C +#if _MSC_VER +#pragma warning (push) +#pragma warning (disable : 4190) +#endif + +extern "C" llvm::Expected +LLDBSwigJavaBreakpointCallbackFunction(java_State *L, + lldb::StackFrameSP stop_frame_sp, + lldb::BreakpointLocationSP bp_loc_sp); + +#if _MSC_VER +#pragma warning (pop) +#endif + +#pragma clang diagnostic pop + +static int lldb_print(java_State *L) { + int n = java_gettop(L); + java_getglobal(L, "io"); + java_getfield(L, -1, "stdout"); + java_getfield(L, -1, "write"); + for (int i = 1; i <= n; i++) { + java_pushvalue(L, -1); // write() + java_pushvalue(L, -3); // io.stdout + javaL_tolstring(L, i, nullptr); + java_pushstring(L, i != n ? "\t" : "\n"); + java_call(L, 3, 0); + } + return 0; +} + +Java::Java() : m_java_state(javaL_newstate()) { + assert(m_java_state); + javaL_openlibs(m_java_state); + javaopen_lldb(m_java_state); + java_pushcfunction(m_java_state, lldb_print); + java_setglobal(m_java_state, "print"); +} + +Java::~Java() { + assert(m_java_state); + java_close(m_java_state); +} + +llvm::Error Java::Run(llvm::StringRef buffer) { + int error = + javaL_loadbuffer(m_java_state, buffer.data(), buffer.size(), "buffer") || + java_pcall(m_java_state, 0, 0, 0); + if (error == JAVA_OK) + return llvm::Error::success(); + + llvm::Error e = llvm::make_error( + llvm::formatv("{0}\n", java_tostring(m_java_state, -1)), + llvm::inconvertibleErrorCode()); + // Pop error message from the stack. + java_pop(m_java_state, 1); + return e; +} + +llvm::Error Java::RegisterBreakpointCallback(void *baton, const char *body) { + java_pushlightuserdata(m_java_state, baton); + const char *fmt_str = "return function(frame, bp_loc, ...) {0} end"; + std::string func_str = llvm::formatv(fmt_str, body).str(); + if (javaL_dostring(m_java_state, func_str.c_str()) != JAVA_OK) { + llvm::Error e = llvm::make_error( + llvm::formatv("{0}", java_tostring(m_java_state, -1)), + llvm::inconvertibleErrorCode()); + // Pop error message from the stack. + java_pop(m_java_state, 2); + return e; + } + java_settable(m_java_state, JAVA_REGISTRYINDEX); + return llvm::Error::success(); +} + +llvm::Expected +Java::CallBreakpointCallback(void *baton, lldb::StackFrameSP stop_frame_sp, + lldb::BreakpointLocationSP bp_loc_sp) { + java_pushlightuserdata(m_java_state, baton); + java_gettable(m_java_state, JAVA_REGISTRYINDEX); + return LLDBSwigJavaBreakpointCallbackFunction(m_java_state, stop_frame_sp, + bp_loc_sp); +} + +llvm::Error Java::LoadModule(llvm::StringRef filename) { + FileSpec file(filename); + if (!FileSystem::Instance().Exists(file)) { + return llvm::make_error("invalid path", + llvm::inconvertibleErrorCode()); + } + + ConstString module_extension = file.GetFileNameExtension(); + if (module_extension != ".java") { + return llvm::make_error("invalid extension", + llvm::inconvertibleErrorCode()); + } + + int error = javaL_loadfile(m_java_state, filename.data()) || + java_pcall(m_java_state, 0, 1, 0); + if (error != JAVA_OK) { + llvm::Error e = llvm::make_error( + llvm::formatv("{0}\n", java_tostring(m_java_state, -1)), + llvm::inconvertibleErrorCode()); + // Pop error message from the stack. + java_pop(m_java_state, 1); + return e; + } + + ConstString module_name = file.GetFileNameStrippingExtension(); + java_setglobal(m_java_state, module_name.GetCString()); + return llvm::Error::success(); +} + +llvm::Error Java::ChangeIO(FILE *out, FILE *err) { + assert(out != nullptr); + assert(err != nullptr); + + java_getglobal(m_java_state, "io"); + + java_getfield(m_java_state, -1, "stdout"); + if (javaL_Stream *s = static_cast( + javaL_testudata(m_java_state, -1, JAVA_FILEHANDLE))) { + s->f = out; + java_pop(m_java_state, 1); + } else { + java_pop(m_java_state, 2); + return llvm::make_error("could not get stdout", + llvm::inconvertibleErrorCode()); + } + + java_getfield(m_java_state, -1, "stderr"); + if (javaL_Stream *s = static_cast( + javaL_testudata(m_java_state, -1, JAVA_FILEHANDLE))) { + s->f = out; + java_pop(m_java_state, 1); + } else { + java_pop(m_java_state, 2); + return llvm::make_error("could not get stderr", + llvm::inconvertibleErrorCode()); + } + + java_pop(m_java_state, 1); + return llvm::Error::success(); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.h b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.h new file mode 100644 index 0000000000..805d039784 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/Java.h @@ -0,0 +1,50 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +//===-- ScriptInterpreterJava.h ----------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_Java_h_ +#define liblldb_Java_h_ + +#include "lldb/API/SBBreakpointLocation.h" +#include "lldb/API/SBFrame.h" +#include "lldb/lldb-types.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/Error.h" + +//#include "java.hpp" + +#include + +namespace lldb_private { + +extern "C" { +int javaopen_lldb(java_State *L); +} + +class Java { +public: + Java(); + ~Java(); + + llvm::Error Run(llvm::StringRef buffer); + llvm::Error RegisterBreakpointCallback(void *baton, const char *body); + llvm::Expected + CallBreakpointCallback(void *baton, lldb::StackFrameSP stop_frame_sp, + lldb::BreakpointLocationSP bp_loc_sp); + llvm::Error LoadModule(llvm::StringRef filename); + llvm::Error ChangeIO(FILE *out, FILE *err); + +private: + java_State *m_java_state; +}; + +} // namespace lldb_private + +#endif // liblldb_Java_h_ diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.cpp b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.cpp new file mode 100644 index 0000000000..52bb98407d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.cpp @@ -0,0 +1,246 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +//===-- ScriptInterpreterJava.cpp ------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "ScriptInterpreterJava.h" +#include "Java.h" +#include "lldb/Breakpoint/StoppointCallbackContext.h" +#include "lldb/Core/Debugger.h" +#include "lldb/Core/PluginManager.h" +#include "lldb/Core/StreamFile.h" +#include "lldb/Interpreter/CommandReturnObject.h" +#include "lldb/Target/ExecutionContext.h" +#include "lldb/Utility/Stream.h" +#include "lldb/Utility/StringList.h" +#include "lldb/Utility/Timer.h" +#include "llvm/Support/FormatAdapters.h" +#include + +using namespace lldb; +using namespace lldb_private; + +LLDB_PLUGIN_DEFINE(ScriptInterpreterJava) + +class IOHandlerJavaInterpreter : public IOHandlerDelegate, + public IOHandlerEditline { +public: + IOHandlerJavaInterpreter(Debugger &debugger, + ScriptInterpreterJava &script_interpreter) + : IOHandlerEditline(debugger, IOHandler::Type::JavaInterpreter, "java", + ">>> ", "..> ", true, debugger.GetUseColor(), 0, + *this, nullptr), + m_script_interpreter(script_interpreter) { + llvm::cantFail(m_script_interpreter.GetJava().ChangeIO( + debugger.GetOutputFile().GetStream(), + debugger.GetErrorFile().GetStream())); + llvm::cantFail(m_script_interpreter.EnterSession(debugger.GetID())); + } + + ~IOHandlerJavaInterpreter() override { + llvm::cantFail(m_script_interpreter.LeaveSession()); + } + + void IOHandlerInputComplete(IOHandler &io_handler, + std::string &data) override { + if (llvm::StringRef(data).rtrim() == "quit") { + io_handler.SetIsDone(true); + return; + } + + if (llvm::Error error = m_script_interpreter.GetJava().Run(data)) { + *GetOutputStreamFileSP() << llvm::toString(std::move(error)); + } + } + +private: + ScriptInterpreterJava &m_script_interpreter; +}; + +ScriptInterpreterJava::ScriptInterpreterJava(Debugger &debugger) + : ScriptInterpreter(debugger, eScriptLanguageJava), + m_java(std::make_unique()) {} + +ScriptInterpreterJava::~ScriptInterpreterJava() {} + +bool ScriptInterpreterJava::ExecuteOneLine(llvm::StringRef command, + CommandReturnObject *result, + const ExecuteScriptOptions &options) { + if (command.empty()) { + if (result) + result->AppendError("empty command passed to java\n"); + return false; + } + + llvm::Expected> + io_redirect_or_error = ScriptInterpreterIORedirect::Create( + options.GetEnableIO(), m_debugger, result); + if (!io_redirect_or_error) { + if (result) + result->AppendErrorWithFormatv( + "failed to redirect I/O: {0}\n", + llvm::fmt_consume(io_redirect_or_error.takeError())); + else + llvm::consumeError(io_redirect_or_error.takeError()); + return false; + } + + ScriptInterpreterIORedirect &io_redirect = **io_redirect_or_error; + + if (llvm::Error e = + m_java->ChangeIO(io_redirect.GetOutputFile()->GetStream(), + io_redirect.GetErrorFile()->GetStream())) { + result->AppendErrorWithFormatv("java failed to redirect I/O: {0}\n", + llvm::toString(std::move(e))); + return false; + } + + if (llvm::Error e = m_java->Run(command)) { + result->AppendErrorWithFormatv( + "java failed attempting to evaluate '{0}': {1}\n", command, + llvm::toString(std::move(e))); + return false; + } + + io_redirect.Flush(); + return true; +} + +void ScriptInterpreterJava::ExecuteInterpreterLoop() { + static Timer::Category func_cat(LLVM_PRETTY_FUNCTION); + Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); + + // At the moment, the only time the debugger does not have an input file + // handle is when this is called directly from java, in which case it is + // both dangerous and unnecessary (not to mention confusing) to try to embed + // a running interpreter loop inside the already running java interpreter + // loop, so we won't do it. + if (!m_debugger.GetInputFile().IsValid()) + return; + + IOHandlerSP io_handler_sp(new IOHandlerJavaInterpreter(m_debugger, *this)); + m_debugger.RunIOHandlerAsync(io_handler_sp); +} + +bool ScriptInterpreterJava::LoadScriptingModule( + const char *filename, bool init_session, lldb_private::Status &error, + StructuredData::ObjectSP *module_sp, FileSpec extra_search_dir) { + + FileSystem::Instance().Collect(filename); + if (llvm::Error e = m_java->LoadModule(filename)) { + error.SetErrorStringWithFormatv("java failed to import '{0}': {1}\n", + filename, llvm::toString(std::move(e))); + return false; + } + return true; +} + +void ScriptInterpreterJava::Initialize() { + static llvm::once_flag g_once_flag; + + llvm::call_once(g_once_flag, []() { + PluginManager::RegisterPlugin(GetPluginNameStatic(), + GetPluginDescriptionStatic(), + lldb::eScriptLanguageJava, CreateInstance); + }); +} + +void ScriptInterpreterJava::Terminate() {} + +llvm::Error ScriptInterpreterJava::EnterSession(user_id_t debugger_id) { + if (m_session_is_active) + return llvm::Error::success(); + + const char *fmt_str = + "lldb.debugger = lldb.SBDebugger.FindDebuggerWithID({0}); " + "lldb.target = lldb.debugger:GetSelectedTarget(); " + "lldb.process = lldb.target:GetProcess(); " + "lldb.thread = lldb.process:GetSelectedThread(); " + "lldb.frame = lldb.thread:GetSelectedFrame()"; + return m_java->Run(llvm::formatv(fmt_str, debugger_id).str()); +} + +llvm::Error ScriptInterpreterJava::LeaveSession() { + if (!m_session_is_active) + return llvm::Error::success(); + + m_session_is_active = false; + + llvm::StringRef str = "lldb.debugger = nil; " + "lldb.target = nil; " + "lldb.process = nil; " + "lldb.thread = nil; " + "lldb.frame = nil"; + return m_java->Run(str); +} + +bool ScriptInterpreterJava::BreakpointCallbackFunction( + void *baton, StoppointCallbackContext *context, user_id_t break_id, + user_id_t break_loc_id) { + assert(context); + + ExecutionContext exe_ctx(context->exe_ctx_ref); + Target *target = exe_ctx.GetTargetPtr(); + if (target == nullptr) + return true; + + StackFrameSP stop_frame_sp(exe_ctx.GetFrameSP()); + BreakpointSP breakpoint_sp = target->GetBreakpointByID(break_id); + BreakpointLocationSP bp_loc_sp(breakpoint_sp->FindLocationByID(break_loc_id)); + + Debugger &debugger = target->GetDebugger(); + ScriptInterpreterJava *java_interpreter = static_cast( + debugger.GetScriptInterpreter(true, eScriptLanguageJava)); + Java &java = java_interpreter->GetJava(); + + llvm::Expected BoolOrErr = + java.CallBreakpointCallback(baton, stop_frame_sp, bp_loc_sp); + if (llvm::Error E = BoolOrErr.takeError()) { + debugger.GetErrorStream() << toString(std::move(E)); + return true; + } + + return *BoolOrErr; +} + +Status ScriptInterpreterJava::SetBreakpointCommandCallback( + BreakpointOptions *bp_options, const char *command_body_text) { + Status error; + auto data_up = std::make_unique(); + error = m_java->RegisterBreakpointCallback(data_up.get(), command_body_text); + if (error.Fail()) + return error; + auto baton_sp = + std::make_shared(std::move(data_up)); + bp_options->SetCallback(ScriptInterpreterJava::BreakpointCallbackFunction, + baton_sp); + return error; +} + +lldb::ScriptInterpreterSP +ScriptInterpreterJava::CreateInstance(Debugger &debugger) { + return std::make_shared(debugger); +} + +lldb_private::ConstString ScriptInterpreterJava::GetPluginNameStatic() { + static ConstString g_name("script-java"); + return g_name; +} + +const char *ScriptInterpreterJava::GetPluginDescriptionStatic() { + return "Java script interpreter"; +} + +lldb_private::ConstString ScriptInterpreterJava::GetPluginName() { + return GetPluginNameStatic(); +} + +uint32_t ScriptInterpreterJava::GetPluginVersion() { return 1; } + +Java &ScriptInterpreterJava::GetJava() { return *m_java; } diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.h b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.h new file mode 100644 index 0000000000..3c5e825562 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.h @@ -0,0 +1,81 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +//===-- ScriptInterpreterJava.h ----------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_ScriptInterpreterJava_h_ +#define liblldb_ScriptInterpreterJava_h_ + +#include "lldb/Interpreter/ScriptInterpreter.h" +#include "lldb/Utility/Status.h" +#include "lldb/lldb-enumerations.h" + +namespace lldb_private { +class Java; +class ScriptInterpreterJava : public ScriptInterpreter { +public: + class CommandDataJava : public BreakpointOptions::CommandData { + public: + CommandDataJava() : BreakpointOptions::CommandData() { + interpreter = lldb::eScriptLanguageJava; + } + }; + + ScriptInterpreterJava(Debugger &debugger); + + ~ScriptInterpreterJava() override; + + bool ExecuteOneLine( + llvm::StringRef command, CommandReturnObject *result, + const ExecuteScriptOptions &options = ExecuteScriptOptions()) override; + + void ExecuteInterpreterLoop() override; + + bool LoadScriptingModule(const char *filename, bool init_session, + lldb_private::Status &error, + StructuredData::ObjectSP *module_sp = nullptr, + FileSpec extra_search_dir = {}) override; + + // Static Functions + static void Initialize(); + + static void Terminate(); + + static lldb::ScriptInterpreterSP CreateInstance(Debugger &debugger); + + static lldb_private::ConstString GetPluginNameStatic(); + + static const char *GetPluginDescriptionStatic(); + + static bool BreakpointCallbackFunction(void *baton, + StoppointCallbackContext *context, + lldb::user_id_t break_id, + lldb::user_id_t break_loc_id); + + // PluginInterface protocol + lldb_private::ConstString GetPluginName() override; + + uint32_t GetPluginVersion() override; + + Java &GetJava(); + + llvm::Error EnterSession(lldb::user_id_t debugger_id); + llvm::Error LeaveSession(); + + Status SetBreakpointCommandCallback(BreakpointOptions *bp_options, + const char *command_body_text) override; + +private: + std::unique_ptr m_java; + bool m_session_is_active = false; +}; + +} // namespace lldb_private + +#endif // liblldb_ScriptInterpreterJava_h_ diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/tools/debugserver/source/CMakeLists.txt b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/tools/debugserver/source/CMakeLists.txt new file mode 100644 index 0000000000..cb48b867de --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/llvm/lldb/tools/debugserver/source/CMakeLists.txt @@ -0,0 +1,348 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +include(CheckCXXCompilerFlag) +include(CheckLibraryExists) +include_directories(${CMAKE_CURRENT_BINARY_DIR}/..) +include_directories(${LLDB_SOURCE_DIR}/source) +include_directories(MacOSX/DarwinLog) + +include_directories(MacOSX) + +function(check_certificate identity result_valid) + execute_process( + COMMAND security find-certificate -Z -p -c ${identity} /Library/Keychains/System.keychain + RESULT_VARIABLE exit_code OUTPUT_QUIET ERROR_QUIET) + if(exit_code) + set(${result_valid} FALSE PARENT_SCOPE) + else() + set(${result_valid} TRUE PARENT_SCOPE) + endif() +endfunction() + +function(get_debugserver_codesign_identity result) + string(CONCAT not_found_help + "This will cause failures in the test suite." + "Pass '-DLLDB_USE_SYSTEM_DEBUGSERVER=ON' to use the system one instead." + "See 'Code Signing on macOS' in the documentation." + ) + + # Explicit override: warn if unavailable + if(LLDB_CODESIGN_IDENTITY) + set(${result} ${LLDB_CODESIGN_IDENTITY} PARENT_SCOPE) + check_certificate(${LLDB_CODESIGN_IDENTITY} available) + if(NOT available) + message(WARNING "LLDB_CODESIGN_IDENTITY not found: '${LLDB_CODESIGN_IDENTITY}' ${not_found_help}") + endif() + return() + endif() + + # Development signing identity: use if available + check_certificate(gdbcert available) + if(available) + set(${result} gdbcert PARENT_SCOPE) + return() + endif() + + message(WARNING "Development code sign identity not found: 'gdbcert' ${not_found_help}") + + # LLVM pendant: fallback if available + if(LLVM_CODESIGNING_IDENTITY) + check_certificate(${LLVM_CODESIGNING_IDENTITY} available) + if(available) + set(${result} ${LLVM_CODESIGNING_IDENTITY} PARENT_SCOPE) + return() + endif() + endif() + + # Ad-hoc signing: last resort + set(${result} "-" PARENT_SCOPE) +endfunction() + +# debugserver does not depend on intrinsics_gen, or on llvm. Set the common +# llvm dependencies in the current scope to the empty set. +set(LLVM_COMMON_DEPENDS) + +set(DEBUGSERVER_RESOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../resources") +set(DEBUGSERVER_INFO_PLIST "${DEBUGSERVER_RESOURCE_DIR}/lldb-debugserver-Info.plist") + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -Wl,-sectcreate,__TEXT,__info_plist,${DEBUGSERVER_INFO_PLIST}") + +check_cxx_compiler_flag("-Wno-gnu-zero-variadic-macro-arguments" + CXX_SUPPORTS_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS) +if (CXX_SUPPORTS_NO_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gnu-zero-variadic-macro-arguments") +endif () + +check_cxx_compiler_flag("-Wno-zero-length-array" + CXX_SUPPORTS_NO_ZERO_LENGTH_ARRAY) +if (CXX_SUPPORTS_NO_ZERO_LENGTH_ARRAY) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-zero-length-array") +endif () + +check_cxx_compiler_flag("-Wno-extended-offsetof" + CXX_SUPPORTS_NO_EXTENDED_OFFSETOF) +if (CXX_SUPPORTS_NO_EXTENDED_OFFSETOF) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-extended-offsetof") +endif () + +# When compiling for arm, build debugserver 2 way fat with an arm64 and arm64e +# slice. You can only debug arm64e processes using an arm64e debugserver. +include(CheckCSourceCompiles) +check_c_source_compiles( + " + #include + #if TARGET_CPU_ARM + #if TARGET_OS_OSX + #warning Building for macOS + #else + #error Not building for macOS + #endif + #else + #error Not building for ARM + #endif + int main() { return 0; } + " + BUILDING_FOR_ARM_OSX +) + +if (BUILDING_FOR_ARM_OSX) + set(CMAKE_OSX_ARCHITECTURES "arm64;arm64e") +endif () + +check_library_exists(compression compression_encode_buffer "" HAVE_LIBCOMPRESSION) + +find_library(SECURITY_LIBRARY Security) + +add_subdirectory(MacOSX) + +set(LLDB_CODESIGN_IDENTITY "" CACHE STRING + "Identity override for debugserver; see 'Code Signing on macOS' in the documentation (Darwin only)") + +get_debugserver_codesign_identity(debugserver_codesign_identity) + +# Override locally, so the identity is used for targets created in this scope. +set(LLVM_CODESIGNING_IDENTITY ${debugserver_codesign_identity}) + +# Use the same identity later in the test suite. +set_property(GLOBAL PROPERTY + LLDB_DEBUGSERVER_CODESIGN_IDENTITY ${debugserver_codesign_identity}) + +if(APPLE) + if(APPLE_EMBEDDED) + find_library(BACKBOARD_LIBRARY BackBoardServices + PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + find_library(FRONTBOARD_LIBRARY FrontBoardServices + PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + find_library(SPRINGBOARD_LIBRARY SpringBoardServices + PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + find_library(MOBILESERVICES_LIBRARY MobileCoreServices + PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + find_library(LOCKDOWN_LIBRARY lockdown) + if (APPLE_EMBEDDED STREQUAL "watchos") + find_library(CAROUSELSERVICES_LIBRARY CarouselServices + PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + endif() + + if(NOT BACKBOARD_LIBRARY) + set(SKIP_TEST_DEBUGSERVER ON CACHE BOOL "" FORCE) + endif() + endif() +endif() + +if(HAVE_LIBCOMPRESSION) + set(LIBCOMPRESSION compression) +endif() + +if(LLDB_USE_ENTITLEMENTS) + if(APPLE_EMBEDDED) + set(entitlements ${DEBUGSERVER_RESOURCE_DIR}/debugserver-entitlements.plist) + else() + if (LLDB_USE_PRIVATE_ENTITLEMENTS) + set(entitlements ${DEBUGSERVER_RESOURCE_DIR}/debugserver-macosx-private-entitlements.plist) + else() + set(entitlements ${DEBUGSERVER_RESOURCE_DIR}/debugserver-macosx-entitlements.plist) + endif() + endif() +endif() + +add_definitions(-DLLDB_USE_OS_LOG) + +if(${CMAKE_OSX_SYSROOT} MATCHES ".Internal.sdk$") + message(STATUS "LLDB debugserver energy support is enabled") + add_definitions(-DLLDB_ENERGY) + set(ENERGY_LIBRARY -lpmenergy -lpmsample) +else() + message(STATUS "LLDB debugserver energy support is disabled") +endif() + +set(generated_mach_interfaces + ${CMAKE_CURRENT_BINARY_DIR}/mach_exc.h + ${CMAKE_CURRENT_BINARY_DIR}/mach_excServer.c + ${CMAKE_CURRENT_BINARY_DIR}/mach_excUser.c + ) + +set(MIG_ARCH_FLAGS "") +if (DEFINED MIG_ARCHS) + foreach(ARCH ${MIG_ARCHS}) + set(MIG_ARCH_FLAGS "${MIG_ARCH_FLAGS} -arch ${ARCH}") + endforeach() +endif() +separate_arguments(MIG_ARCH_FLAGS_SEPARTED NATIVE_COMMAND "${MIG_ARCH_FLAGS}") + +add_custom_command(OUTPUT ${generated_mach_interfaces} + VERBATIM COMMAND mig ${MIG_ARCH_FLAGS_SEPARTED} -isysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs + ) + +set(DEBUGSERVER_VERS_GENERATED_FILE ${CMAKE_CURRENT_BINARY_DIR}/debugserver_vers.c) +configure_file(debugserver_vers.c.in + ${DEBUGSERVER_VERS_GENERATED_FILE} @ONLY) + +set(lldbDebugserverCommonSources + DNBArch.cpp + DNBBreakpoint.cpp + DNB.cpp + DNBDataRef.cpp + DNBError.cpp + DNBLog.cpp + DNBRegisterInfo.cpp + DNBThreadResumeActions.cpp + JSON.cpp + StdStringExtractor.cpp + # JSON reader depends on the following LLDB-common files + ${LLDB_SOURCE_DIR}/source/Host/common/StringConvert.cpp + ${LLDB_SOURCE_DIR}/source/Host/common/SocketAddress.cpp + # end JSON reader dependencies + libdebugserver.cpp + PseudoTerminal.cpp + PThreadEvent.cpp + PThreadMutex.cpp + RNBContext.cpp + RNBRemote.cpp + RNBServices.cpp + RNBSocket.cpp + SysSignal.cpp + TTYState.cpp + + MacOSX/CFBundle.cpp + MacOSX/CFString.cpp + MacOSX/Genealogy.cpp + MacOSX/MachException.cpp + MacOSX/MachProcess.mm + MacOSX/MachTask.mm + MacOSX/MachThread.cpp + MacOSX/MachThreadList.cpp + MacOSX/MachVMMemory.cpp + MacOSX/MachVMRegion.cpp + MacOSX/OsLogger.cpp + ${generated_mach_interfaces} + ${DEBUGSERVER_VERS_GENERATED_FILE}) + +# Tell LLVM not to complain about these source files. +set(LLVM_OPTIONAL_SOURCES + ${lldbDebugserverCommonSources} + debugserver.cpp) + +add_lldb_library(lldbDebugserverCommon ${lldbDebugserverCommonSources}) +set_target_properties(lldbDebugserverCommon PROPERTIES FOLDER "lldb libraries/debugserver") + +target_link_libraries(lldbDebugserverCommon + INTERFACE ${COCOA_LIBRARY} + ${CORE_FOUNDATION_LIBRARY} + ${FOUNDATION_LIBRARY} + ${BACKBOARD_LIBRARY} + ${FRONTBOARD_LIBRARY} + ${SPRINGBOARD_LIBRARY} + ${MOBILESERVICES_LIBRARY} + ${LOCKDOWN_LIBRARY} + ${CAROUSELSERVICES_LIBRARY} + lldbDebugserverArchSupport + lldbDebugserverDarwin_DarwinLog + ${FOUNDATION_LIBRARY} + ${SECURITY_LIBRARY} + ${LIBCOMPRESSION} + ${ENERGY_LIBRARY}) +if(HAVE_LIBCOMPRESSION) + set_property(TARGET lldbDebugserverCommon APPEND PROPERTY + COMPILE_DEFINITIONS HAVE_LIBCOMPRESSION) +endif() +add_lldb_tool(debugserver ADD_TO_FRAMEWORK + debugserver.cpp + LINK_LIBS lldbDebugserverCommon + ENTITLEMENTS ${entitlements} +) + +# Workaround for Xcode-specific code-signing behavior: +# The XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY option causes debugserver to be copied +# into the framework first and code-signed afterwards. Sign the copy manually. +if (debugserver_codesign_identity AND LLDB_BUILD_FRAMEWORK AND + CMAKE_GENERATOR STREQUAL "Xcode") + if(NOT CMAKE_CODESIGN_ALLOCATE) + execute_process( + COMMAND xcrun -f codesign_allocate + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE CMAKE_CODESIGN_ALLOCATE + ) + endif() + if(entitlements) + set(pass_entitlements --entitlements ${entitlements}) + endif() + + set(copy_location ${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Versions/${LLDB_FRAMEWORK_VERSION}/Resources/debugserver) + + add_custom_command(TARGET debugserver POST_BUILD + COMMAND ${CMAKE_COMMAND} -E + env CODESIGN_ALLOCATE=${CMAKE_CODESIGN_ALLOCATE} + xcrun codesign -f -s ${debugserver_codesign_identity} + ${pass_entitlements} ${copy_location} + COMMENT "Code-sign debugserver copy in the build-tree framework: ${copy_location}" + ) +endif() + +set_target_properties(debugserver PROPERTIES FOLDER "lldb libraries/debugserver") + +if(APPLE_EMBEDDED) + set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_DEFINITIONS + WITH_LOCKDOWN + WITH_FBS + WITH_BKS + ) + if(CAROUSELSERVICES_LIBRARY) + set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_DEFINITIONS + WITH_CAROUSEL + ) + endif() + set_property(TARGET debugserver APPEND PROPERTY COMPILE_DEFINITIONS + WITH_LOCKDOWN + WITH_FBS + WITH_BKS + ) + set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_FLAGS + -F${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks + ) + + add_lldb_library(lldbDebugserverCommon_NonUI ${lldbDebugserverCommonSources}) + target_link_libraries(lldbDebugserverCommon_NonUI + INTERFACE ${COCOA_LIBRARY} + ${CORE_FOUNDATION_LIBRARY} + ${FOUNDATION_LIBRARY} + lldbDebugserverArchSupport + lldbDebugserverDarwin_DarwinLog + ${SECURITY_LIBRARY} + ${LIBCOMPRESSION}) + if(HAVE_LIBCOMPRESSION) + set_property(TARGET lldbDebugserverCommon_NonUI APPEND PROPERTY + COMPILE_DEFINITIONS HAVE_LIBCOMPRESSION) + endif() + + add_lldb_tool(debugserver-nonui + debugserver.cpp + + LINK_LIBS + lldbDebugserverCommon_NonUI + + ENTITLEMENTS + ${entitlements} + ) +endif() diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/AccessType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/AccessType.java new file mode 100644 index 0000000000..aee30e8fdf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/AccessType.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class AccessType { + public final static AccessType eAccessNone = new AccessType("eAccessNone"); + public final static AccessType eAccessPublic = new AccessType("eAccessPublic"); + public final static AccessType eAccessPrivate = new AccessType("eAccessPrivate"); + public final static AccessType eAccessProtected = new AccessType("eAccessProtected"); + public final static AccessType eAccessPackage = new AccessType("eAccessPackage"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static AccessType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + AccessType.class + " with value " + swigValue); + } + + private AccessType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private AccessType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private AccessType(String swigName, AccessType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static AccessType[] swigValues = { eAccessNone, eAccessPublic, eAccessPrivate, eAccessProtected, eAccessPackage }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BasicType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BasicType.java new file mode 100644 index 0000000000..ffaf1399e7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BasicType.java @@ -0,0 +1,90 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class BasicType { + public final static BasicType eBasicTypeInvalid = new BasicType("eBasicTypeInvalid", lldbJNI.eBasicTypeInvalid_get()); + public final static BasicType eBasicTypeVoid = new BasicType("eBasicTypeVoid", lldbJNI.eBasicTypeVoid_get()); + public final static BasicType eBasicTypeChar = new BasicType("eBasicTypeChar"); + public final static BasicType eBasicTypeSignedChar = new BasicType("eBasicTypeSignedChar"); + public final static BasicType eBasicTypeUnsignedChar = new BasicType("eBasicTypeUnsignedChar"); + public final static BasicType eBasicTypeWChar = new BasicType("eBasicTypeWChar"); + public final static BasicType eBasicTypeSignedWChar = new BasicType("eBasicTypeSignedWChar"); + public final static BasicType eBasicTypeUnsignedWChar = new BasicType("eBasicTypeUnsignedWChar"); + public final static BasicType eBasicTypeChar16 = new BasicType("eBasicTypeChar16"); + public final static BasicType eBasicTypeChar32 = new BasicType("eBasicTypeChar32"); + public final static BasicType eBasicTypeShort = new BasicType("eBasicTypeShort"); + public final static BasicType eBasicTypeUnsignedShort = new BasicType("eBasicTypeUnsignedShort"); + public final static BasicType eBasicTypeInt = new BasicType("eBasicTypeInt"); + public final static BasicType eBasicTypeUnsignedInt = new BasicType("eBasicTypeUnsignedInt"); + public final static BasicType eBasicTypeLong = new BasicType("eBasicTypeLong"); + public final static BasicType eBasicTypeUnsignedLong = new BasicType("eBasicTypeUnsignedLong"); + public final static BasicType eBasicTypeLongLong = new BasicType("eBasicTypeLongLong"); + public final static BasicType eBasicTypeUnsignedLongLong = new BasicType("eBasicTypeUnsignedLongLong"); + public final static BasicType eBasicTypeInt128 = new BasicType("eBasicTypeInt128"); + public final static BasicType eBasicTypeUnsignedInt128 = new BasicType("eBasicTypeUnsignedInt128"); + public final static BasicType eBasicTypeBool = new BasicType("eBasicTypeBool"); + public final static BasicType eBasicTypeHalf = new BasicType("eBasicTypeHalf"); + public final static BasicType eBasicTypeFloat = new BasicType("eBasicTypeFloat"); + public final static BasicType eBasicTypeDouble = new BasicType("eBasicTypeDouble"); + public final static BasicType eBasicTypeLongDouble = new BasicType("eBasicTypeLongDouble"); + public final static BasicType eBasicTypeFloatComplex = new BasicType("eBasicTypeFloatComplex"); + public final static BasicType eBasicTypeDoubleComplex = new BasicType("eBasicTypeDoubleComplex"); + public final static BasicType eBasicTypeLongDoubleComplex = new BasicType("eBasicTypeLongDoubleComplex"); + public final static BasicType eBasicTypeObjCID = new BasicType("eBasicTypeObjCID"); + public final static BasicType eBasicTypeObjCClass = new BasicType("eBasicTypeObjCClass"); + public final static BasicType eBasicTypeObjCSel = new BasicType("eBasicTypeObjCSel"); + public final static BasicType eBasicTypeNullPtr = new BasicType("eBasicTypeNullPtr"); + public final static BasicType eBasicTypeOther = new BasicType("eBasicTypeOther"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static BasicType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + BasicType.class + " with value " + swigValue); + } + + private BasicType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private BasicType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private BasicType(String swigName, BasicType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static BasicType[] swigValues = { eBasicTypeInvalid, eBasicTypeVoid, eBasicTypeChar, eBasicTypeSignedChar, eBasicTypeUnsignedChar, eBasicTypeWChar, eBasicTypeSignedWChar, eBasicTypeUnsignedWChar, eBasicTypeChar16, eBasicTypeChar32, eBasicTypeShort, eBasicTypeUnsignedShort, eBasicTypeInt, eBasicTypeUnsignedInt, eBasicTypeLong, eBasicTypeUnsignedLong, eBasicTypeLongLong, eBasicTypeUnsignedLongLong, eBasicTypeInt128, eBasicTypeUnsignedInt128, eBasicTypeBool, eBasicTypeHalf, eBasicTypeFloat, eBasicTypeDouble, eBasicTypeLongDouble, eBasicTypeFloatComplex, eBasicTypeDoubleComplex, eBasicTypeLongDoubleComplex, eBasicTypeObjCID, eBasicTypeObjCClass, eBasicTypeObjCSel, eBasicTypeNullPtr, eBasicTypeOther }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BreakpointEventType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BreakpointEventType.java new file mode 100644 index 0000000000..25bca71ef6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/BreakpointEventType.java @@ -0,0 +1,70 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class BreakpointEventType { + public final static BreakpointEventType eBreakpointEventTypeInvalidType = new BreakpointEventType("eBreakpointEventTypeInvalidType", lldbJNI.eBreakpointEventTypeInvalidType_get()); + public final static BreakpointEventType eBreakpointEventTypeAdded = new BreakpointEventType("eBreakpointEventTypeAdded", lldbJNI.eBreakpointEventTypeAdded_get()); + public final static BreakpointEventType eBreakpointEventTypeRemoved = new BreakpointEventType("eBreakpointEventTypeRemoved", lldbJNI.eBreakpointEventTypeRemoved_get()); + public final static BreakpointEventType eBreakpointEventTypeLocationsAdded = new BreakpointEventType("eBreakpointEventTypeLocationsAdded", lldbJNI.eBreakpointEventTypeLocationsAdded_get()); + public final static BreakpointEventType eBreakpointEventTypeLocationsRemoved = new BreakpointEventType("eBreakpointEventTypeLocationsRemoved", lldbJNI.eBreakpointEventTypeLocationsRemoved_get()); + public final static BreakpointEventType eBreakpointEventTypeLocationsResolved = new BreakpointEventType("eBreakpointEventTypeLocationsResolved", lldbJNI.eBreakpointEventTypeLocationsResolved_get()); + public final static BreakpointEventType eBreakpointEventTypeEnabled = new BreakpointEventType("eBreakpointEventTypeEnabled", lldbJNI.eBreakpointEventTypeEnabled_get()); + public final static BreakpointEventType eBreakpointEventTypeDisabled = new BreakpointEventType("eBreakpointEventTypeDisabled", lldbJNI.eBreakpointEventTypeDisabled_get()); + public final static BreakpointEventType eBreakpointEventTypeCommandChanged = new BreakpointEventType("eBreakpointEventTypeCommandChanged", lldbJNI.eBreakpointEventTypeCommandChanged_get()); + public final static BreakpointEventType eBreakpointEventTypeConditionChanged = new BreakpointEventType("eBreakpointEventTypeConditionChanged", lldbJNI.eBreakpointEventTypeConditionChanged_get()); + public final static BreakpointEventType eBreakpointEventTypeIgnoreChanged = new BreakpointEventType("eBreakpointEventTypeIgnoreChanged", lldbJNI.eBreakpointEventTypeIgnoreChanged_get()); + public final static BreakpointEventType eBreakpointEventTypeThreadChanged = new BreakpointEventType("eBreakpointEventTypeThreadChanged", lldbJNI.eBreakpointEventTypeThreadChanged_get()); + public final static BreakpointEventType eBreakpointEventTypeAutoContinueChanged = new BreakpointEventType("eBreakpointEventTypeAutoContinueChanged", lldbJNI.eBreakpointEventTypeAutoContinueChanged_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static BreakpointEventType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + BreakpointEventType.class + " with value " + swigValue); + } + + private BreakpointEventType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private BreakpointEventType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private BreakpointEventType(String swigName, BreakpointEventType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static BreakpointEventType[] swigValues = { eBreakpointEventTypeInvalidType, eBreakpointEventTypeAdded, eBreakpointEventTypeRemoved, eBreakpointEventTypeLocationsAdded, eBreakpointEventTypeLocationsRemoved, eBreakpointEventTypeLocationsResolved, eBreakpointEventTypeEnabled, eBreakpointEventTypeDisabled, eBreakpointEventTypeCommandChanged, eBreakpointEventTypeConditionChanged, eBreakpointEventTypeIgnoreChanged, eBreakpointEventTypeThreadChanged, eBreakpointEventTypeAutoContinueChanged }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteArray.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteArray.java new file mode 100644 index 0000000000..6f8c11cf94 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteArray.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package SWIG; + +public class ByteArray extends SWIGTYPE_p_void { + private long swigCPtr; // Minor bodge to work around private variable in parent + private boolean swigCMemOwn; + public ByteArray(long cPtr, boolean cMemoryOwn) { + super(cPtr, cMemoryOwn); + this.swigCPtr = SWIGTYPE_p_void.getCPtr(this); + swigCMemOwn = cMemoryOwn; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_ByteArray(swigCPtr); + } + swigCPtr = 0; + } + } + + public ByteArray(int nelements) { + this(lldbJNI.new_ByteArray(nelements), true); + } + + public byte getitem(int index) { + return lldbJNI.ByteArray_getitem(swigCPtr, this, index); + } + + public void setitem(int index, byte value) { + lldbJNI.ByteArray_setitem(swigCPtr, this, index, value); + } + + /* + public SWIGTYPE_p_jbyte cast() { + long cPtr = lldbJNI.ByteArray_cast(swigCPtr, this); + return (cPtr == 0) ? null : new SWIGTYPE_p_jbyte(cPtr, false); + } + + public static ByteArray frompointer(SWIGTYPE_p_jbyte t) { + long cPtr = lldbJNI.ByteArray_frompointer(SWIGTYPE_p_jbyte.getCPtr(t)); + return (cPtr == 0) ? null : new ByteArray(cPtr, false); + } + */ + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteOrder.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteOrder.java new file mode 100644 index 0000000000..4dbb70875a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ByteOrder.java @@ -0,0 +1,61 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ByteOrder { + public final static ByteOrder eByteOrderInvalid = new ByteOrder("eByteOrderInvalid", lldbJNI.eByteOrderInvalid_get()); + public final static ByteOrder eByteOrderBig = new ByteOrder("eByteOrderBig", lldbJNI.eByteOrderBig_get()); + public final static ByteOrder eByteOrderPDP = new ByteOrder("eByteOrderPDP", lldbJNI.eByteOrderPDP_get()); + public final static ByteOrder eByteOrderLittle = new ByteOrder("eByteOrderLittle", lldbJNI.eByteOrderLittle_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ByteOrder swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ByteOrder.class + " with value " + swigValue); + } + + private ByteOrder(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ByteOrder(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ByteOrder(String swigName, ByteOrder swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ByteOrder[] swigValues = { eByteOrderInvalid, eByteOrderBig, eByteOrderPDP, eByteOrderLittle }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandArgumentType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandArgumentType.java new file mode 100644 index 0000000000..3bfdb43ab7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandArgumentType.java @@ -0,0 +1,146 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class CommandArgumentType { + public final static CommandArgumentType eArgTypeAddress = new CommandArgumentType("eArgTypeAddress", lldbJNI.eArgTypeAddress_get()); + public final static CommandArgumentType eArgTypeAddressOrExpression = new CommandArgumentType("eArgTypeAddressOrExpression"); + public final static CommandArgumentType eArgTypeAliasName = new CommandArgumentType("eArgTypeAliasName"); + public final static CommandArgumentType eArgTypeAliasOptions = new CommandArgumentType("eArgTypeAliasOptions"); + public final static CommandArgumentType eArgTypeArchitecture = new CommandArgumentType("eArgTypeArchitecture"); + public final static CommandArgumentType eArgTypeBoolean = new CommandArgumentType("eArgTypeBoolean"); + public final static CommandArgumentType eArgTypeBreakpointID = new CommandArgumentType("eArgTypeBreakpointID"); + public final static CommandArgumentType eArgTypeBreakpointIDRange = new CommandArgumentType("eArgTypeBreakpointIDRange"); + public final static CommandArgumentType eArgTypeBreakpointName = new CommandArgumentType("eArgTypeBreakpointName"); + public final static CommandArgumentType eArgTypeByteSize = new CommandArgumentType("eArgTypeByteSize"); + public final static CommandArgumentType eArgTypeClassName = new CommandArgumentType("eArgTypeClassName"); + public final static CommandArgumentType eArgTypeCommandName = new CommandArgumentType("eArgTypeCommandName"); + public final static CommandArgumentType eArgTypeCount = new CommandArgumentType("eArgTypeCount"); + public final static CommandArgumentType eArgTypeDescriptionVerbosity = new CommandArgumentType("eArgTypeDescriptionVerbosity"); + public final static CommandArgumentType eArgTypeDirectoryName = new CommandArgumentType("eArgTypeDirectoryName"); + public final static CommandArgumentType eArgTypeDisassemblyFlavor = new CommandArgumentType("eArgTypeDisassemblyFlavor"); + public final static CommandArgumentType eArgTypeEndAddress = new CommandArgumentType("eArgTypeEndAddress"); + public final static CommandArgumentType eArgTypeExpression = new CommandArgumentType("eArgTypeExpression"); + public final static CommandArgumentType eArgTypeExpressionPath = new CommandArgumentType("eArgTypeExpressionPath"); + public final static CommandArgumentType eArgTypeExprFormat = new CommandArgumentType("eArgTypeExprFormat"); + public final static CommandArgumentType eArgTypeFileLineColumn = new CommandArgumentType("eArgTypeFileLineColumn"); + public final static CommandArgumentType eArgTypeFilename = new CommandArgumentType("eArgTypeFilename"); + public final static CommandArgumentType eArgTypeFormat = new CommandArgumentType("eArgTypeFormat"); + public final static CommandArgumentType eArgTypeFrameIndex = new CommandArgumentType("eArgTypeFrameIndex"); + public final static CommandArgumentType eArgTypeFullName = new CommandArgumentType("eArgTypeFullName"); + public final static CommandArgumentType eArgTypeFunctionName = new CommandArgumentType("eArgTypeFunctionName"); + public final static CommandArgumentType eArgTypeFunctionOrSymbol = new CommandArgumentType("eArgTypeFunctionOrSymbol"); + public final static CommandArgumentType eArgTypeGDBFormat = new CommandArgumentType("eArgTypeGDBFormat"); + public final static CommandArgumentType eArgTypeHelpText = new CommandArgumentType("eArgTypeHelpText"); + public final static CommandArgumentType eArgTypeIndex = new CommandArgumentType("eArgTypeIndex"); + public final static CommandArgumentType eArgTypeLanguage = new CommandArgumentType("eArgTypeLanguage"); + public final static CommandArgumentType eArgTypeLineNum = new CommandArgumentType("eArgTypeLineNum"); + public final static CommandArgumentType eArgTypeLogCategory = new CommandArgumentType("eArgTypeLogCategory"); + public final static CommandArgumentType eArgTypeLogChannel = new CommandArgumentType("eArgTypeLogChannel"); + public final static CommandArgumentType eArgTypeMethod = new CommandArgumentType("eArgTypeMethod"); + public final static CommandArgumentType eArgTypeName = new CommandArgumentType("eArgTypeName"); + public final static CommandArgumentType eArgTypeNewPathPrefix = new CommandArgumentType("eArgTypeNewPathPrefix"); + public final static CommandArgumentType eArgTypeNumLines = new CommandArgumentType("eArgTypeNumLines"); + public final static CommandArgumentType eArgTypeNumberPerLine = new CommandArgumentType("eArgTypeNumberPerLine"); + public final static CommandArgumentType eArgTypeOffset = new CommandArgumentType("eArgTypeOffset"); + public final static CommandArgumentType eArgTypeOldPathPrefix = new CommandArgumentType("eArgTypeOldPathPrefix"); + public final static CommandArgumentType eArgTypeOneLiner = new CommandArgumentType("eArgTypeOneLiner"); + public final static CommandArgumentType eArgTypePath = new CommandArgumentType("eArgTypePath"); + public final static CommandArgumentType eArgTypePermissionsNumber = new CommandArgumentType("eArgTypePermissionsNumber"); + public final static CommandArgumentType eArgTypePermissionsString = new CommandArgumentType("eArgTypePermissionsString"); + public final static CommandArgumentType eArgTypePid = new CommandArgumentType("eArgTypePid"); + public final static CommandArgumentType eArgTypePlugin = new CommandArgumentType("eArgTypePlugin"); + public final static CommandArgumentType eArgTypeProcessName = new CommandArgumentType("eArgTypeProcessName"); + public final static CommandArgumentType eArgTypePythonClass = new CommandArgumentType("eArgTypePythonClass"); + public final static CommandArgumentType eArgTypePythonFunction = new CommandArgumentType("eArgTypePythonFunction"); + public final static CommandArgumentType eArgTypePythonScript = new CommandArgumentType("eArgTypePythonScript"); + public final static CommandArgumentType eArgTypeQueueName = new CommandArgumentType("eArgTypeQueueName"); + public final static CommandArgumentType eArgTypeRegisterName = new CommandArgumentType("eArgTypeRegisterName"); + public final static CommandArgumentType eArgTypeRegularExpression = new CommandArgumentType("eArgTypeRegularExpression"); + public final static CommandArgumentType eArgTypeRunArgs = new CommandArgumentType("eArgTypeRunArgs"); + public final static CommandArgumentType eArgTypeRunMode = new CommandArgumentType("eArgTypeRunMode"); + public final static CommandArgumentType eArgTypeScriptedCommandSynchronicity = new CommandArgumentType("eArgTypeScriptedCommandSynchronicity"); + public final static CommandArgumentType eArgTypeScriptLang = new CommandArgumentType("eArgTypeScriptLang"); + public final static CommandArgumentType eArgTypeSearchWord = new CommandArgumentType("eArgTypeSearchWord"); + public final static CommandArgumentType eArgTypeSelector = new CommandArgumentType("eArgTypeSelector"); + public final static CommandArgumentType eArgTypeSettingIndex = new CommandArgumentType("eArgTypeSettingIndex"); + public final static CommandArgumentType eArgTypeSettingKey = new CommandArgumentType("eArgTypeSettingKey"); + public final static CommandArgumentType eArgTypeSettingPrefix = new CommandArgumentType("eArgTypeSettingPrefix"); + public final static CommandArgumentType eArgTypeSettingVariableName = new CommandArgumentType("eArgTypeSettingVariableName"); + public final static CommandArgumentType eArgTypeShlibName = new CommandArgumentType("eArgTypeShlibName"); + public final static CommandArgumentType eArgTypeSourceFile = new CommandArgumentType("eArgTypeSourceFile"); + public final static CommandArgumentType eArgTypeSortOrder = new CommandArgumentType("eArgTypeSortOrder"); + public final static CommandArgumentType eArgTypeStartAddress = new CommandArgumentType("eArgTypeStartAddress"); + public final static CommandArgumentType eArgTypeSummaryString = new CommandArgumentType("eArgTypeSummaryString"); + public final static CommandArgumentType eArgTypeSymbol = new CommandArgumentType("eArgTypeSymbol"); + public final static CommandArgumentType eArgTypeThreadID = new CommandArgumentType("eArgTypeThreadID"); + public final static CommandArgumentType eArgTypeThreadIndex = new CommandArgumentType("eArgTypeThreadIndex"); + public final static CommandArgumentType eArgTypeThreadName = new CommandArgumentType("eArgTypeThreadName"); + public final static CommandArgumentType eArgTypeTypeName = new CommandArgumentType("eArgTypeTypeName"); + public final static CommandArgumentType eArgTypeUnsignedInteger = new CommandArgumentType("eArgTypeUnsignedInteger"); + public final static CommandArgumentType eArgTypeUnixSignal = new CommandArgumentType("eArgTypeUnixSignal"); + public final static CommandArgumentType eArgTypeVarName = new CommandArgumentType("eArgTypeVarName"); + public final static CommandArgumentType eArgTypeValue = new CommandArgumentType("eArgTypeValue"); + public final static CommandArgumentType eArgTypeWidth = new CommandArgumentType("eArgTypeWidth"); + public final static CommandArgumentType eArgTypeNone = new CommandArgumentType("eArgTypeNone"); + public final static CommandArgumentType eArgTypePlatform = new CommandArgumentType("eArgTypePlatform"); + public final static CommandArgumentType eArgTypeWatchpointID = new CommandArgumentType("eArgTypeWatchpointID"); + public final static CommandArgumentType eArgTypeWatchpointIDRange = new CommandArgumentType("eArgTypeWatchpointIDRange"); + public final static CommandArgumentType eArgTypeWatchType = new CommandArgumentType("eArgTypeWatchType"); + public final static CommandArgumentType eArgRawInput = new CommandArgumentType("eArgRawInput"); + public final static CommandArgumentType eArgTypeCommand = new CommandArgumentType("eArgTypeCommand"); + public final static CommandArgumentType eArgTypeColumnNum = new CommandArgumentType("eArgTypeColumnNum"); + public final static CommandArgumentType eArgTypeModuleUUID = new CommandArgumentType("eArgTypeModuleUUID"); + public final static CommandArgumentType eArgTypeLastArg = new CommandArgumentType("eArgTypeLastArg"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static CommandArgumentType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + CommandArgumentType.class + " with value " + swigValue); + } + + private CommandArgumentType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private CommandArgumentType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private CommandArgumentType(String swigName, CommandArgumentType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static CommandArgumentType[] swigValues = { eArgTypeAddress, eArgTypeAddressOrExpression, eArgTypeAliasName, eArgTypeAliasOptions, eArgTypeArchitecture, eArgTypeBoolean, eArgTypeBreakpointID, eArgTypeBreakpointIDRange, eArgTypeBreakpointName, eArgTypeByteSize, eArgTypeClassName, eArgTypeCommandName, eArgTypeCount, eArgTypeDescriptionVerbosity, eArgTypeDirectoryName, eArgTypeDisassemblyFlavor, eArgTypeEndAddress, eArgTypeExpression, eArgTypeExpressionPath, eArgTypeExprFormat, eArgTypeFileLineColumn, eArgTypeFilename, eArgTypeFormat, eArgTypeFrameIndex, eArgTypeFullName, eArgTypeFunctionName, eArgTypeFunctionOrSymbol, eArgTypeGDBFormat, eArgTypeHelpText, eArgTypeIndex, eArgTypeLanguage, eArgTypeLineNum, eArgTypeLogCategory, eArgTypeLogChannel, eArgTypeMethod, eArgTypeName, eArgTypeNewPathPrefix, eArgTypeNumLines, eArgTypeNumberPerLine, eArgTypeOffset, eArgTypeOldPathPrefix, eArgTypeOneLiner, eArgTypePath, eArgTypePermissionsNumber, eArgTypePermissionsString, eArgTypePid, eArgTypePlugin, eArgTypeProcessName, eArgTypePythonClass, eArgTypePythonFunction, eArgTypePythonScript, eArgTypeQueueName, eArgTypeRegisterName, eArgTypeRegularExpression, eArgTypeRunArgs, eArgTypeRunMode, eArgTypeScriptedCommandSynchronicity, eArgTypeScriptLang, eArgTypeSearchWord, eArgTypeSelector, eArgTypeSettingIndex, eArgTypeSettingKey, eArgTypeSettingPrefix, eArgTypeSettingVariableName, eArgTypeShlibName, eArgTypeSourceFile, eArgTypeSortOrder, eArgTypeStartAddress, eArgTypeSummaryString, eArgTypeSymbol, eArgTypeThreadID, eArgTypeThreadIndex, eArgTypeThreadName, eArgTypeTypeName, eArgTypeUnsignedInteger, eArgTypeUnixSignal, eArgTypeVarName, eArgTypeValue, eArgTypeWidth, eArgTypeNone, eArgTypePlatform, eArgTypeWatchpointID, eArgTypeWatchpointIDRange, eArgTypeWatchType, eArgRawInput, eArgTypeCommand, eArgTypeColumnNum, eArgTypeModuleUUID, eArgTypeLastArg }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandFlags.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandFlags.java new file mode 100644 index 0000000000..247648b7ec --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandFlags.java @@ -0,0 +1,66 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class CommandFlags { + public final static CommandFlags eCommandRequiresTarget = new CommandFlags("eCommandRequiresTarget", lldbJNI.eCommandRequiresTarget_get()); + public final static CommandFlags eCommandRequiresProcess = new CommandFlags("eCommandRequiresProcess", lldbJNI.eCommandRequiresProcess_get()); + public final static CommandFlags eCommandRequiresThread = new CommandFlags("eCommandRequiresThread", lldbJNI.eCommandRequiresThread_get()); + public final static CommandFlags eCommandRequiresFrame = new CommandFlags("eCommandRequiresFrame", lldbJNI.eCommandRequiresFrame_get()); + public final static CommandFlags eCommandRequiresRegContext = new CommandFlags("eCommandRequiresRegContext", lldbJNI.eCommandRequiresRegContext_get()); + public final static CommandFlags eCommandTryTargetAPILock = new CommandFlags("eCommandTryTargetAPILock", lldbJNI.eCommandTryTargetAPILock_get()); + public final static CommandFlags eCommandProcessMustBeLaunched = new CommandFlags("eCommandProcessMustBeLaunched", lldbJNI.eCommandProcessMustBeLaunched_get()); + public final static CommandFlags eCommandProcessMustBePaused = new CommandFlags("eCommandProcessMustBePaused", lldbJNI.eCommandProcessMustBePaused_get()); + public final static CommandFlags eCommandProcessMustBeTraced = new CommandFlags("eCommandProcessMustBeTraced", lldbJNI.eCommandProcessMustBeTraced_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static CommandFlags swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + CommandFlags.class + " with value " + swigValue); + } + + private CommandFlags(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private CommandFlags(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private CommandFlags(String swigName, CommandFlags swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static CommandFlags[] swigValues = { eCommandRequiresTarget, eCommandRequiresProcess, eCommandRequiresThread, eCommandRequiresFrame, eCommandRequiresRegContext, eCommandTryTargetAPILock, eCommandProcessMustBeLaunched, eCommandProcessMustBePaused, eCommandProcessMustBeTraced }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandInterpreterResult.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandInterpreterResult.java new file mode 100644 index 0000000000..5fffad83eb --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/CommandInterpreterResult.java @@ -0,0 +1,61 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class CommandInterpreterResult { + public final static CommandInterpreterResult eCommandInterpreterResultSuccess = new CommandInterpreterResult("eCommandInterpreterResultSuccess"); + public final static CommandInterpreterResult eCommandInterpreterResultInferiorCrash = new CommandInterpreterResult("eCommandInterpreterResultInferiorCrash"); + public final static CommandInterpreterResult eCommandInterpreterResultCommandError = new CommandInterpreterResult("eCommandInterpreterResultCommandError"); + public final static CommandInterpreterResult eCommandInterpreterResultQuitRequested = new CommandInterpreterResult("eCommandInterpreterResultQuitRequested"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static CommandInterpreterResult swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + CommandInterpreterResult.class + " with value " + swigValue); + } + + private CommandInterpreterResult(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private CommandInterpreterResult(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private CommandInterpreterResult(String swigName, CommandInterpreterResult swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static CommandInterpreterResult[] swigValues = { eCommandInterpreterResultSuccess, eCommandInterpreterResultInferiorCrash, eCommandInterpreterResultCommandError, eCommandInterpreterResultQuitRequested }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ConnectionStatus.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ConnectionStatus.java new file mode 100644 index 0000000000..384d2e39bf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ConnectionStatus.java @@ -0,0 +1,64 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ConnectionStatus { + public final static ConnectionStatus eConnectionStatusSuccess = new ConnectionStatus("eConnectionStatusSuccess"); + public final static ConnectionStatus eConnectionStatusEndOfFile = new ConnectionStatus("eConnectionStatusEndOfFile"); + public final static ConnectionStatus eConnectionStatusError = new ConnectionStatus("eConnectionStatusError"); + public final static ConnectionStatus eConnectionStatusTimedOut = new ConnectionStatus("eConnectionStatusTimedOut"); + public final static ConnectionStatus eConnectionStatusNoConnection = new ConnectionStatus("eConnectionStatusNoConnection"); + public final static ConnectionStatus eConnectionStatusLostConnection = new ConnectionStatus("eConnectionStatusLostConnection"); + public final static ConnectionStatus eConnectionStatusInterrupted = new ConnectionStatus("eConnectionStatusInterrupted"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ConnectionStatus swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ConnectionStatus.class + " with value " + swigValue); + } + + private ConnectionStatus(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ConnectionStatus(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ConnectionStatus(String swigName, ConnectionStatus swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ConnectionStatus[] swigValues = { eConnectionStatusSuccess, eConnectionStatusEndOfFile, eConnectionStatusError, eConnectionStatusTimedOut, eConnectionStatusNoConnection, eConnectionStatusLostConnection, eConnectionStatusInterrupted }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DescriptionLevel.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DescriptionLevel.java new file mode 100644 index 0000000000..c21cb8d5b6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DescriptionLevel.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class DescriptionLevel { + public final static DescriptionLevel eDescriptionLevelBrief = new DescriptionLevel("eDescriptionLevelBrief", lldbJNI.eDescriptionLevelBrief_get()); + public final static DescriptionLevel eDescriptionLevelFull = new DescriptionLevel("eDescriptionLevelFull"); + public final static DescriptionLevel eDescriptionLevelVerbose = new DescriptionLevel("eDescriptionLevelVerbose"); + public final static DescriptionLevel eDescriptionLevelInitial = new DescriptionLevel("eDescriptionLevelInitial"); + public final static DescriptionLevel kNumDescriptionLevels = new DescriptionLevel("kNumDescriptionLevels"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static DescriptionLevel swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + DescriptionLevel.class + " with value " + swigValue); + } + + private DescriptionLevel(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private DescriptionLevel(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private DescriptionLevel(String swigName, DescriptionLevel swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static DescriptionLevel[] swigValues = { eDescriptionLevelBrief, eDescriptionLevelFull, eDescriptionLevelVerbose, eDescriptionLevelInitial, kNumDescriptionLevels }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DynamicValueType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DynamicValueType.java new file mode 100644 index 0000000000..f71f03700e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/DynamicValueType.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class DynamicValueType { + public final static DynamicValueType eNoDynamicValues = new DynamicValueType("eNoDynamicValues", lldbJNI.eNoDynamicValues_get()); + public final static DynamicValueType eDynamicCanRunTarget = new DynamicValueType("eDynamicCanRunTarget", lldbJNI.eDynamicCanRunTarget_get()); + public final static DynamicValueType eDynamicDontRunTarget = new DynamicValueType("eDynamicDontRunTarget", lldbJNI.eDynamicDontRunTarget_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static DynamicValueType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + DynamicValueType.class + " with value " + swigValue); + } + + private DynamicValueType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private DynamicValueType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private DynamicValueType(String swigName, DynamicValueType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static DynamicValueType[] swigValues = { eNoDynamicValues, eDynamicCanRunTarget, eDynamicDontRunTarget }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/EmulateInstructionOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/EmulateInstructionOptions.java new file mode 100644 index 0000000000..51930624a1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/EmulateInstructionOptions.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class EmulateInstructionOptions { + public final static EmulateInstructionOptions eEmulateInstructionOptionNone = new EmulateInstructionOptions("eEmulateInstructionOptionNone", lldbJNI.eEmulateInstructionOptionNone_get()); + public final static EmulateInstructionOptions eEmulateInstructionOptionAutoAdvancePC = new EmulateInstructionOptions("eEmulateInstructionOptionAutoAdvancePC", lldbJNI.eEmulateInstructionOptionAutoAdvancePC_get()); + public final static EmulateInstructionOptions eEmulateInstructionOptionIgnoreConditions = new EmulateInstructionOptions("eEmulateInstructionOptionIgnoreConditions", lldbJNI.eEmulateInstructionOptionIgnoreConditions_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static EmulateInstructionOptions swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + EmulateInstructionOptions.class + " with value " + swigValue); + } + + private EmulateInstructionOptions(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private EmulateInstructionOptions(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private EmulateInstructionOptions(String swigName, EmulateInstructionOptions swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static EmulateInstructionOptions[] swigValues = { eEmulateInstructionOptionNone, eEmulateInstructionOptionAutoAdvancePC, eEmulateInstructionOptionIgnoreConditions }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Encoding.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Encoding.java new file mode 100644 index 0000000000..4938f23aaa --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Encoding.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class Encoding { + public final static Encoding eEncodingInvalid = new Encoding("eEncodingInvalid", lldbJNI.eEncodingInvalid_get()); + public final static Encoding eEncodingUint = new Encoding("eEncodingUint"); + public final static Encoding eEncodingSint = new Encoding("eEncodingSint"); + public final static Encoding eEncodingIEEE754 = new Encoding("eEncodingIEEE754"); + public final static Encoding eEncodingVector = new Encoding("eEncodingVector"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static Encoding swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + Encoding.class + " with value " + swigValue); + } + + private Encoding(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private Encoding(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private Encoding(String swigName, Encoding swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static Encoding[] swigValues = { eEncodingInvalid, eEncodingUint, eEncodingSint, eEncodingIEEE754, eEncodingVector }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ErrorType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ErrorType.java new file mode 100644 index 0000000000..29f7841330 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ErrorType.java @@ -0,0 +1,63 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ErrorType { + public final static ErrorType eErrorTypeInvalid = new ErrorType("eErrorTypeInvalid"); + public final static ErrorType eErrorTypeGeneric = new ErrorType("eErrorTypeGeneric"); + public final static ErrorType eErrorTypeMachKernel = new ErrorType("eErrorTypeMachKernel"); + public final static ErrorType eErrorTypePOSIX = new ErrorType("eErrorTypePOSIX"); + public final static ErrorType eErrorTypeExpression = new ErrorType("eErrorTypeExpression"); + public final static ErrorType eErrorTypeWin32 = new ErrorType("eErrorTypeWin32"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ErrorType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ErrorType.class + " with value " + swigValue); + } + + private ErrorType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ErrorType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ErrorType(String swigName, ErrorType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ErrorType[] swigValues = { eErrorTypeInvalid, eErrorTypeGeneric, eErrorTypeMachKernel, eErrorTypePOSIX, eErrorTypeExpression, eErrorTypeWin32 }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionEvaluationPhase.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionEvaluationPhase.java new file mode 100644 index 0000000000..adf48fedf4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionEvaluationPhase.java @@ -0,0 +1,61 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ExpressionEvaluationPhase { + public final static ExpressionEvaluationPhase eExpressionEvaluationParse = new ExpressionEvaluationPhase("eExpressionEvaluationParse", lldbJNI.eExpressionEvaluationParse_get()); + public final static ExpressionEvaluationPhase eExpressionEvaluationIRGen = new ExpressionEvaluationPhase("eExpressionEvaluationIRGen"); + public final static ExpressionEvaluationPhase eExpressionEvaluationExecution = new ExpressionEvaluationPhase("eExpressionEvaluationExecution"); + public final static ExpressionEvaluationPhase eExpressionEvaluationComplete = new ExpressionEvaluationPhase("eExpressionEvaluationComplete"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ExpressionEvaluationPhase swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ExpressionEvaluationPhase.class + " with value " + swigValue); + } + + private ExpressionEvaluationPhase(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ExpressionEvaluationPhase(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ExpressionEvaluationPhase(String swigName, ExpressionEvaluationPhase swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ExpressionEvaluationPhase[] swigValues = { eExpressionEvaluationParse, eExpressionEvaluationIRGen, eExpressionEvaluationExecution, eExpressionEvaluationComplete }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionResults.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionResults.java new file mode 100644 index 0000000000..ba680e393f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ExpressionResults.java @@ -0,0 +1,67 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ExpressionResults { + public final static ExpressionResults eExpressionCompleted = new ExpressionResults("eExpressionCompleted", lldbJNI.eExpressionCompleted_get()); + public final static ExpressionResults eExpressionSetupError = new ExpressionResults("eExpressionSetupError"); + public final static ExpressionResults eExpressionParseError = new ExpressionResults("eExpressionParseError"); + public final static ExpressionResults eExpressionDiscarded = new ExpressionResults("eExpressionDiscarded"); + public final static ExpressionResults eExpressionInterrupted = new ExpressionResults("eExpressionInterrupted"); + public final static ExpressionResults eExpressionHitBreakpoint = new ExpressionResults("eExpressionHitBreakpoint"); + public final static ExpressionResults eExpressionTimedOut = new ExpressionResults("eExpressionTimedOut"); + public final static ExpressionResults eExpressionResultUnavailable = new ExpressionResults("eExpressionResultUnavailable"); + public final static ExpressionResults eExpressionStoppedForDebug = new ExpressionResults("eExpressionStoppedForDebug"); + public final static ExpressionResults eExpressionThreadVanished = new ExpressionResults("eExpressionThreadVanished"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ExpressionResults swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ExpressionResults.class + " with value " + swigValue); + } + + private ExpressionResults(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ExpressionResults(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ExpressionResults(String swigName, ExpressionResults swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ExpressionResults[] swigValues = { eExpressionCompleted, eExpressionSetupError, eExpressionParseError, eExpressionDiscarded, eExpressionInterrupted, eExpressionHitBreakpoint, eExpressionTimedOut, eExpressionResultUnavailable, eExpressionStoppedForDebug, eExpressionThreadVanished }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FilePermissions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FilePermissions.java new file mode 100644 index 0000000000..14488826c4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FilePermissions.java @@ -0,0 +1,83 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class FilePermissions { + public final static FilePermissions eFilePermissionsUserRead = new FilePermissions("eFilePermissionsUserRead", lldbJNI.eFilePermissionsUserRead_get()); + public final static FilePermissions eFilePermissionsUserWrite = new FilePermissions("eFilePermissionsUserWrite", lldbJNI.eFilePermissionsUserWrite_get()); + public final static FilePermissions eFilePermissionsUserExecute = new FilePermissions("eFilePermissionsUserExecute", lldbJNI.eFilePermissionsUserExecute_get()); + public final static FilePermissions eFilePermissionsGroupRead = new FilePermissions("eFilePermissionsGroupRead", lldbJNI.eFilePermissionsGroupRead_get()); + public final static FilePermissions eFilePermissionsGroupWrite = new FilePermissions("eFilePermissionsGroupWrite", lldbJNI.eFilePermissionsGroupWrite_get()); + public final static FilePermissions eFilePermissionsGroupExecute = new FilePermissions("eFilePermissionsGroupExecute", lldbJNI.eFilePermissionsGroupExecute_get()); + public final static FilePermissions eFilePermissionsWorldRead = new FilePermissions("eFilePermissionsWorldRead", lldbJNI.eFilePermissionsWorldRead_get()); + public final static FilePermissions eFilePermissionsWorldWrite = new FilePermissions("eFilePermissionsWorldWrite", lldbJNI.eFilePermissionsWorldWrite_get()); + public final static FilePermissions eFilePermissionsWorldExecute = new FilePermissions("eFilePermissionsWorldExecute", lldbJNI.eFilePermissionsWorldExecute_get()); + public final static FilePermissions eFilePermissionsUserRW = new FilePermissions("eFilePermissionsUserRW", lldbJNI.eFilePermissionsUserRW_get()); + public final static FilePermissions eFileFilePermissionsUserRX = new FilePermissions("eFileFilePermissionsUserRX", lldbJNI.eFileFilePermissionsUserRX_get()); + public final static FilePermissions eFilePermissionsUserRWX = new FilePermissions("eFilePermissionsUserRWX", lldbJNI.eFilePermissionsUserRWX_get()); + public final static FilePermissions eFilePermissionsGroupRW = new FilePermissions("eFilePermissionsGroupRW", lldbJNI.eFilePermissionsGroupRW_get()); + public final static FilePermissions eFilePermissionsGroupRX = new FilePermissions("eFilePermissionsGroupRX", lldbJNI.eFilePermissionsGroupRX_get()); + public final static FilePermissions eFilePermissionsGroupRWX = new FilePermissions("eFilePermissionsGroupRWX", lldbJNI.eFilePermissionsGroupRWX_get()); + public final static FilePermissions eFilePermissionsWorldRW = new FilePermissions("eFilePermissionsWorldRW", lldbJNI.eFilePermissionsWorldRW_get()); + public final static FilePermissions eFilePermissionsWorldRX = new FilePermissions("eFilePermissionsWorldRX", lldbJNI.eFilePermissionsWorldRX_get()); + public final static FilePermissions eFilePermissionsWorldRWX = new FilePermissions("eFilePermissionsWorldRWX", lldbJNI.eFilePermissionsWorldRWX_get()); + public final static FilePermissions eFilePermissionsEveryoneR = new FilePermissions("eFilePermissionsEveryoneR", lldbJNI.eFilePermissionsEveryoneR_get()); + public final static FilePermissions eFilePermissionsEveryoneW = new FilePermissions("eFilePermissionsEveryoneW", lldbJNI.eFilePermissionsEveryoneW_get()); + public final static FilePermissions eFilePermissionsEveryoneX = new FilePermissions("eFilePermissionsEveryoneX", lldbJNI.eFilePermissionsEveryoneX_get()); + public final static FilePermissions eFilePermissionsEveryoneRW = new FilePermissions("eFilePermissionsEveryoneRW", lldbJNI.eFilePermissionsEveryoneRW_get()); + public final static FilePermissions eFilePermissionsEveryoneRX = new FilePermissions("eFilePermissionsEveryoneRX", lldbJNI.eFilePermissionsEveryoneRX_get()); + public final static FilePermissions eFilePermissionsEveryoneRWX = new FilePermissions("eFilePermissionsEveryoneRWX", lldbJNI.eFilePermissionsEveryoneRWX_get()); + public final static FilePermissions eFilePermissionsFileDefault = new FilePermissions("eFilePermissionsFileDefault", lldbJNI.eFilePermissionsFileDefault_get()); + public final static FilePermissions eFilePermissionsDirectoryDefault = new FilePermissions("eFilePermissionsDirectoryDefault", lldbJNI.eFilePermissionsDirectoryDefault_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static FilePermissions swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + FilePermissions.class + " with value " + swigValue); + } + + private FilePermissions(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private FilePermissions(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private FilePermissions(String swigName, FilePermissions swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static FilePermissions[] swigValues = { eFilePermissionsUserRead, eFilePermissionsUserWrite, eFilePermissionsUserExecute, eFilePermissionsGroupRead, eFilePermissionsGroupWrite, eFilePermissionsGroupExecute, eFilePermissionsWorldRead, eFilePermissionsWorldWrite, eFilePermissionsWorldExecute, eFilePermissionsUserRW, eFileFilePermissionsUserRX, eFilePermissionsUserRWX, eFilePermissionsGroupRW, eFilePermissionsGroupRX, eFilePermissionsGroupRWX, eFilePermissionsWorldRW, eFilePermissionsWorldRX, eFilePermissionsWorldRWX, eFilePermissionsEveryoneR, eFilePermissionsEveryoneW, eFilePermissionsEveryoneX, eFilePermissionsEveryoneRW, eFilePermissionsEveryoneRX, eFilePermissionsEveryoneRWX, eFilePermissionsFileDefault, eFilePermissionsDirectoryDefault }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Format.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Format.java new file mode 100644 index 0000000000..b832ce434f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Format.java @@ -0,0 +1,100 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class Format { + public final static Format eFormatDefault = new Format("eFormatDefault", lldbJNI.eFormatDefault_get()); + public final static Format eFormatInvalid = new Format("eFormatInvalid", lldbJNI.eFormatInvalid_get()); + public final static Format eFormatBoolean = new Format("eFormatBoolean"); + public final static Format eFormatBinary = new Format("eFormatBinary"); + public final static Format eFormatBytes = new Format("eFormatBytes"); + public final static Format eFormatBytesWithASCII = new Format("eFormatBytesWithASCII"); + public final static Format eFormatChar = new Format("eFormatChar"); + public final static Format eFormatCharPrintable = new Format("eFormatCharPrintable"); + public final static Format eFormatComplex = new Format("eFormatComplex"); + public final static Format eFormatComplexFloat = new Format("eFormatComplexFloat", lldbJNI.eFormatComplexFloat_get()); + public final static Format eFormatCString = new Format("eFormatCString"); + public final static Format eFormatDecimal = new Format("eFormatDecimal"); + public final static Format eFormatEnum = new Format("eFormatEnum"); + public final static Format eFormatHex = new Format("eFormatHex"); + public final static Format eFormatHexUppercase = new Format("eFormatHexUppercase"); + public final static Format eFormatFloat = new Format("eFormatFloat"); + public final static Format eFormatOctal = new Format("eFormatOctal"); + public final static Format eFormatOSType = new Format("eFormatOSType"); + public final static Format eFormatUnicode16 = new Format("eFormatUnicode16"); + public final static Format eFormatUnicode32 = new Format("eFormatUnicode32"); + public final static Format eFormatUnsigned = new Format("eFormatUnsigned"); + public final static Format eFormatPointer = new Format("eFormatPointer"); + public final static Format eFormatVectorOfChar = new Format("eFormatVectorOfChar"); + public final static Format eFormatVectorOfSInt8 = new Format("eFormatVectorOfSInt8"); + public final static Format eFormatVectorOfUInt8 = new Format("eFormatVectorOfUInt8"); + public final static Format eFormatVectorOfSInt16 = new Format("eFormatVectorOfSInt16"); + public final static Format eFormatVectorOfUInt16 = new Format("eFormatVectorOfUInt16"); + public final static Format eFormatVectorOfSInt32 = new Format("eFormatVectorOfSInt32"); + public final static Format eFormatVectorOfUInt32 = new Format("eFormatVectorOfUInt32"); + public final static Format eFormatVectorOfSInt64 = new Format("eFormatVectorOfSInt64"); + public final static Format eFormatVectorOfUInt64 = new Format("eFormatVectorOfUInt64"); + public final static Format eFormatVectorOfFloat16 = new Format("eFormatVectorOfFloat16"); + public final static Format eFormatVectorOfFloat32 = new Format("eFormatVectorOfFloat32"); + public final static Format eFormatVectorOfFloat64 = new Format("eFormatVectorOfFloat64"); + public final static Format eFormatVectorOfUInt128 = new Format("eFormatVectorOfUInt128"); + public final static Format eFormatComplexInteger = new Format("eFormatComplexInteger"); + public final static Format eFormatCharArray = new Format("eFormatCharArray"); + public final static Format eFormatAddressInfo = new Format("eFormatAddressInfo"); + public final static Format eFormatHexFloat = new Format("eFormatHexFloat"); + public final static Format eFormatInstruction = new Format("eFormatInstruction"); + public final static Format eFormatVoid = new Format("eFormatVoid"); + public final static Format eFormatUnicode8 = new Format("eFormatUnicode8"); + public final static Format kNumFormats = new Format("kNumFormats"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static Format swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + Format.class + " with value " + swigValue); + } + + private Format(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private Format(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private Format(String swigName, Format swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static Format[] swigValues = { eFormatDefault, eFormatInvalid, eFormatBoolean, eFormatBinary, eFormatBytes, eFormatBytesWithASCII, eFormatChar, eFormatCharPrintable, eFormatComplex, eFormatComplexFloat, eFormatCString, eFormatDecimal, eFormatEnum, eFormatHex, eFormatHexUppercase, eFormatFloat, eFormatOctal, eFormatOSType, eFormatUnicode16, eFormatUnicode32, eFormatUnsigned, eFormatPointer, eFormatVectorOfChar, eFormatVectorOfSInt8, eFormatVectorOfUInt8, eFormatVectorOfSInt16, eFormatVectorOfUInt16, eFormatVectorOfSInt32, eFormatVectorOfUInt32, eFormatVectorOfSInt64, eFormatVectorOfUInt64, eFormatVectorOfFloat16, eFormatVectorOfFloat32, eFormatVectorOfFloat64, eFormatVectorOfUInt128, eFormatComplexInteger, eFormatCharArray, eFormatAddressInfo, eFormatHexFloat, eFormatInstruction, eFormatVoid, eFormatUnicode8, kNumFormats }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FrameComparison.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FrameComparison.java new file mode 100644 index 0000000000..89e6e3b4ec --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FrameComparison.java @@ -0,0 +1,63 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class FrameComparison { + public final static FrameComparison eFrameCompareInvalid = new FrameComparison("eFrameCompareInvalid"); + public final static FrameComparison eFrameCompareUnknown = new FrameComparison("eFrameCompareUnknown"); + public final static FrameComparison eFrameCompareEqual = new FrameComparison("eFrameCompareEqual"); + public final static FrameComparison eFrameCompareSameParent = new FrameComparison("eFrameCompareSameParent"); + public final static FrameComparison eFrameCompareYounger = new FrameComparison("eFrameCompareYounger"); + public final static FrameComparison eFrameCompareOlder = new FrameComparison("eFrameCompareOlder"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static FrameComparison swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + FrameComparison.class + " with value " + swigValue); + } + + private FrameComparison(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private FrameComparison(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private FrameComparison(String swigName, FrameComparison swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static FrameComparison[] swigValues = { eFrameCompareInvalid, eFrameCompareUnknown, eFrameCompareEqual, eFrameCompareSameParent, eFrameCompareYounger, eFrameCompareOlder }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FunctionNameType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FunctionNameType.java new file mode 100644 index 0000000000..3377af9fde --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/FunctionNameType.java @@ -0,0 +1,64 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class FunctionNameType { + public final static FunctionNameType eFunctionNameTypeNone = new FunctionNameType("eFunctionNameTypeNone", lldbJNI.eFunctionNameTypeNone_get()); + public final static FunctionNameType eFunctionNameTypeAuto = new FunctionNameType("eFunctionNameTypeAuto", lldbJNI.eFunctionNameTypeAuto_get()); + public final static FunctionNameType eFunctionNameTypeFull = new FunctionNameType("eFunctionNameTypeFull", lldbJNI.eFunctionNameTypeFull_get()); + public final static FunctionNameType eFunctionNameTypeBase = new FunctionNameType("eFunctionNameTypeBase", lldbJNI.eFunctionNameTypeBase_get()); + public final static FunctionNameType eFunctionNameTypeMethod = new FunctionNameType("eFunctionNameTypeMethod", lldbJNI.eFunctionNameTypeMethod_get()); + public final static FunctionNameType eFunctionNameTypeSelector = new FunctionNameType("eFunctionNameTypeSelector", lldbJNI.eFunctionNameTypeSelector_get()); + public final static FunctionNameType eFunctionNameTypeAny = new FunctionNameType("eFunctionNameTypeAny", lldbJNI.eFunctionNameTypeAny_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static FunctionNameType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + FunctionNameType.class + " with value " + swigValue); + } + + private FunctionNameType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private FunctionNameType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private FunctionNameType(String swigName, FunctionNameType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static FunctionNameType[] swigValues = { eFunctionNameTypeNone, eFunctionNameTypeAuto, eFunctionNameTypeFull, eFunctionNameTypeBase, eFunctionNameTypeMethod, eFunctionNameTypeSelector, eFunctionNameTypeAny }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/GdbSignal.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/GdbSignal.java new file mode 100644 index 0000000000..6f79b50da6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/GdbSignal.java @@ -0,0 +1,63 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class GdbSignal { + public final static GdbSignal eGdbSignalBadAccess = new GdbSignal("eGdbSignalBadAccess", lldbJNI.eGdbSignalBadAccess_get()); + public final static GdbSignal eGdbSignalBadInstruction = new GdbSignal("eGdbSignalBadInstruction", lldbJNI.eGdbSignalBadInstruction_get()); + public final static GdbSignal eGdbSignalArithmetic = new GdbSignal("eGdbSignalArithmetic", lldbJNI.eGdbSignalArithmetic_get()); + public final static GdbSignal eGdbSignalEmulation = new GdbSignal("eGdbSignalEmulation", lldbJNI.eGdbSignalEmulation_get()); + public final static GdbSignal eGdbSignalSoftware = new GdbSignal("eGdbSignalSoftware", lldbJNI.eGdbSignalSoftware_get()); + public final static GdbSignal eGdbSignalBreakpoint = new GdbSignal("eGdbSignalBreakpoint", lldbJNI.eGdbSignalBreakpoint_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static GdbSignal swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + GdbSignal.class + " with value " + swigValue); + } + + private GdbSignal(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private GdbSignal(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private GdbSignal(String swigName, GdbSignal swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static GdbSignal[] swigValues = { eGdbSignalBadAccess, eGdbSignalBadInstruction, eGdbSignalArithmetic, eGdbSignalEmulation, eGdbSignalSoftware, eGdbSignalBreakpoint }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderAction.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderAction.java new file mode 100644 index 0000000000..7e9f99eae2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderAction.java @@ -0,0 +1,65 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class InputReaderAction { + public final static InputReaderAction eInputReaderActivate = new InputReaderAction("eInputReaderActivate"); + public final static InputReaderAction eInputReaderAsynchronousOutputWritten = new InputReaderAction("eInputReaderAsynchronousOutputWritten"); + public final static InputReaderAction eInputReaderReactivate = new InputReaderAction("eInputReaderReactivate"); + public final static InputReaderAction eInputReaderDeactivate = new InputReaderAction("eInputReaderDeactivate"); + public final static InputReaderAction eInputReaderGotToken = new InputReaderAction("eInputReaderGotToken"); + public final static InputReaderAction eInputReaderInterrupt = new InputReaderAction("eInputReaderInterrupt"); + public final static InputReaderAction eInputReaderEndOfFile = new InputReaderAction("eInputReaderEndOfFile"); + public final static InputReaderAction eInputReaderDone = new InputReaderAction("eInputReaderDone"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static InputReaderAction swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + InputReaderAction.class + " with value " + swigValue); + } + + private InputReaderAction(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private InputReaderAction(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private InputReaderAction(String swigName, InputReaderAction swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static InputReaderAction[] swigValues = { eInputReaderActivate, eInputReaderAsynchronousOutputWritten, eInputReaderReactivate, eInputReaderDeactivate, eInputReaderGotToken, eInputReaderInterrupt, eInputReaderEndOfFile, eInputReaderDone }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderGranularity.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderGranularity.java new file mode 100644 index 0000000000..3b59984ffd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InputReaderGranularity.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class InputReaderGranularity { + public final static InputReaderGranularity eInputReaderGranularityInvalid = new InputReaderGranularity("eInputReaderGranularityInvalid", lldbJNI.eInputReaderGranularityInvalid_get()); + public final static InputReaderGranularity eInputReaderGranularityByte = new InputReaderGranularity("eInputReaderGranularityByte"); + public final static InputReaderGranularity eInputReaderGranularityWord = new InputReaderGranularity("eInputReaderGranularityWord"); + public final static InputReaderGranularity eInputReaderGranularityLine = new InputReaderGranularity("eInputReaderGranularityLine"); + public final static InputReaderGranularity eInputReaderGranularityAll = new InputReaderGranularity("eInputReaderGranularityAll"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static InputReaderGranularity swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + InputReaderGranularity.class + " with value " + swigValue); + } + + private InputReaderGranularity(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private InputReaderGranularity(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private InputReaderGranularity(String swigName, InputReaderGranularity swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static InputReaderGranularity[] swigValues = { eInputReaderGranularityInvalid, eInputReaderGranularityByte, eInputReaderGranularityWord, eInputReaderGranularityLine, eInputReaderGranularityAll }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InstrumentationRuntimeType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InstrumentationRuntimeType.java new file mode 100644 index 0000000000..74a012dc92 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/InstrumentationRuntimeType.java @@ -0,0 +1,63 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class InstrumentationRuntimeType { + public final static InstrumentationRuntimeType eInstrumentationRuntimeTypeAddressSanitizer = new InstrumentationRuntimeType("eInstrumentationRuntimeTypeAddressSanitizer", lldbJNI.eInstrumentationRuntimeTypeAddressSanitizer_get()); + public final static InstrumentationRuntimeType eInstrumentationRuntimeTypeThreadSanitizer = new InstrumentationRuntimeType("eInstrumentationRuntimeTypeThreadSanitizer", lldbJNI.eInstrumentationRuntimeTypeThreadSanitizer_get()); + public final static InstrumentationRuntimeType eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer = new InstrumentationRuntimeType("eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer", lldbJNI.eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer_get()); + public final static InstrumentationRuntimeType eInstrumentationRuntimeTypeMainThreadChecker = new InstrumentationRuntimeType("eInstrumentationRuntimeTypeMainThreadChecker", lldbJNI.eInstrumentationRuntimeTypeMainThreadChecker_get()); + public final static InstrumentationRuntimeType eInstrumentationRuntimeTypeSwiftRuntimeReporting = new InstrumentationRuntimeType("eInstrumentationRuntimeTypeSwiftRuntimeReporting", lldbJNI.eInstrumentationRuntimeTypeSwiftRuntimeReporting_get()); + public final static InstrumentationRuntimeType eNumInstrumentationRuntimeTypes = new InstrumentationRuntimeType("eNumInstrumentationRuntimeTypes"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static InstrumentationRuntimeType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + InstrumentationRuntimeType.class + " with value " + swigValue); + } + + private InstrumentationRuntimeType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private InstrumentationRuntimeType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private InstrumentationRuntimeType(String swigName, InstrumentationRuntimeType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static InstrumentationRuntimeType[] swigValues = { eInstrumentationRuntimeTypeAddressSanitizer, eInstrumentationRuntimeTypeThreadSanitizer, eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer, eInstrumentationRuntimeTypeMainThreadChecker, eInstrumentationRuntimeTypeSwiftRuntimeReporting, eNumInstrumentationRuntimeTypes }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LanguageType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LanguageType.java new file mode 100644 index 0000000000..9df42dbb00 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LanguageType.java @@ -0,0 +1,96 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class LanguageType { + public final static LanguageType eLanguageTypeUnknown = new LanguageType("eLanguageTypeUnknown", lldbJNI.eLanguageTypeUnknown_get()); + public final static LanguageType eLanguageTypeC89 = new LanguageType("eLanguageTypeC89", lldbJNI.eLanguageTypeC89_get()); + public final static LanguageType eLanguageTypeC = new LanguageType("eLanguageTypeC", lldbJNI.eLanguageTypeC_get()); + public final static LanguageType eLanguageTypeAda83 = new LanguageType("eLanguageTypeAda83", lldbJNI.eLanguageTypeAda83_get()); + public final static LanguageType eLanguageTypeC_plus_plus = new LanguageType("eLanguageTypeC_plus_plus", lldbJNI.eLanguageTypeC_plus_plus_get()); + public final static LanguageType eLanguageTypeCobol74 = new LanguageType("eLanguageTypeCobol74", lldbJNI.eLanguageTypeCobol74_get()); + public final static LanguageType eLanguageTypeCobol85 = new LanguageType("eLanguageTypeCobol85", lldbJNI.eLanguageTypeCobol85_get()); + public final static LanguageType eLanguageTypeFortran77 = new LanguageType("eLanguageTypeFortran77", lldbJNI.eLanguageTypeFortran77_get()); + public final static LanguageType eLanguageTypeFortran90 = new LanguageType("eLanguageTypeFortran90", lldbJNI.eLanguageTypeFortran90_get()); + public final static LanguageType eLanguageTypePascal83 = new LanguageType("eLanguageTypePascal83", lldbJNI.eLanguageTypePascal83_get()); + public final static LanguageType eLanguageTypeModula2 = new LanguageType("eLanguageTypeModula2", lldbJNI.eLanguageTypeModula2_get()); + public final static LanguageType eLanguageTypeJava = new LanguageType("eLanguageTypeJava", lldbJNI.eLanguageTypeJava_get()); + public final static LanguageType eLanguageTypeC99 = new LanguageType("eLanguageTypeC99", lldbJNI.eLanguageTypeC99_get()); + public final static LanguageType eLanguageTypeAda95 = new LanguageType("eLanguageTypeAda95", lldbJNI.eLanguageTypeAda95_get()); + public final static LanguageType eLanguageTypeFortran95 = new LanguageType("eLanguageTypeFortran95", lldbJNI.eLanguageTypeFortran95_get()); + public final static LanguageType eLanguageTypePLI = new LanguageType("eLanguageTypePLI", lldbJNI.eLanguageTypePLI_get()); + public final static LanguageType eLanguageTypeObjC = new LanguageType("eLanguageTypeObjC", lldbJNI.eLanguageTypeObjC_get()); + public final static LanguageType eLanguageTypeObjC_plus_plus = new LanguageType("eLanguageTypeObjC_plus_plus", lldbJNI.eLanguageTypeObjC_plus_plus_get()); + public final static LanguageType eLanguageTypeUPC = new LanguageType("eLanguageTypeUPC", lldbJNI.eLanguageTypeUPC_get()); + public final static LanguageType eLanguageTypeD = new LanguageType("eLanguageTypeD", lldbJNI.eLanguageTypeD_get()); + public final static LanguageType eLanguageTypePython = new LanguageType("eLanguageTypePython", lldbJNI.eLanguageTypePython_get()); + public final static LanguageType eLanguageTypeOpenCL = new LanguageType("eLanguageTypeOpenCL", lldbJNI.eLanguageTypeOpenCL_get()); + public final static LanguageType eLanguageTypeGo = new LanguageType("eLanguageTypeGo", lldbJNI.eLanguageTypeGo_get()); + public final static LanguageType eLanguageTypeModula3 = new LanguageType("eLanguageTypeModula3", lldbJNI.eLanguageTypeModula3_get()); + public final static LanguageType eLanguageTypeHaskell = new LanguageType("eLanguageTypeHaskell", lldbJNI.eLanguageTypeHaskell_get()); + public final static LanguageType eLanguageTypeC_plus_plus_03 = new LanguageType("eLanguageTypeC_plus_plus_03", lldbJNI.eLanguageTypeC_plus_plus_03_get()); + public final static LanguageType eLanguageTypeC_plus_plus_11 = new LanguageType("eLanguageTypeC_plus_plus_11", lldbJNI.eLanguageTypeC_plus_plus_11_get()); + public final static LanguageType eLanguageTypeOCaml = new LanguageType("eLanguageTypeOCaml", lldbJNI.eLanguageTypeOCaml_get()); + public final static LanguageType eLanguageTypeRust = new LanguageType("eLanguageTypeRust", lldbJNI.eLanguageTypeRust_get()); + public final static LanguageType eLanguageTypeC11 = new LanguageType("eLanguageTypeC11", lldbJNI.eLanguageTypeC11_get()); + public final static LanguageType eLanguageTypeSwift = new LanguageType("eLanguageTypeSwift", lldbJNI.eLanguageTypeSwift_get()); + public final static LanguageType eLanguageTypeJulia = new LanguageType("eLanguageTypeJulia", lldbJNI.eLanguageTypeJulia_get()); + public final static LanguageType eLanguageTypeDylan = new LanguageType("eLanguageTypeDylan", lldbJNI.eLanguageTypeDylan_get()); + public final static LanguageType eLanguageTypeC_plus_plus_14 = new LanguageType("eLanguageTypeC_plus_plus_14", lldbJNI.eLanguageTypeC_plus_plus_14_get()); + public final static LanguageType eLanguageTypeFortran03 = new LanguageType("eLanguageTypeFortran03", lldbJNI.eLanguageTypeFortran03_get()); + public final static LanguageType eLanguageTypeFortran08 = new LanguageType("eLanguageTypeFortran08", lldbJNI.eLanguageTypeFortran08_get()); + public final static LanguageType eLanguageTypeMipsAssembler = new LanguageType("eLanguageTypeMipsAssembler", lldbJNI.eLanguageTypeMipsAssembler_get()); + public final static LanguageType eLanguageTypeExtRenderScript = new LanguageType("eLanguageTypeExtRenderScript", lldbJNI.eLanguageTypeExtRenderScript_get()); + public final static LanguageType eNumLanguageTypes = new LanguageType("eNumLanguageTypes"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static LanguageType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + LanguageType.class + " with value " + swigValue); + } + + private LanguageType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private LanguageType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private LanguageType(String swigName, LanguageType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static LanguageType[] swigValues = { eLanguageTypeUnknown, eLanguageTypeC89, eLanguageTypeC, eLanguageTypeAda83, eLanguageTypeC_plus_plus, eLanguageTypeCobol74, eLanguageTypeCobol85, eLanguageTypeFortran77, eLanguageTypeFortran90, eLanguageTypePascal83, eLanguageTypeModula2, eLanguageTypeJava, eLanguageTypeC99, eLanguageTypeAda95, eLanguageTypeFortran95, eLanguageTypePLI, eLanguageTypeObjC, eLanguageTypeObjC_plus_plus, eLanguageTypeUPC, eLanguageTypeD, eLanguageTypePython, eLanguageTypeOpenCL, eLanguageTypeGo, eLanguageTypeModula3, eLanguageTypeHaskell, eLanguageTypeC_plus_plus_03, eLanguageTypeC_plus_plus_11, eLanguageTypeOCaml, eLanguageTypeRust, eLanguageTypeC11, eLanguageTypeSwift, eLanguageTypeJulia, eLanguageTypeDylan, eLanguageTypeC_plus_plus_14, eLanguageTypeFortran03, eLanguageTypeFortran08, eLanguageTypeMipsAssembler, eLanguageTypeExtRenderScript, eNumLanguageTypes }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LaunchFlags.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LaunchFlags.java new file mode 100644 index 0000000000..43b34ef7dd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/LaunchFlags.java @@ -0,0 +1,71 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class LaunchFlags { + public final static LaunchFlags eLaunchFlagNone = new LaunchFlags("eLaunchFlagNone", lldbJNI.eLaunchFlagNone_get()); + public final static LaunchFlags eLaunchFlagExec = new LaunchFlags("eLaunchFlagExec", lldbJNI.eLaunchFlagExec_get()); + public final static LaunchFlags eLaunchFlagDebug = new LaunchFlags("eLaunchFlagDebug", lldbJNI.eLaunchFlagDebug_get()); + public final static LaunchFlags eLaunchFlagStopAtEntry = new LaunchFlags("eLaunchFlagStopAtEntry", lldbJNI.eLaunchFlagStopAtEntry_get()); + public final static LaunchFlags eLaunchFlagDisableASLR = new LaunchFlags("eLaunchFlagDisableASLR", lldbJNI.eLaunchFlagDisableASLR_get()); + public final static LaunchFlags eLaunchFlagDisableSTDIO = new LaunchFlags("eLaunchFlagDisableSTDIO", lldbJNI.eLaunchFlagDisableSTDIO_get()); + public final static LaunchFlags eLaunchFlagLaunchInTTY = new LaunchFlags("eLaunchFlagLaunchInTTY", lldbJNI.eLaunchFlagLaunchInTTY_get()); + public final static LaunchFlags eLaunchFlagLaunchInShell = new LaunchFlags("eLaunchFlagLaunchInShell", lldbJNI.eLaunchFlagLaunchInShell_get()); + public final static LaunchFlags eLaunchFlagLaunchInSeparateProcessGroup = new LaunchFlags("eLaunchFlagLaunchInSeparateProcessGroup", lldbJNI.eLaunchFlagLaunchInSeparateProcessGroup_get()); + public final static LaunchFlags eLaunchFlagDontSetExitStatus = new LaunchFlags("eLaunchFlagDontSetExitStatus", lldbJNI.eLaunchFlagDontSetExitStatus_get()); + public final static LaunchFlags eLaunchFlagDetachOnError = new LaunchFlags("eLaunchFlagDetachOnError", lldbJNI.eLaunchFlagDetachOnError_get()); + public final static LaunchFlags eLaunchFlagShellExpandArguments = new LaunchFlags("eLaunchFlagShellExpandArguments", lldbJNI.eLaunchFlagShellExpandArguments_get()); + public final static LaunchFlags eLaunchFlagCloseTTYOnExit = new LaunchFlags("eLaunchFlagCloseTTYOnExit", lldbJNI.eLaunchFlagCloseTTYOnExit_get()); + public final static LaunchFlags eLaunchFlagInheritTCCFromParent = new LaunchFlags("eLaunchFlagInheritTCCFromParent", lldbJNI.eLaunchFlagInheritTCCFromParent_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static LaunchFlags swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + LaunchFlags.class + " with value " + swigValue); + } + + private LaunchFlags(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private LaunchFlags(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private LaunchFlags(String swigName, LaunchFlags swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static LaunchFlags[] swigValues = { eLaunchFlagNone, eLaunchFlagExec, eLaunchFlagDebug, eLaunchFlagStopAtEntry, eLaunchFlagDisableASLR, eLaunchFlagDisableSTDIO, eLaunchFlagLaunchInTTY, eLaunchFlagLaunchInShell, eLaunchFlagLaunchInSeparateProcessGroup, eLaunchFlagDontSetExitStatus, eLaunchFlagDetachOnError, eLaunchFlagShellExpandArguments, eLaunchFlagCloseTTYOnExit, eLaunchFlagInheritTCCFromParent }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MatchType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MatchType.java new file mode 100644 index 0000000000..0997602a93 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MatchType.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class MatchType { + public final static MatchType eMatchTypeNormal = new MatchType("eMatchTypeNormal"); + public final static MatchType eMatchTypeRegex = new MatchType("eMatchTypeRegex"); + public final static MatchType eMatchTypeStartsWith = new MatchType("eMatchTypeStartsWith"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static MatchType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + MatchType.class + " with value " + swigValue); + } + + private MatchType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private MatchType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private MatchType(String swigName, MatchType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static MatchType[] swigValues = { eMatchTypeNormal, eMatchTypeRegex, eMatchTypeStartsWith }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MemberFunctionKind.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MemberFunctionKind.java new file mode 100644 index 0000000000..c2d106211c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/MemberFunctionKind.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class MemberFunctionKind { + public final static MemberFunctionKind eMemberFunctionKindUnknown = new MemberFunctionKind("eMemberFunctionKindUnknown", lldbJNI.eMemberFunctionKindUnknown_get()); + public final static MemberFunctionKind eMemberFunctionKindConstructor = new MemberFunctionKind("eMemberFunctionKindConstructor"); + public final static MemberFunctionKind eMemberFunctionKindDestructor = new MemberFunctionKind("eMemberFunctionKindDestructor"); + public final static MemberFunctionKind eMemberFunctionKindInstanceMethod = new MemberFunctionKind("eMemberFunctionKindInstanceMethod"); + public final static MemberFunctionKind eMemberFunctionKindStaticMethod = new MemberFunctionKind("eMemberFunctionKindStaticMethod"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static MemberFunctionKind swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + MemberFunctionKind.class + " with value " + swigValue); + } + + private MemberFunctionKind(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private MemberFunctionKind(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private MemberFunctionKind(String swigName, MemberFunctionKind swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static MemberFunctionKind[] swigValues = { eMemberFunctionKindUnknown, eMemberFunctionKindConstructor, eMemberFunctionKindDestructor, eMemberFunctionKindInstanceMethod, eMemberFunctionKindStaticMethod }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/PathType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/PathType.java new file mode 100644 index 0000000000..f809c9fb49 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/PathType.java @@ -0,0 +1,66 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class PathType { + public final static PathType ePathTypeLLDBShlibDir = new PathType("ePathTypeLLDBShlibDir"); + public final static PathType ePathTypeSupportExecutableDir = new PathType("ePathTypeSupportExecutableDir"); + public final static PathType ePathTypeHeaderDir = new PathType("ePathTypeHeaderDir"); + public final static PathType ePathTypePythonDir = new PathType("ePathTypePythonDir"); + public final static PathType ePathTypeLLDBSystemPlugins = new PathType("ePathTypeLLDBSystemPlugins"); + public final static PathType ePathTypeLLDBUserPlugins = new PathType("ePathTypeLLDBUserPlugins"); + public final static PathType ePathTypeLLDBTempSystemDir = new PathType("ePathTypeLLDBTempSystemDir"); + public final static PathType ePathTypeGlobalLLDBTempSystemDir = new PathType("ePathTypeGlobalLLDBTempSystemDir"); + public final static PathType ePathTypeClangDir = new PathType("ePathTypeClangDir"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static PathType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + PathType.class + " with value " + swigValue); + } + + private PathType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private PathType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private PathType(String swigName, PathType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static PathType[] swigValues = { ePathTypeLLDBShlibDir, ePathTypeSupportExecutableDir, ePathTypeHeaderDir, ePathTypePythonDir, ePathTypeLLDBSystemPlugins, ePathTypeLLDBUserPlugins, ePathTypeLLDBTempSystemDir, ePathTypeGlobalLLDBTempSystemDir, ePathTypeClangDir }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Permissions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Permissions.java new file mode 100644 index 0000000000..fdcdb96889 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/Permissions.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class Permissions { + public final static Permissions ePermissionsWritable = new Permissions("ePermissionsWritable", lldbJNI.ePermissionsWritable_get()); + public final static Permissions ePermissionsReadable = new Permissions("ePermissionsReadable", lldbJNI.ePermissionsReadable_get()); + public final static Permissions ePermissionsExecutable = new Permissions("ePermissionsExecutable", lldbJNI.ePermissionsExecutable_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static Permissions swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + Permissions.class + " with value " + swigValue); + } + + private Permissions(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private Permissions(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private Permissions(String swigName, Permissions swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static Permissions[] swigValues = { ePermissionsWritable, ePermissionsReadable, ePermissionsExecutable }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueItemKind.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueItemKind.java new file mode 100644 index 0000000000..adacc1db39 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueItemKind.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class QueueItemKind { + public final static QueueItemKind eQueueItemKindUnknown = new QueueItemKind("eQueueItemKindUnknown", lldbJNI.eQueueItemKindUnknown_get()); + public final static QueueItemKind eQueueItemKindFunction = new QueueItemKind("eQueueItemKindFunction"); + public final static QueueItemKind eQueueItemKindBlock = new QueueItemKind("eQueueItemKindBlock"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static QueueItemKind swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + QueueItemKind.class + " with value " + swigValue); + } + + private QueueItemKind(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private QueueItemKind(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private QueueItemKind(String swigName, QueueItemKind swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static QueueItemKind[] swigValues = { eQueueItemKindUnknown, eQueueItemKindFunction, eQueueItemKindBlock }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueKind.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueKind.java new file mode 100644 index 0000000000..1272b0e774 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/QueueKind.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class QueueKind { + public final static QueueKind eQueueKindUnknown = new QueueKind("eQueueKindUnknown", lldbJNI.eQueueKindUnknown_get()); + public final static QueueKind eQueueKindSerial = new QueueKind("eQueueKindSerial"); + public final static QueueKind eQueueKindConcurrent = new QueueKind("eQueueKindConcurrent"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static QueueKind swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + QueueKind.class + " with value " + swigValue); + } + + private QueueKind(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private QueueKind(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private QueueKind(String swigName, QueueKind swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static QueueKind[] swigValues = { eQueueKindUnknown, eQueueKindSerial, eQueueKindConcurrent }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RegisterKind.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RegisterKind.java new file mode 100644 index 0000000000..7756dc0b24 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RegisterKind.java @@ -0,0 +1,63 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class RegisterKind { + public final static RegisterKind eRegisterKindEHFrame = new RegisterKind("eRegisterKindEHFrame", lldbJNI.eRegisterKindEHFrame_get()); + public final static RegisterKind eRegisterKindDWARF = new RegisterKind("eRegisterKindDWARF"); + public final static RegisterKind eRegisterKindGeneric = new RegisterKind("eRegisterKindGeneric"); + public final static RegisterKind eRegisterKindProcessPlugin = new RegisterKind("eRegisterKindProcessPlugin"); + public final static RegisterKind eRegisterKindLLDB = new RegisterKind("eRegisterKindLLDB"); + public final static RegisterKind kNumRegisterKinds = new RegisterKind("kNumRegisterKinds"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static RegisterKind swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + RegisterKind.class + " with value " + swigValue); + } + + private RegisterKind(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private RegisterKind(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private RegisterKind(String swigName, RegisterKind swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static RegisterKind[] swigValues = { eRegisterKindEHFrame, eRegisterKindDWARF, eRegisterKindGeneric, eRegisterKindProcessPlugin, eRegisterKindLLDB, kNumRegisterKinds }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ReturnStatus.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ReturnStatus.java new file mode 100644 index 0000000000..a92eddfc37 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ReturnStatus.java @@ -0,0 +1,65 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ReturnStatus { + public final static ReturnStatus eReturnStatusInvalid = new ReturnStatus("eReturnStatusInvalid"); + public final static ReturnStatus eReturnStatusSuccessFinishNoResult = new ReturnStatus("eReturnStatusSuccessFinishNoResult"); + public final static ReturnStatus eReturnStatusSuccessFinishResult = new ReturnStatus("eReturnStatusSuccessFinishResult"); + public final static ReturnStatus eReturnStatusSuccessContinuingNoResult = new ReturnStatus("eReturnStatusSuccessContinuingNoResult"); + public final static ReturnStatus eReturnStatusSuccessContinuingResult = new ReturnStatus("eReturnStatusSuccessContinuingResult"); + public final static ReturnStatus eReturnStatusStarted = new ReturnStatus("eReturnStatusStarted"); + public final static ReturnStatus eReturnStatusFailed = new ReturnStatus("eReturnStatusFailed"); + public final static ReturnStatus eReturnStatusQuit = new ReturnStatus("eReturnStatusQuit"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ReturnStatus swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ReturnStatus.class + " with value " + swigValue); + } + + private ReturnStatus(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ReturnStatus(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ReturnStatus(String swigName, ReturnStatus swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ReturnStatus[] swigValues = { eReturnStatusInvalid, eReturnStatusSuccessFinishNoResult, eReturnStatusSuccessFinishResult, eReturnStatusSuccessContinuingNoResult, eReturnStatusSuccessContinuingResult, eReturnStatusStarted, eReturnStatusFailed, eReturnStatusQuit }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RunMode.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RunMode.java new file mode 100644 index 0000000000..b3901e7ddc --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/RunMode.java @@ -0,0 +1,60 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class RunMode { + public final static RunMode eOnlyThisThread = new RunMode("eOnlyThisThread"); + public final static RunMode eAllThreads = new RunMode("eAllThreads"); + public final static RunMode eOnlyDuringStepping = new RunMode("eOnlyDuringStepping"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static RunMode swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + RunMode.class + " with value " + swigValue); + } + + private RunMode(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private RunMode(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private RunMode(String swigName, RunMode swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static RunMode[] swigValues = { eOnlyThisThread, eAllThreads, eOnlyDuringStepping }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAddress.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAddress.java new file mode 100644 index 0000000000..821551d6a3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAddress.java @@ -0,0 +1,132 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBAddress { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBAddress(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBAddress obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBAddress(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBAddress() { + this(lldbJNI.new_SBAddress__SWIG_0(), true); + } + + public SBAddress(SBAddress rhs) { + this(lldbJNI.new_SBAddress__SWIG_1(SBAddress.getCPtr(rhs), rhs), true); + } + + public SBAddress(SBSection section, java.math.BigInteger offset) { + this(lldbJNI.new_SBAddress__SWIG_2(SBSection.getCPtr(section), section, offset), true); + } + + public SBAddress(java.math.BigInteger load_addr, SBTarget target) { + this(lldbJNI.new_SBAddress__SWIG_3(load_addr, SBTarget.getCPtr(target), target), true); + } + + public boolean IsValid() { + return lldbJNI.SBAddress_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBAddress_Clear(swigCPtr, this); + } + + public java.math.BigInteger GetFileAddress() { + return lldbJNI.SBAddress_GetFileAddress(swigCPtr, this); + } + + public java.math.BigInteger GetLoadAddress(SBTarget target) { + return lldbJNI.SBAddress_GetLoadAddress(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public void SetLoadAddress(java.math.BigInteger load_addr, SBTarget target) { + lldbJNI.SBAddress_SetLoadAddress(swigCPtr, this, load_addr, SBTarget.getCPtr(target), target); + } + + public boolean OffsetAddress(java.math.BigInteger offset) { + return lldbJNI.SBAddress_OffsetAddress(swigCPtr, this, offset); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBAddress_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public SBSection GetSection() { + return new SBSection(lldbJNI.SBAddress_GetSection(swigCPtr, this), true); + } + + public java.math.BigInteger GetOffset() { + return lldbJNI.SBAddress_GetOffset(swigCPtr, this); + } + + public void SetAddress(SBSection section, java.math.BigInteger offset) { + lldbJNI.SBAddress_SetAddress(swigCPtr, this, SBSection.getCPtr(section), section, offset); + } + + public SBSymbolContext GetSymbolContext(long resolve_scope) { + return new SBSymbolContext(lldbJNI.SBAddress_GetSymbolContext(swigCPtr, this, resolve_scope), true); + } + + public SBModule GetModule() { + return new SBModule(lldbJNI.SBAddress_GetModule(swigCPtr, this), true); + } + + public SBCompileUnit GetCompileUnit() { + return new SBCompileUnit(lldbJNI.SBAddress_GetCompileUnit(swigCPtr, this), true); + } + + public SBFunction GetFunction() { + return new SBFunction(lldbJNI.SBAddress_GetFunction(swigCPtr, this), true); + } + + public SBBlock GetBlock() { + return new SBBlock(lldbJNI.SBAddress_GetBlock(swigCPtr, this), true); + } + + public SBSymbol GetSymbol() { + return new SBSymbol(lldbJNI.SBAddress_GetSymbol(swigCPtr, this), true); + } + + public SBLineEntry GetLineEntry() { + return new SBLineEntry(lldbJNI.SBAddress_GetLineEntry(swigCPtr, this), true); + } + + public String __str__() { + return lldbJNI.SBAddress___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAttachInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAttachInfo.java new file mode 100644 index 0000000000..6a6602cc03 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBAttachInfo.java @@ -0,0 +1,184 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBAttachInfo { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBAttachInfo(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBAttachInfo obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBAttachInfo(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBAttachInfo() { + this(lldbJNI.new_SBAttachInfo__SWIG_0(), true); + } + + public SBAttachInfo(java.math.BigInteger pid) { + this(lldbJNI.new_SBAttachInfo__SWIG_1(pid), true); + } + + public SBAttachInfo(String path, boolean wait_for) { + this(lldbJNI.new_SBAttachInfo__SWIG_2(path, wait_for), true); + } + + public SBAttachInfo(String path, boolean wait_for, boolean async) { + this(lldbJNI.new_SBAttachInfo__SWIG_3(path, wait_for, async), true); + } + + public SBAttachInfo(SBAttachInfo rhs) { + this(lldbJNI.new_SBAttachInfo__SWIG_4(SBAttachInfo.getCPtr(rhs), rhs), true); + } + + public java.math.BigInteger GetProcessID() { + return lldbJNI.SBAttachInfo_GetProcessID(swigCPtr, this); + } + + public void SetProcessID(java.math.BigInteger pid) { + lldbJNI.SBAttachInfo_SetProcessID(swigCPtr, this, pid); + } + + public void SetExecutable(String path) { + lldbJNI.SBAttachInfo_SetExecutable__SWIG_0(swigCPtr, this, path); + } + + public void SetExecutable(SBFileSpec exe_file) { + lldbJNI.SBAttachInfo_SetExecutable__SWIG_1(swigCPtr, this, SBFileSpec.getCPtr(exe_file), exe_file); + } + + public boolean GetWaitForLaunch() { + return lldbJNI.SBAttachInfo_GetWaitForLaunch(swigCPtr, this); + } + + public void SetWaitForLaunch(boolean b) { + lldbJNI.SBAttachInfo_SetWaitForLaunch__SWIG_0(swigCPtr, this, b); + } + + public void SetWaitForLaunch(boolean b, boolean async) { + lldbJNI.SBAttachInfo_SetWaitForLaunch__SWIG_1(swigCPtr, this, b, async); + } + + public boolean GetIgnoreExisting() { + return lldbJNI.SBAttachInfo_GetIgnoreExisting(swigCPtr, this); + } + + public void SetIgnoreExisting(boolean b) { + lldbJNI.SBAttachInfo_SetIgnoreExisting(swigCPtr, this, b); + } + + public long GetResumeCount() { + return lldbJNI.SBAttachInfo_GetResumeCount(swigCPtr, this); + } + + public void SetResumeCount(long c) { + lldbJNI.SBAttachInfo_SetResumeCount(swigCPtr, this, c); + } + + public String GetProcessPluginName() { + return lldbJNI.SBAttachInfo_GetProcessPluginName(swigCPtr, this); + } + + public void SetProcessPluginName(String plugin_name) { + lldbJNI.SBAttachInfo_SetProcessPluginName(swigCPtr, this, plugin_name); + } + + public long GetUserID() { + return lldbJNI.SBAttachInfo_GetUserID(swigCPtr, this); + } + + public long GetGroupID() { + return lldbJNI.SBAttachInfo_GetGroupID(swigCPtr, this); + } + + public boolean UserIDIsValid() { + return lldbJNI.SBAttachInfo_UserIDIsValid(swigCPtr, this); + } + + public boolean GroupIDIsValid() { + return lldbJNI.SBAttachInfo_GroupIDIsValid(swigCPtr, this); + } + + public void SetUserID(long uid) { + lldbJNI.SBAttachInfo_SetUserID(swigCPtr, this, uid); + } + + public void SetGroupID(long gid) { + lldbJNI.SBAttachInfo_SetGroupID(swigCPtr, this, gid); + } + + public long GetEffectiveUserID() { + return lldbJNI.SBAttachInfo_GetEffectiveUserID(swigCPtr, this); + } + + public long GetEffectiveGroupID() { + return lldbJNI.SBAttachInfo_GetEffectiveGroupID(swigCPtr, this); + } + + public boolean EffectiveUserIDIsValid() { + return lldbJNI.SBAttachInfo_EffectiveUserIDIsValid(swigCPtr, this); + } + + public boolean EffectiveGroupIDIsValid() { + return lldbJNI.SBAttachInfo_EffectiveGroupIDIsValid(swigCPtr, this); + } + + public void SetEffectiveUserID(long uid) { + lldbJNI.SBAttachInfo_SetEffectiveUserID(swigCPtr, this, uid); + } + + public void SetEffectiveGroupID(long gid) { + lldbJNI.SBAttachInfo_SetEffectiveGroupID(swigCPtr, this, gid); + } + + public java.math.BigInteger GetParentProcessID() { + return lldbJNI.SBAttachInfo_GetParentProcessID(swigCPtr, this); + } + + public void SetParentProcessID(java.math.BigInteger pid) { + lldbJNI.SBAttachInfo_SetParentProcessID(swigCPtr, this, pid); + } + + public boolean ParentProcessIDIsValid() { + return lldbJNI.SBAttachInfo_ParentProcessIDIsValid(swigCPtr, this); + } + + public SBListener GetListener() { + return new SBListener(lldbJNI.SBAttachInfo_GetListener(swigCPtr, this), true); + } + + public void SetListener(SBListener listener) { + lldbJNI.SBAttachInfo_SetListener(swigCPtr, this, SBListener.getCPtr(listener), listener); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBlock.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBlock.java new file mode 100644 index 0000000000..1e5fe97790 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBlock.java @@ -0,0 +1,124 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBBlock { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBBlock(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBBlock obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBBlock(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBBlock() { + this(lldbJNI.new_SBBlock__SWIG_0(), true); + } + + public SBBlock(SBBlock rhs) { + this(lldbJNI.new_SBBlock__SWIG_1(SBBlock.getCPtr(rhs), rhs), true); + } + + public boolean IsInlined() { + return lldbJNI.SBBlock_IsInlined(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBBlock_IsValid(swigCPtr, this); + } + + public String GetInlinedName() { + return lldbJNI.SBBlock_GetInlinedName(swigCPtr, this); + } + + public SBFileSpec GetInlinedCallSiteFile() { + return new SBFileSpec(lldbJNI.SBBlock_GetInlinedCallSiteFile(swigCPtr, this), true); + } + + public long GetInlinedCallSiteLine() { + return lldbJNI.SBBlock_GetInlinedCallSiteLine(swigCPtr, this); + } + + public long GetInlinedCallSiteColumn() { + return lldbJNI.SBBlock_GetInlinedCallSiteColumn(swigCPtr, this); + } + + public SBBlock GetParent() { + return new SBBlock(lldbJNI.SBBlock_GetParent(swigCPtr, this), true); + } + + public SBBlock GetContainingInlinedBlock() { + return new SBBlock(lldbJNI.SBBlock_GetContainingInlinedBlock(swigCPtr, this), true); + } + + public SBBlock GetSibling() { + return new SBBlock(lldbJNI.SBBlock_GetSibling(swigCPtr, this), true); + } + + public SBBlock GetFirstChild() { + return new SBBlock(lldbJNI.SBBlock_GetFirstChild(swigCPtr, this), true); + } + + public long GetNumRanges() { + return lldbJNI.SBBlock_GetNumRanges(swigCPtr, this); + } + + public SBAddress GetRangeStartAddress(long idx) { + return new SBAddress(lldbJNI.SBBlock_GetRangeStartAddress(swigCPtr, this, idx), true); + } + + public SBAddress GetRangeEndAddress(long idx) { + return new SBAddress(lldbJNI.SBBlock_GetRangeEndAddress(swigCPtr, this, idx), true); + } + + public long GetRangeIndexForBlockAddress(SBAddress block_addr) { + return lldbJNI.SBBlock_GetRangeIndexForBlockAddress(swigCPtr, this, SBAddress.getCPtr(block_addr), block_addr); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBBlock_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public SBValueList GetVariables(SBFrame frame, boolean arguments, boolean locals, boolean statics, DynamicValueType use_dynamic) { + return new SBValueList(lldbJNI.SBBlock_GetVariables__SWIG_0(swigCPtr, this, SBFrame.getCPtr(frame), frame, arguments, locals, statics, use_dynamic.swigValue()), true); + } + + public SBValueList GetVariables(SBTarget target, boolean arguments, boolean locals, boolean statics) { + return new SBValueList(lldbJNI.SBBlock_GetVariables__SWIG_1(swigCPtr, this, SBTarget.getCPtr(target), target, arguments, locals, statics), true); + } + + public String __str__() { + return lldbJNI.SBBlock___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpoint.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpoint.java new file mode 100644 index 0000000000..eb0d7d38bd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpoint.java @@ -0,0 +1,256 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBBreakpoint { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBBreakpoint(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBBreakpoint obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBBreakpoint(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBBreakpoint() { + this(lldbJNI.new_SBBreakpoint__SWIG_0(), true); + } + + public SBBreakpoint(SBBreakpoint rhs) { + this(lldbJNI.new_SBBreakpoint__SWIG_1(SBBreakpoint.getCPtr(rhs), rhs), true); + } + + public int GetID() { + return lldbJNI.SBBreakpoint_GetID(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBBreakpoint_IsValid(swigCPtr, this); + } + + public void ClearAllBreakpointSites() { + lldbJNI.SBBreakpoint_ClearAllBreakpointSites(swigCPtr, this); + } + + public SBTarget GetTarget() { + return new SBTarget(lldbJNI.SBBreakpoint_GetTarget(swigCPtr, this), true); + } + + public SBBreakpointLocation FindLocationByAddress(java.math.BigInteger vm_addr) { + return new SBBreakpointLocation(lldbJNI.SBBreakpoint_FindLocationByAddress(swigCPtr, this, vm_addr), true); + } + + public int FindLocationIDByAddress(java.math.BigInteger vm_addr) { + return lldbJNI.SBBreakpoint_FindLocationIDByAddress(swigCPtr, this, vm_addr); + } + + public SBBreakpointLocation FindLocationByID(int bp_loc_id) { + return new SBBreakpointLocation(lldbJNI.SBBreakpoint_FindLocationByID(swigCPtr, this, bp_loc_id), true); + } + + public SBBreakpointLocation GetLocationAtIndex(long index) { + return new SBBreakpointLocation(lldbJNI.SBBreakpoint_GetLocationAtIndex(swigCPtr, this, index), true); + } + + public void SetEnabled(boolean enable) { + lldbJNI.SBBreakpoint_SetEnabled(swigCPtr, this, enable); + } + + public boolean IsEnabled() { + return lldbJNI.SBBreakpoint_IsEnabled(swigCPtr, this); + } + + public void SetOneShot(boolean one_shot) { + lldbJNI.SBBreakpoint_SetOneShot(swigCPtr, this, one_shot); + } + + public boolean IsOneShot() { + return lldbJNI.SBBreakpoint_IsOneShot(swigCPtr, this); + } + + public boolean IsInternal() { + return lldbJNI.SBBreakpoint_IsInternal(swigCPtr, this); + } + + public long GetHitCount() { + return lldbJNI.SBBreakpoint_GetHitCount(swigCPtr, this); + } + + public void SetIgnoreCount(long count) { + lldbJNI.SBBreakpoint_SetIgnoreCount(swigCPtr, this, count); + } + + public long GetIgnoreCount() { + return lldbJNI.SBBreakpoint_GetIgnoreCount(swigCPtr, this); + } + + public void SetCondition(String condition) { + lldbJNI.SBBreakpoint_SetCondition(swigCPtr, this, condition); + } + + public String GetCondition() { + return lldbJNI.SBBreakpoint_GetCondition(swigCPtr, this); + } + + public void SetAutoContinue(boolean auto_continue) { + lldbJNI.SBBreakpoint_SetAutoContinue(swigCPtr, this, auto_continue); + } + + public boolean GetAutoContinue() { + return lldbJNI.SBBreakpoint_GetAutoContinue(swigCPtr, this); + } + + public void SetThreadID(java.math.BigInteger sb_thread_id) { + lldbJNI.SBBreakpoint_SetThreadID(swigCPtr, this, sb_thread_id); + } + + public java.math.BigInteger GetThreadID() { + return lldbJNI.SBBreakpoint_GetThreadID(swigCPtr, this); + } + + public void SetThreadIndex(long index) { + lldbJNI.SBBreakpoint_SetThreadIndex(swigCPtr, this, index); + } + + public long GetThreadIndex() { + return lldbJNI.SBBreakpoint_GetThreadIndex(swigCPtr, this); + } + + public void SetThreadName(String thread_name) { + lldbJNI.SBBreakpoint_SetThreadName(swigCPtr, this, thread_name); + } + + public String GetThreadName() { + return lldbJNI.SBBreakpoint_GetThreadName(swigCPtr, this); + } + + public void SetQueueName(String queue_name) { + lldbJNI.SBBreakpoint_SetQueueName(swigCPtr, this, queue_name); + } + + public String GetQueueName() { + return lldbJNI.SBBreakpoint_GetQueueName(swigCPtr, this); + } + + public void SetScriptCallbackFunction(String callback_function_name) { + lldbJNI.SBBreakpoint_SetScriptCallbackFunction__SWIG_0(swigCPtr, this, callback_function_name); + } + + public SBError SetScriptCallbackFunction(String callback_function_name, SBStructuredData extra_args) { + return new SBError(lldbJNI.SBBreakpoint_SetScriptCallbackFunction__SWIG_1(swigCPtr, this, callback_function_name, SBStructuredData.getCPtr(extra_args), extra_args), true); + } + + public SBError SetScriptCallbackBody(String script_body_text) { + return new SBError(lldbJNI.SBBreakpoint_SetScriptCallbackBody(swigCPtr, this, script_body_text), true); + } + + public void SetCommandLineCommands(SBStringList commands) { + lldbJNI.SBBreakpoint_SetCommandLineCommands(swigCPtr, this, SBStringList.getCPtr(commands), commands); + } + + public boolean GetCommandLineCommands(SBStringList commands) { + return lldbJNI.SBBreakpoint_GetCommandLineCommands(swigCPtr, this, SBStringList.getCPtr(commands), commands); + } + + public boolean AddName(String new_name) { + return lldbJNI.SBBreakpoint_AddName(swigCPtr, this, new_name); + } + + public SBError AddNameWithErrorHandling(String new_name) { + return new SBError(lldbJNI.SBBreakpoint_AddNameWithErrorHandling(swigCPtr, this, new_name), true); + } + + public void RemoveName(String name_to_remove) { + lldbJNI.SBBreakpoint_RemoveName(swigCPtr, this, name_to_remove); + } + + public boolean MatchesName(String name) { + return lldbJNI.SBBreakpoint_MatchesName(swigCPtr, this, name); + } + + public void GetNames(SBStringList names) { + lldbJNI.SBBreakpoint_GetNames(swigCPtr, this, SBStringList.getCPtr(names), names); + } + + public long GetNumResolvedLocations() { + return lldbJNI.SBBreakpoint_GetNumResolvedLocations(swigCPtr, this); + } + + public long GetNumLocations() { + return lldbJNI.SBBreakpoint_GetNumLocations(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBBreakpoint_GetDescription__SWIG_0(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public boolean GetDescription(SBStream description, boolean include_locations) { + return lldbJNI.SBBreakpoint_GetDescription__SWIG_1(swigCPtr, this, SBStream.getCPtr(description), description, include_locations); + } + + public SBError AddLocation(SBAddress address) { + return new SBError(lldbJNI.SBBreakpoint_AddLocation(swigCPtr, this, SBAddress.getCPtr(address), address), true); + } + + public SBStructuredData SerializeToStructuredData() { + return new SBStructuredData(lldbJNI.SBBreakpoint_SerializeToStructuredData(swigCPtr, this), true); + } + + public static boolean EventIsBreakpointEvent(SBEvent event) { + return lldbJNI.SBBreakpoint_EventIsBreakpointEvent(SBEvent.getCPtr(event), event); + } + + public static BreakpointEventType GetBreakpointEventTypeFromEvent(SBEvent event) { + return BreakpointEventType.swigToEnum(lldbJNI.SBBreakpoint_GetBreakpointEventTypeFromEvent(SBEvent.getCPtr(event), event)); + } + + public static SBBreakpoint GetBreakpointFromEvent(SBEvent event) { + return new SBBreakpoint(lldbJNI.SBBreakpoint_GetBreakpointFromEvent(SBEvent.getCPtr(event), event), true); + } + + public static SBBreakpointLocation GetBreakpointLocationAtIndexFromEvent(SBEvent event, long loc_idx) { + return new SBBreakpointLocation(lldbJNI.SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(SBEvent.getCPtr(event), event, loc_idx), true); + } + + public static long GetNumBreakpointLocationsFromEvent(SBEvent event_sp) { + return lldbJNI.SBBreakpoint_GetNumBreakpointLocationsFromEvent(SBEvent.getCPtr(event_sp), event_sp); + } + + public boolean IsHardware() { + return lldbJNI.SBBreakpoint_IsHardware(swigCPtr, this); + } + + public String __str__() { + return lldbJNI.SBBreakpoint___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointList.java new file mode 100644 index 0000000000..f4542d6b1b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointList.java @@ -0,0 +1,76 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBBreakpointList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBBreakpointList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBBreakpointList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBBreakpointList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBBreakpointList(SBTarget target) { + this(lldbJNI.new_SBBreakpointList(SBTarget.getCPtr(target), target), true); + } + + public long GetSize() { + return lldbJNI.SBBreakpointList_GetSize(swigCPtr, this); + } + + public SBBreakpoint GetBreakpointAtIndex(long idx) { + return new SBBreakpoint(lldbJNI.SBBreakpointList_GetBreakpointAtIndex(swigCPtr, this, idx), true); + } + + public SBBreakpoint FindBreakpointByID(int arg0) { + return new SBBreakpoint(lldbJNI.SBBreakpointList_FindBreakpointByID(swigCPtr, this, arg0), true); + } + + public void Append(SBBreakpoint sb_bkpt) { + lldbJNI.SBBreakpointList_Append(swigCPtr, this, SBBreakpoint.getCPtr(sb_bkpt), sb_bkpt); + } + + public boolean AppendIfUnique(SBBreakpoint sb_bkpt) { + return lldbJNI.SBBreakpointList_AppendIfUnique(swigCPtr, this, SBBreakpoint.getCPtr(sb_bkpt), sb_bkpt); + } + + public void AppendByID(int id) { + lldbJNI.SBBreakpointList_AppendByID(swigCPtr, this, id); + } + + public void Clear() { + lldbJNI.SBBreakpointList_Clear(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointLocation.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointLocation.java new file mode 100644 index 0000000000..29003e6371 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointLocation.java @@ -0,0 +1,172 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBBreakpointLocation { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBBreakpointLocation(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBBreakpointLocation obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBBreakpointLocation(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBBreakpointLocation() { + this(lldbJNI.new_SBBreakpointLocation__SWIG_0(), true); + } + + public SBBreakpointLocation(SBBreakpointLocation rhs) { + this(lldbJNI.new_SBBreakpointLocation__SWIG_1(SBBreakpointLocation.getCPtr(rhs), rhs), true); + } + + public int GetID() { + return lldbJNI.SBBreakpointLocation_GetID(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBBreakpointLocation_IsValid(swigCPtr, this); + } + + public SBAddress GetAddress() { + return new SBAddress(lldbJNI.SBBreakpointLocation_GetAddress(swigCPtr, this), true); + } + + public java.math.BigInteger GetLoadAddress() { + return lldbJNI.SBBreakpointLocation_GetLoadAddress(swigCPtr, this); + } + + public void SetEnabled(boolean enabled) { + lldbJNI.SBBreakpointLocation_SetEnabled(swigCPtr, this, enabled); + } + + public boolean IsEnabled() { + return lldbJNI.SBBreakpointLocation_IsEnabled(swigCPtr, this); + } + + public long GetHitCount() { + return lldbJNI.SBBreakpointLocation_GetHitCount(swigCPtr, this); + } + + public long GetIgnoreCount() { + return lldbJNI.SBBreakpointLocation_GetIgnoreCount(swigCPtr, this); + } + + public void SetIgnoreCount(long n) { + lldbJNI.SBBreakpointLocation_SetIgnoreCount(swigCPtr, this, n); + } + + public void SetCondition(String condition) { + lldbJNI.SBBreakpointLocation_SetCondition(swigCPtr, this, condition); + } + + public String GetCondition() { + return lldbJNI.SBBreakpointLocation_GetCondition(swigCPtr, this); + } + + public boolean GetAutoContinue() { + return lldbJNI.SBBreakpointLocation_GetAutoContinue(swigCPtr, this); + } + + public void SetAutoContinue(boolean auto_continue) { + lldbJNI.SBBreakpointLocation_SetAutoContinue(swigCPtr, this, auto_continue); + } + + public void SetScriptCallbackFunction(String callback_function_name) { + lldbJNI.SBBreakpointLocation_SetScriptCallbackFunction__SWIG_0(swigCPtr, this, callback_function_name); + } + + public SBError SetScriptCallbackFunction(String callback_function_name, SBStructuredData extra_args) { + return new SBError(lldbJNI.SBBreakpointLocation_SetScriptCallbackFunction__SWIG_1(swigCPtr, this, callback_function_name, SBStructuredData.getCPtr(extra_args), extra_args), true); + } + + public SBError SetScriptCallbackBody(String script_body_text) { + return new SBError(lldbJNI.SBBreakpointLocation_SetScriptCallbackBody(swigCPtr, this, script_body_text), true); + } + + public void SetCommandLineCommands(SBStringList commands) { + lldbJNI.SBBreakpointLocation_SetCommandLineCommands(swigCPtr, this, SBStringList.getCPtr(commands), commands); + } + + public boolean GetCommandLineCommands(SBStringList commands) { + return lldbJNI.SBBreakpointLocation_GetCommandLineCommands(swigCPtr, this, SBStringList.getCPtr(commands), commands); + } + + public void SetThreadID(java.math.BigInteger sb_thread_id) { + lldbJNI.SBBreakpointLocation_SetThreadID(swigCPtr, this, sb_thread_id); + } + + public java.math.BigInteger GetThreadID() { + return lldbJNI.SBBreakpointLocation_GetThreadID(swigCPtr, this); + } + + public void SetThreadIndex(long index) { + lldbJNI.SBBreakpointLocation_SetThreadIndex(swigCPtr, this, index); + } + + public long GetThreadIndex() { + return lldbJNI.SBBreakpointLocation_GetThreadIndex(swigCPtr, this); + } + + public void SetThreadName(String thread_name) { + lldbJNI.SBBreakpointLocation_SetThreadName(swigCPtr, this, thread_name); + } + + public String GetThreadName() { + return lldbJNI.SBBreakpointLocation_GetThreadName(swigCPtr, this); + } + + public void SetQueueName(String queue_name) { + lldbJNI.SBBreakpointLocation_SetQueueName(swigCPtr, this, queue_name); + } + + public String GetQueueName() { + return lldbJNI.SBBreakpointLocation_GetQueueName(swigCPtr, this); + } + + public boolean IsResolved() { + return lldbJNI.SBBreakpointLocation_IsResolved(swigCPtr, this); + } + + public boolean GetDescription(SBStream description, DescriptionLevel level) { + return lldbJNI.SBBreakpointLocation_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, level.swigValue()); + } + + public SBBreakpoint GetBreakpoint() { + return new SBBreakpoint(lldbJNI.SBBreakpointLocation_GetBreakpoint(swigCPtr, this), true); + } + + public String __str__() { + return lldbJNI.SBBreakpointLocation___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointName.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointName.java new file mode 100644 index 0000000000..c11cf0b3b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBreakpointName.java @@ -0,0 +1,200 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBBreakpointName { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBBreakpointName(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBBreakpointName obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBBreakpointName(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBBreakpointName() { + this(lldbJNI.new_SBBreakpointName__SWIG_0(), true); + } + + public SBBreakpointName(SBTarget target, String name) { + this(lldbJNI.new_SBBreakpointName__SWIG_1(SBTarget.getCPtr(target), target, name), true); + } + + public SBBreakpointName(SBBreakpoint bkpt, String name) { + this(lldbJNI.new_SBBreakpointName__SWIG_2(SBBreakpoint.getCPtr(bkpt), bkpt, name), true); + } + + public SBBreakpointName(SBBreakpointName rhs) { + this(lldbJNI.new_SBBreakpointName__SWIG_3(SBBreakpointName.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBBreakpointName_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBBreakpointName_GetName(swigCPtr, this); + } + + public void SetEnabled(boolean enable) { + lldbJNI.SBBreakpointName_SetEnabled(swigCPtr, this, enable); + } + + public boolean IsEnabled() { + return lldbJNI.SBBreakpointName_IsEnabled(swigCPtr, this); + } + + public void SetOneShot(boolean one_shot) { + lldbJNI.SBBreakpointName_SetOneShot(swigCPtr, this, one_shot); + } + + public boolean IsOneShot() { + return lldbJNI.SBBreakpointName_IsOneShot(swigCPtr, this); + } + + public void SetIgnoreCount(long count) { + lldbJNI.SBBreakpointName_SetIgnoreCount(swigCPtr, this, count); + } + + public long GetIgnoreCount() { + return lldbJNI.SBBreakpointName_GetIgnoreCount(swigCPtr, this); + } + + public void SetCondition(String condition) { + lldbJNI.SBBreakpointName_SetCondition(swigCPtr, this, condition); + } + + public String GetCondition() { + return lldbJNI.SBBreakpointName_GetCondition(swigCPtr, this); + } + + public void SetAutoContinue(boolean auto_continue) { + lldbJNI.SBBreakpointName_SetAutoContinue(swigCPtr, this, auto_continue); + } + + public boolean GetAutoContinue() { + return lldbJNI.SBBreakpointName_GetAutoContinue(swigCPtr, this); + } + + public void SetThreadID(java.math.BigInteger sb_thread_id) { + lldbJNI.SBBreakpointName_SetThreadID(swigCPtr, this, sb_thread_id); + } + + public java.math.BigInteger GetThreadID() { + return lldbJNI.SBBreakpointName_GetThreadID(swigCPtr, this); + } + + public void SetThreadIndex(long index) { + lldbJNI.SBBreakpointName_SetThreadIndex(swigCPtr, this, index); + } + + public long GetThreadIndex() { + return lldbJNI.SBBreakpointName_GetThreadIndex(swigCPtr, this); + } + + public void SetThreadName(String thread_name) { + lldbJNI.SBBreakpointName_SetThreadName(swigCPtr, this, thread_name); + } + + public String GetThreadName() { + return lldbJNI.SBBreakpointName_GetThreadName(swigCPtr, this); + } + + public void SetQueueName(String queue_name) { + lldbJNI.SBBreakpointName_SetQueueName(swigCPtr, this, queue_name); + } + + public String GetQueueName() { + return lldbJNI.SBBreakpointName_GetQueueName(swigCPtr, this); + } + + public void SetScriptCallbackFunction(String callback_function_name) { + lldbJNI.SBBreakpointName_SetScriptCallbackFunction__SWIG_0(swigCPtr, this, callback_function_name); + } + + public SBError SetScriptCallbackFunction(String callback_function_name, SBStructuredData extra_args) { + return new SBError(lldbJNI.SBBreakpointName_SetScriptCallbackFunction__SWIG_1(swigCPtr, this, callback_function_name, SBStructuredData.getCPtr(extra_args), extra_args), true); + } + + public void SetCommandLineCommands(SBStringList commands) { + lldbJNI.SBBreakpointName_SetCommandLineCommands(swigCPtr, this, SBStringList.getCPtr(commands), commands); + } + + public boolean GetCommandLineCommands(SBStringList commands) { + return lldbJNI.SBBreakpointName_GetCommandLineCommands(swigCPtr, this, SBStringList.getCPtr(commands), commands); + } + + public SBError SetScriptCallbackBody(String script_body_text) { + return new SBError(lldbJNI.SBBreakpointName_SetScriptCallbackBody(swigCPtr, this, script_body_text), true); + } + + public String GetHelpString() { + return lldbJNI.SBBreakpointName_GetHelpString(swigCPtr, this); + } + + public void SetHelpString(String help_string) { + lldbJNI.SBBreakpointName_SetHelpString(swigCPtr, this, help_string); + } + + public boolean GetAllowList() { + return lldbJNI.SBBreakpointName_GetAllowList(swigCPtr, this); + } + + public void SetAllowList(boolean value) { + lldbJNI.SBBreakpointName_SetAllowList(swigCPtr, this, value); + } + + public boolean GetAllowDelete() { + return lldbJNI.SBBreakpointName_GetAllowDelete(swigCPtr, this); + } + + public void SetAllowDelete(boolean value) { + lldbJNI.SBBreakpointName_SetAllowDelete(swigCPtr, this, value); + } + + public boolean GetAllowDisable() { + return lldbJNI.SBBreakpointName_GetAllowDisable(swigCPtr, this); + } + + public void SetAllowDisable(boolean value) { + lldbJNI.SBBreakpointName_SetAllowDisable(swigCPtr, this, value); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBBreakpointName_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBBreakpointName___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBroadcaster.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBroadcaster.java new file mode 100644 index 0000000000..90b6f3cb67 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBBroadcaster.java @@ -0,0 +1,104 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBBroadcaster { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBBroadcaster(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBBroadcaster obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBBroadcaster(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBBroadcaster() { + this(lldbJNI.new_SBBroadcaster__SWIG_0(), true); + } + + public SBBroadcaster(String name) { + this(lldbJNI.new_SBBroadcaster__SWIG_1(name), true); + } + + public SBBroadcaster(SBBroadcaster rhs) { + this(lldbJNI.new_SBBroadcaster__SWIG_2(SBBroadcaster.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBBroadcaster_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBBroadcaster_Clear(swigCPtr, this); + } + + public void BroadcastEventByType(long event_type, boolean unique) { + lldbJNI.SBBroadcaster_BroadcastEventByType__SWIG_0(swigCPtr, this, event_type, unique); + } + + public void BroadcastEventByType(long event_type) { + lldbJNI.SBBroadcaster_BroadcastEventByType__SWIG_1(swigCPtr, this, event_type); + } + + public void BroadcastEvent(SBEvent event, boolean unique) { + lldbJNI.SBBroadcaster_BroadcastEvent__SWIG_0(swigCPtr, this, SBEvent.getCPtr(event), event, unique); + } + + public void BroadcastEvent(SBEvent event) { + lldbJNI.SBBroadcaster_BroadcastEvent__SWIG_1(swigCPtr, this, SBEvent.getCPtr(event), event); + } + + public void AddInitialEventsToListener(SBListener listener, long requested_events) { + lldbJNI.SBBroadcaster_AddInitialEventsToListener(swigCPtr, this, SBListener.getCPtr(listener), listener, requested_events); + } + + public long AddListener(SBListener listener, long event_mask) { + return lldbJNI.SBBroadcaster_AddListener(swigCPtr, this, SBListener.getCPtr(listener), listener, event_mask); + } + + public String GetName() { + return lldbJNI.SBBroadcaster_GetName(swigCPtr, this); + } + + public boolean EventTypeHasListeners(long event_type) { + return lldbJNI.SBBroadcaster_EventTypeHasListeners(swigCPtr, this, event_type); + } + + public boolean RemoveListener(SBListener listener, long event_mask) { + return lldbJNI.SBBroadcaster_RemoveListener__SWIG_0(swigCPtr, this, SBListener.getCPtr(listener), listener, event_mask); + } + + public boolean RemoveListener(SBListener listener) { + return lldbJNI.SBBroadcaster_RemoveListener__SWIG_1(swigCPtr, this, SBListener.getCPtr(listener), listener); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreter.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreter.java new file mode 100644 index 0000000000..16e118e687 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreter.java @@ -0,0 +1,178 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBCommandInterpreter { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBCommandInterpreter(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBCommandInterpreter obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBCommandInterpreter(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBCommandInterpreter(SBCommandInterpreter rhs) { + this(lldbJNI.new_SBCommandInterpreter(SBCommandInterpreter.getCPtr(rhs), rhs), true); + } + + public static String GetArgumentTypeAsCString(CommandArgumentType arg_type) { + return lldbJNI.SBCommandInterpreter_GetArgumentTypeAsCString(arg_type.swigValue()); + } + + public static String GetArgumentDescriptionAsCString(CommandArgumentType arg_type) { + return lldbJNI.SBCommandInterpreter_GetArgumentDescriptionAsCString(arg_type.swigValue()); + } + + public static boolean EventIsCommandInterpreterEvent(SBEvent event) { + return lldbJNI.SBCommandInterpreter_EventIsCommandInterpreterEvent(SBEvent.getCPtr(event), event); + } + + public boolean IsValid() { + return lldbJNI.SBCommandInterpreter_IsValid(swigCPtr, this); + } + + public String GetIOHandlerControlSequence(char ch) { + return lldbJNI.SBCommandInterpreter_GetIOHandlerControlSequence(swigCPtr, this, ch); + } + + public boolean GetPromptOnQuit() { + return lldbJNI.SBCommandInterpreter_GetPromptOnQuit(swigCPtr, this); + } + + public void SetPromptOnQuit(boolean b) { + lldbJNI.SBCommandInterpreter_SetPromptOnQuit(swigCPtr, this, b); + } + + public void AllowExitCodeOnQuit(boolean b) { + lldbJNI.SBCommandInterpreter_AllowExitCodeOnQuit(swigCPtr, this, b); + } + + public boolean HasCustomQuitExitCode() { + return lldbJNI.SBCommandInterpreter_HasCustomQuitExitCode(swigCPtr, this); + } + + public int GetQuitStatus() { + return lldbJNI.SBCommandInterpreter_GetQuitStatus(swigCPtr, this); + } + + public void ResolveCommand(String command_line, SBCommandReturnObject result) { + lldbJNI.SBCommandInterpreter_ResolveCommand(swigCPtr, this, command_line, SBCommandReturnObject.getCPtr(result), result); + } + + public boolean CommandExists(String cmd) { + return lldbJNI.SBCommandInterpreter_CommandExists(swigCPtr, this, cmd); + } + + public boolean AliasExists(String cmd) { + return lldbJNI.SBCommandInterpreter_AliasExists(swigCPtr, this, cmd); + } + + public SBBroadcaster GetBroadcaster() { + return new SBBroadcaster(lldbJNI.SBCommandInterpreter_GetBroadcaster(swigCPtr, this), true); + } + + public static String GetBroadcasterClass() { + return lldbJNI.SBCommandInterpreter_GetBroadcasterClass(); + } + + public boolean HasCommands() { + return lldbJNI.SBCommandInterpreter_HasCommands(swigCPtr, this); + } + + public boolean HasAliases() { + return lldbJNI.SBCommandInterpreter_HasAliases(swigCPtr, this); + } + + public boolean HasAliasOptions() { + return lldbJNI.SBCommandInterpreter_HasAliasOptions(swigCPtr, this); + } + + public SBProcess GetProcess() { + return new SBProcess(lldbJNI.SBCommandInterpreter_GetProcess(swigCPtr, this), true); + } + + public SBDebugger GetDebugger() { + return new SBDebugger(lldbJNI.SBCommandInterpreter_GetDebugger(swigCPtr, this), true); + } + + public void SourceInitFileInHomeDirectory(SBCommandReturnObject result) { + lldbJNI.SBCommandInterpreter_SourceInitFileInHomeDirectory(swigCPtr, this, SBCommandReturnObject.getCPtr(result), result); + } + + public void SourceInitFileInCurrentWorkingDirectory(SBCommandReturnObject result) { + lldbJNI.SBCommandInterpreter_SourceInitFileInCurrentWorkingDirectory(swigCPtr, this, SBCommandReturnObject.getCPtr(result), result); + } + + public ReturnStatus HandleCommand(String command_line, SBCommandReturnObject result, boolean add_to_history) { + return ReturnStatus.swigToEnum(lldbJNI.SBCommandInterpreter_HandleCommand__SWIG_0(swigCPtr, this, command_line, SBCommandReturnObject.getCPtr(result), result, add_to_history)); + } + + public ReturnStatus HandleCommand(String command_line, SBCommandReturnObject result) { + return ReturnStatus.swigToEnum(lldbJNI.SBCommandInterpreter_HandleCommand__SWIG_1(swigCPtr, this, command_line, SBCommandReturnObject.getCPtr(result), result)); + } + + public ReturnStatus HandleCommand(String command_line, SBExecutionContext exe_ctx, SBCommandReturnObject result, boolean add_to_history) { + return ReturnStatus.swigToEnum(lldbJNI.SBCommandInterpreter_HandleCommand__SWIG_2(swigCPtr, this, command_line, SBExecutionContext.getCPtr(exe_ctx), exe_ctx, SBCommandReturnObject.getCPtr(result), result, add_to_history)); + } + + public ReturnStatus HandleCommand(String command_line, SBExecutionContext exe_ctx, SBCommandReturnObject result) { + return ReturnStatus.swigToEnum(lldbJNI.SBCommandInterpreter_HandleCommand__SWIG_3(swigCPtr, this, command_line, SBExecutionContext.getCPtr(exe_ctx), exe_ctx, SBCommandReturnObject.getCPtr(result), result)); + } + + public void HandleCommandsFromFile(SBFileSpec file, SBExecutionContext override_context, SBCommandInterpreterRunOptions options, SBCommandReturnObject result) { + lldbJNI.SBCommandInterpreter_HandleCommandsFromFile(swigCPtr, this, SBFileSpec.getCPtr(file), file, SBExecutionContext.getCPtr(override_context), override_context, SBCommandInterpreterRunOptions.getCPtr(options), options, SBCommandReturnObject.getCPtr(result), result); + } + + public int HandleCompletion(String current_line, long cursor_pos, int match_start_point, int max_return_elements, SBStringList matches) { + return lldbJNI.SBCommandInterpreter_HandleCompletion(swigCPtr, this, current_line, cursor_pos, match_start_point, max_return_elements, SBStringList.getCPtr(matches), matches); + } + + public int HandleCompletionWithDescriptions(String current_line, long cursor_pos, int match_start_point, int max_return_elements, SBStringList matches, SBStringList descriptions) { + return lldbJNI.SBCommandInterpreter_HandleCompletionWithDescriptions(swigCPtr, this, current_line, cursor_pos, match_start_point, max_return_elements, SBStringList.getCPtr(matches), matches, SBStringList.getCPtr(descriptions), descriptions); + } + + public boolean IsActive() { + return lldbJNI.SBCommandInterpreter_IsActive(swigCPtr, this); + } + + public boolean WasInterrupted() { + return lldbJNI.SBCommandInterpreter_WasInterrupted(swigCPtr, this); + } + + public final static int eBroadcastBitThreadShouldExit = lldbJNI.SBCommandInterpreter_eBroadcastBitThreadShouldExit_get(); + public final static int eBroadcastBitResetPrompt = lldbJNI.SBCommandInterpreter_eBroadcastBitResetPrompt_get(); + public final static int eBroadcastBitQuitCommandReceived = lldbJNI.SBCommandInterpreter_eBroadcastBitQuitCommandReceived_get(); + public final static int eBroadcastBitAsynchronousOutputData = lldbJNI.SBCommandInterpreter_eBroadcastBitAsynchronousOutputData_get(); + public final static int eBroadcastBitAsynchronousErrorData = lldbJNI.SBCommandInterpreter_eBroadcastBitAsynchronousErrorData_get(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreterRunOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreterRunOptions.java new file mode 100644 index 0000000000..ae19797125 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandInterpreterRunOptions.java @@ -0,0 +1,96 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBCommandInterpreterRunOptions { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBCommandInterpreterRunOptions(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBCommandInterpreterRunOptions obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBCommandInterpreterRunOptions(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBCommandInterpreterRunOptions() { + this(lldbJNI.new_SBCommandInterpreterRunOptions(), true); + } + + public boolean GetStopOnContinue() { + return lldbJNI.SBCommandInterpreterRunOptions_GetStopOnContinue(swigCPtr, this); + } + + public void SetStopOnContinue(boolean arg0) { + lldbJNI.SBCommandInterpreterRunOptions_SetStopOnContinue(swigCPtr, this, arg0); + } + + public boolean GetStopOnError() { + return lldbJNI.SBCommandInterpreterRunOptions_GetStopOnError(swigCPtr, this); + } + + public void SetStopOnError(boolean arg0) { + lldbJNI.SBCommandInterpreterRunOptions_SetStopOnError(swigCPtr, this, arg0); + } + + public boolean GetStopOnCrash() { + return lldbJNI.SBCommandInterpreterRunOptions_GetStopOnCrash(swigCPtr, this); + } + + public void SetStopOnCrash(boolean arg0) { + lldbJNI.SBCommandInterpreterRunOptions_SetStopOnCrash(swigCPtr, this, arg0); + } + + public boolean GetEchoCommands() { + return lldbJNI.SBCommandInterpreterRunOptions_GetEchoCommands(swigCPtr, this); + } + + public void SetEchoCommands(boolean arg0) { + lldbJNI.SBCommandInterpreterRunOptions_SetEchoCommands(swigCPtr, this, arg0); + } + + public boolean GetPrintResults() { + return lldbJNI.SBCommandInterpreterRunOptions_GetPrintResults(swigCPtr, this); + } + + public void SetPrintResults(boolean arg0) { + lldbJNI.SBCommandInterpreterRunOptions_SetPrintResults(swigCPtr, this, arg0); + } + + public boolean GetAddToHistory() { + return lldbJNI.SBCommandInterpreterRunOptions_GetAddToHistory(swigCPtr, this); + } + + public void SetAddToHistory(boolean arg0) { + lldbJNI.SBCommandInterpreterRunOptions_SetAddToHistory(swigCPtr, this, arg0); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandReturnObject.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandReturnObject.java new file mode 100644 index 0000000000..9ca413fcb2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommandReturnObject.java @@ -0,0 +1,176 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBCommandReturnObject { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBCommandReturnObject(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBCommandReturnObject obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBCommandReturnObject(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBCommandReturnObject() { + this(lldbJNI.new_SBCommandReturnObject__SWIG_0(), true); + } + + public SBCommandReturnObject(SBCommandReturnObject rhs) { + this(lldbJNI.new_SBCommandReturnObject__SWIG_1(SBCommandReturnObject.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBCommandReturnObject_IsValid(swigCPtr, this); + } + + public String GetOutput() { + return lldbJNI.SBCommandReturnObject_GetOutput__SWIG_0(swigCPtr, this); + } + + public String GetError() { + return lldbJNI.SBCommandReturnObject_GetError__SWIG_0(swigCPtr, this); + } + + public long GetOutputSize() { + return lldbJNI.SBCommandReturnObject_GetOutputSize(swigCPtr, this); + } + + public long GetErrorSize() { + return lldbJNI.SBCommandReturnObject_GetErrorSize(swigCPtr, this); + } + + public String GetOutput(boolean only_if_no_immediate) { + return lldbJNI.SBCommandReturnObject_GetOutput__SWIG_1(swigCPtr, this, only_if_no_immediate); + } + + public String GetError(boolean if_no_immediate) { + return lldbJNI.SBCommandReturnObject_GetError__SWIG_1(swigCPtr, this, if_no_immediate); + } + + public long PutOutput(SBFile file) { + return lldbJNI.SBCommandReturnObject_PutOutput__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file); + } + + public long PutError(SBFile file) { + return lldbJNI.SBCommandReturnObject_PutError__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file); + } + + public long PutOutput(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + return lldbJNI.SBCommandReturnObject_PutOutput__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public long PutError(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + return lldbJNI.SBCommandReturnObject_PutError__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public void Clear() { + lldbJNI.SBCommandReturnObject_Clear(swigCPtr, this); + } + + public void SetStatus(ReturnStatus status) { + lldbJNI.SBCommandReturnObject_SetStatus(swigCPtr, this, status.swigValue()); + } + + public void SetError(SBError error, String fallback_error_cstr) { + lldbJNI.SBCommandReturnObject_SetError__SWIG_0(swigCPtr, this, SBError.getCPtr(error), error, fallback_error_cstr); + } + + public void SetError(SBError error) { + lldbJNI.SBCommandReturnObject_SetError__SWIG_1(swigCPtr, this, SBError.getCPtr(error), error); + } + + public void SetError(String error_cstr) { + lldbJNI.SBCommandReturnObject_SetError__SWIG_2(swigCPtr, this, error_cstr); + } + + public ReturnStatus GetStatus() { + return ReturnStatus.swigToEnum(lldbJNI.SBCommandReturnObject_GetStatus(swigCPtr, this)); + } + + public boolean Succeeded() { + return lldbJNI.SBCommandReturnObject_Succeeded(swigCPtr, this); + } + + public boolean HasResult() { + return lldbJNI.SBCommandReturnObject_HasResult(swigCPtr, this); + } + + public void AppendMessage(String message) { + lldbJNI.SBCommandReturnObject_AppendMessage(swigCPtr, this, message); + } + + public void AppendWarning(String message) { + lldbJNI.SBCommandReturnObject_AppendWarning(swigCPtr, this, message); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBCommandReturnObject_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void SetImmediateOutputFile(SBFile file) { + lldbJNI.SBCommandReturnObject_SetImmediateOutputFile__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file); + } + + public void SetImmediateErrorFile(SBFile file) { + lldbJNI.SBCommandReturnObject_SetImmediateErrorFile__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file); + } + + public void SetImmediateOutputFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + lldbJNI.SBCommandReturnObject_SetImmediateOutputFile__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public void SetImmediateErrorFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + lldbJNI.SBCommandReturnObject_SetImmediateErrorFile__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public String __str__() { + return lldbJNI.SBCommandReturnObject___str__(swigCPtr, this); + } + + public void SetImmediateOutputFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED, boolean transfer_ownership) { + lldbJNI.SBCommandReturnObject_SetImmediateOutputFile__SWIG_2(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED), transfer_ownership); + } + + public void SetImmediateErrorFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED, boolean transfer_ownership) { + lldbJNI.SBCommandReturnObject_SetImmediateErrorFile__SWIG_2(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED), transfer_ownership); + } + + public void PutCString(String string, int len) { + lldbJNI.SBCommandReturnObject_PutCString(swigCPtr, this, string, len); + } + + public void Print(String str) { + lldbJNI.SBCommandReturnObject_Print(swigCPtr, this, str); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommunication.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommunication.java new file mode 100644 index 0000000000..a786d200b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCommunication.java @@ -0,0 +1,119 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBCommunication { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBCommunication(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBCommunication obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBCommunication(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBCommunication() { + this(lldbJNI.new_SBCommunication__SWIG_0(), true); + } + + public SBCommunication(String broadcaster_name) { + this(lldbJNI.new_SBCommunication__SWIG_1(broadcaster_name), true); + } + + public boolean IsValid() { + return lldbJNI.SBCommunication_IsValid(swigCPtr, this); + } + + public SBBroadcaster GetBroadcaster() { + return new SBBroadcaster(lldbJNI.SBCommunication_GetBroadcaster(swigCPtr, this), true); + } + + public static String GetBroadcasterClass() { + return lldbJNI.SBCommunication_GetBroadcasterClass(); + } + + public ConnectionStatus AdoptFileDesriptor(int fd, boolean owns_fd) { + return ConnectionStatus.swigToEnum(lldbJNI.SBCommunication_AdoptFileDesriptor(swigCPtr, this, fd, owns_fd)); + } + + public ConnectionStatus Connect(String url) { + return ConnectionStatus.swigToEnum(lldbJNI.SBCommunication_Connect(swigCPtr, this, url)); + } + + public ConnectionStatus Disconnect() { + return ConnectionStatus.swigToEnum(lldbJNI.SBCommunication_Disconnect(swigCPtr, this)); + } + + public boolean IsConnected() { + return lldbJNI.SBCommunication_IsConnected(swigCPtr, this); + } + + public boolean GetCloseOnEOF() { + return lldbJNI.SBCommunication_GetCloseOnEOF(swigCPtr, this); + } + + public void SetCloseOnEOF(boolean b) { + lldbJNI.SBCommunication_SetCloseOnEOF(swigCPtr, this, b); + } + + public long Read(SWIGTYPE_p_void dst, long dst_len, long timeout_usec, SWIGTYPE_p_lldb__ConnectionStatus status) { + return lldbJNI.SBCommunication_Read(swigCPtr, this, SWIGTYPE_p_void.getCPtr(dst), dst_len, timeout_usec, SWIGTYPE_p_lldb__ConnectionStatus.getCPtr(status)); + } + + public long Write(SWIGTYPE_p_void src, long src_len, SWIGTYPE_p_lldb__ConnectionStatus status) { + return lldbJNI.SBCommunication_Write(swigCPtr, this, SWIGTYPE_p_void.getCPtr(src), src_len, SWIGTYPE_p_lldb__ConnectionStatus.getCPtr(status)); + } + + public boolean ReadThreadStart() { + return lldbJNI.SBCommunication_ReadThreadStart(swigCPtr, this); + } + + public boolean ReadThreadStop() { + return lldbJNI.SBCommunication_ReadThreadStop(swigCPtr, this); + } + + public boolean ReadThreadIsRunning() { + return lldbJNI.SBCommunication_ReadThreadIsRunning(swigCPtr, this); + } + + public boolean SetReadThreadBytesReceivedCallback(SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void callback, SWIGTYPE_p_void callback_baton) { + return lldbJNI.SBCommunication_SetReadThreadBytesReceivedCallback(swigCPtr, this, SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void.getCPtr(callback), SWIGTYPE_p_void.getCPtr(callback_baton)); + } + + public final static int eBroadcastBitDisconnected = lldbJNI.SBCommunication_eBroadcastBitDisconnected_get(); + public final static int eBroadcastBitReadThreadGotBytes = lldbJNI.SBCommunication_eBroadcastBitReadThreadGotBytes_get(); + public final static int eBroadcastBitReadThreadDidExit = lldbJNI.SBCommunication_eBroadcastBitReadThreadDidExit_get(); + public final static int eBroadcastBitReadThreadShouldExit = lldbJNI.SBCommunication_eBroadcastBitReadThreadShouldExit_get(); + public final static int eBroadcastBitPacketAvailable = lldbJNI.SBCommunication_eBroadcastBitPacketAvailable_get(); + public final static int eAllEventBits = lldbJNI.SBCommunication_eAllEventBits_get(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCompileUnit.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCompileUnit.java new file mode 100644 index 0000000000..98ca26dc9d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBCompileUnit.java @@ -0,0 +1,108 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBCompileUnit { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBCompileUnit(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBCompileUnit obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBCompileUnit(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBCompileUnit() { + this(lldbJNI.new_SBCompileUnit__SWIG_0(), true); + } + + public SBCompileUnit(SBCompileUnit rhs) { + this(lldbJNI.new_SBCompileUnit__SWIG_1(SBCompileUnit.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBCompileUnit_IsValid(swigCPtr, this); + } + + public SBFileSpec GetFileSpec() { + return new SBFileSpec(lldbJNI.SBCompileUnit_GetFileSpec(swigCPtr, this), true); + } + + public long GetNumLineEntries() { + return lldbJNI.SBCompileUnit_GetNumLineEntries(swigCPtr, this); + } + + public SBLineEntry GetLineEntryAtIndex(long idx) { + return new SBLineEntry(lldbJNI.SBCompileUnit_GetLineEntryAtIndex(swigCPtr, this, idx), true); + } + + public long FindLineEntryIndex(long start_idx, long line, SBFileSpec inline_file_spec) { + return lldbJNI.SBCompileUnit_FindLineEntryIndex__SWIG_0(swigCPtr, this, start_idx, line, SBFileSpec.getCPtr(inline_file_spec), inline_file_spec); + } + + public long FindLineEntryIndex(long start_idx, long line, SBFileSpec inline_file_spec, boolean exact) { + return lldbJNI.SBCompileUnit_FindLineEntryIndex__SWIG_1(swigCPtr, this, start_idx, line, SBFileSpec.getCPtr(inline_file_spec), inline_file_spec, exact); + } + + public SBFileSpec GetSupportFileAtIndex(long idx) { + return new SBFileSpec(lldbJNI.SBCompileUnit_GetSupportFileAtIndex(swigCPtr, this, idx), true); + } + + public long GetNumSupportFiles() { + return lldbJNI.SBCompileUnit_GetNumSupportFiles(swigCPtr, this); + } + + public long FindSupportFileIndex(long start_idx, SBFileSpec sb_file, boolean full) { + return lldbJNI.SBCompileUnit_FindSupportFileIndex(swigCPtr, this, start_idx, SBFileSpec.getCPtr(sb_file), sb_file, full); + } + + public SBTypeList GetTypes(long type_mask) { + return new SBTypeList(lldbJNI.SBCompileUnit_GetTypes__SWIG_0(swigCPtr, this, type_mask), true); + } + + public SBTypeList GetTypes() { + return new SBTypeList(lldbJNI.SBCompileUnit_GetTypes__SWIG_1(swigCPtr, this), true); + } + + public LanguageType GetLanguage() { + return LanguageType.swigToEnum(lldbJNI.SBCompileUnit_GetLanguage(swigCPtr, this)); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBCompileUnit_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBCompileUnit___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBData.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBData.java new file mode 100644 index 0000000000..a721755d9e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBData.java @@ -0,0 +1,200 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBData { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBData(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBData obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBData(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBData() { + this(lldbJNI.new_SBData__SWIG_0(), true); + } + + public SBData(SBData rhs) { + this(lldbJNI.new_SBData__SWIG_1(SBData.getCPtr(rhs), rhs), true); + } + + public short GetAddressByteSize() { + return lldbJNI.SBData_GetAddressByteSize(swigCPtr, this); + } + + public void SetAddressByteSize(short addr_byte_size) { + lldbJNI.SBData_SetAddressByteSize(swigCPtr, this, addr_byte_size); + } + + public void Clear() { + lldbJNI.SBData_Clear(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBData_IsValid(swigCPtr, this); + } + + public long GetByteSize() { + return lldbJNI.SBData_GetByteSize(swigCPtr, this); + } + + public ByteOrder GetByteOrder() { + return ByteOrder.swigToEnum(lldbJNI.SBData_GetByteOrder(swigCPtr, this)); + } + + public void SetByteOrder(ByteOrder endian) { + lldbJNI.SBData_SetByteOrder(swigCPtr, this, endian.swigValue()); + } + + public float GetFloat(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetFloat(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public double GetDouble(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetDouble(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public SWIGTYPE_p_long_double GetLongDouble(SBError error, java.math.BigInteger offset) { + return new SWIGTYPE_p_long_double(lldbJNI.SBData_GetLongDouble(swigCPtr, this, SBError.getCPtr(error), error, offset), true); + } + + public java.math.BigInteger GetAddress(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetAddress(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public short GetUnsignedInt8(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetUnsignedInt8(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public int GetUnsignedInt16(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetUnsignedInt16(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public long GetUnsignedInt32(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetUnsignedInt32(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public java.math.BigInteger GetUnsignedInt64(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetUnsignedInt64(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public byte GetSignedInt8(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetSignedInt8(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public short GetSignedInt16(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetSignedInt16(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public int GetSignedInt32(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetSignedInt32(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public long GetSignedInt64(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetSignedInt64(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public String GetString(SBError error, java.math.BigInteger offset) { + return lldbJNI.SBData_GetString(swigCPtr, this, SBError.getCPtr(error), error, offset); + } + + public boolean GetDescription(SBStream description, java.math.BigInteger base_addr) { + return lldbJNI.SBData_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, base_addr); + } + + public long ReadRawData(SBError error, java.math.BigInteger offset, SWIGTYPE_p_void buf, long size) { + return lldbJNI.SBData_ReadRawData(swigCPtr, this, SBError.getCPtr(error), error, offset, SWIGTYPE_p_void.getCPtr(buf), size); + } + + public void SetData(SBError error, SWIGTYPE_p_void buf, long size, ByteOrder endian, short addr_size) { + lldbJNI.SBData_SetData(swigCPtr, this, SBError.getCPtr(error), error, SWIGTYPE_p_void.getCPtr(buf), size, endian.swigValue(), addr_size); + } + + public boolean Append(SBData rhs) { + return lldbJNI.SBData_Append(swigCPtr, this, SBData.getCPtr(rhs), rhs); + } + + public static SBData CreateDataFromCString(ByteOrder endian, long addr_byte_size, String data) { + return new SBData(lldbJNI.SBData_CreateDataFromCString(endian.swigValue(), addr_byte_size, data), true); + } + + public static SBData CreateDataFromUInt64Array(ByteOrder endian, long addr_byte_size, SWIGTYPE_p_unsigned_long_long array, long array_len) { + return new SBData(lldbJNI.SBData_CreateDataFromUInt64Array(endian.swigValue(), addr_byte_size, SWIGTYPE_p_unsigned_long_long.getCPtr(array), array_len), true); + } + + public static SBData CreateDataFromUInt32Array(ByteOrder endian, long addr_byte_size, SWIGTYPE_p_unsigned_int array, long array_len) { + return new SBData(lldbJNI.SBData_CreateDataFromUInt32Array(endian.swigValue(), addr_byte_size, SWIGTYPE_p_unsigned_int.getCPtr(array), array_len), true); + } + + public static SBData CreateDataFromSInt64Array(ByteOrder endian, long addr_byte_size, SWIGTYPE_p_long_long array, long array_len) { + return new SBData(lldbJNI.SBData_CreateDataFromSInt64Array(endian.swigValue(), addr_byte_size, SWIGTYPE_p_long_long.getCPtr(array), array_len), true); + } + + public static SBData CreateDataFromSInt32Array(ByteOrder endian, long addr_byte_size, SWIGTYPE_p_int array, long array_len) { + return new SBData(lldbJNI.SBData_CreateDataFromSInt32Array(endian.swigValue(), addr_byte_size, SWIGTYPE_p_int.getCPtr(array), array_len), true); + } + + public static SBData CreateDataFromDoubleArray(ByteOrder endian, long addr_byte_size, SWIGTYPE_p_double array, long array_len) { + return new SBData(lldbJNI.SBData_CreateDataFromDoubleArray(endian.swigValue(), addr_byte_size, SWIGTYPE_p_double.getCPtr(array), array_len), true); + } + + public boolean SetDataFromCString(String data) { + return lldbJNI.SBData_SetDataFromCString(swigCPtr, this, data); + } + + public boolean SetDataFromUInt64Array(SWIGTYPE_p_unsigned_long_long array, long array_len) { + return lldbJNI.SBData_SetDataFromUInt64Array(swigCPtr, this, SWIGTYPE_p_unsigned_long_long.getCPtr(array), array_len); + } + + public boolean SetDataFromUInt32Array(SWIGTYPE_p_unsigned_int array, long array_len) { + return lldbJNI.SBData_SetDataFromUInt32Array(swigCPtr, this, SWIGTYPE_p_unsigned_int.getCPtr(array), array_len); + } + + public boolean SetDataFromSInt64Array(SWIGTYPE_p_long_long array, long array_len) { + return lldbJNI.SBData_SetDataFromSInt64Array(swigCPtr, this, SWIGTYPE_p_long_long.getCPtr(array), array_len); + } + + public boolean SetDataFromSInt32Array(SWIGTYPE_p_int array, long array_len) { + return lldbJNI.SBData_SetDataFromSInt32Array(swigCPtr, this, SWIGTYPE_p_int.getCPtr(array), array_len); + } + + public boolean SetDataFromDoubleArray(SWIGTYPE_p_double array, long array_len) { + return lldbJNI.SBData_SetDataFromDoubleArray(swigCPtr, this, SWIGTYPE_p_double.getCPtr(array), array_len); + } + + public String __str__() { + return lldbJNI.SBData___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDebugger.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDebugger.java new file mode 100644 index 0000000000..ddc9e3cfd6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDebugger.java @@ -0,0 +1,443 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SBDebugger { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBDebugger(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBDebugger obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBDebugger(swigCPtr); + } + swigCPtr = 0; + } + } + + public static void Initialize() { + lldbJNI.SBDebugger_Initialize(); + } + + public static SBError InitializeWithErrorHandling() { + return new SBError(lldbJNI.SBDebugger_InitializeWithErrorHandling(), true); + } + + public static void Terminate() { + lldbJNI.SBDebugger_Terminate(); + } + + public static SBDebugger Create() { + return new SBDebugger(lldbJNI.SBDebugger_Create__SWIG_0(), true); + } + + public static SBDebugger Create(boolean source_init_files) { + return new SBDebugger(lldbJNI.SBDebugger_Create__SWIG_1(source_init_files), true); + } + + public static SBDebugger Create(boolean source_init_files, SWIGTYPE_p_f_p_q_const__char_p_void__void log_callback, SWIGTYPE_p_void baton) { + return new SBDebugger(lldbJNI.SBDebugger_Create__SWIG_2(source_init_files, SWIGTYPE_p_f_p_q_const__char_p_void__void.getCPtr(log_callback), SWIGTYPE_p_void.getCPtr(baton)), true); + } + + public static void Destroy(SBDebugger debugger) { + lldbJNI.SBDebugger_Destroy(SBDebugger.getCPtr(debugger), debugger); + } + + public static void MemoryPressureDetected() { + lldbJNI.SBDebugger_MemoryPressureDetected(); + } + + public SBDebugger() { + this(lldbJNI.new_SBDebugger__SWIG_0(), true); + } + + public SBDebugger(SBDebugger rhs) { + this(lldbJNI.new_SBDebugger__SWIG_1(SBDebugger.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBDebugger_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBDebugger_Clear(swigCPtr, this); + } + + public void SetAsync(boolean b) { + lldbJNI.SBDebugger_SetAsync(swigCPtr, this, b); + } + + public boolean GetAsync() { + return lldbJNI.SBDebugger_GetAsync(swigCPtr, this); + } + + public void SkipLLDBInitFiles(boolean b) { + lldbJNI.SBDebugger_SkipLLDBInitFiles(swigCPtr, this, b); + } + + public SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t GetInputFileHandle() { + return new SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t(lldbJNI.SBDebugger_GetInputFileHandle(swigCPtr, this), true); + } + + public SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t GetOutputFileHandle() { + return new SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t(lldbJNI.SBDebugger_GetOutputFileHandle(swigCPtr, this), true); + } + + public SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t GetErrorFileHandle() { + return new SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t(lldbJNI.SBDebugger_GetErrorFileHandle(swigCPtr, this), true); + } + + public SBError SetInputFile(SBFile file) { + return new SBError(lldbJNI.SBDebugger_SetInputFile__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file), true); + } + + public SBError SetOutputFile(SBFile file) { + return new SBError(lldbJNI.SBDebugger_SetOutputFile__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file), true); + } + + public SBError SetErrorFile(SBFile file) { + return new SBError(lldbJNI.SBDebugger_SetErrorFile__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file), true); + } + + public SBError SetInputFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t file) { + return new SBError(lldbJNI.SBDebugger_SetInputFile__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(file)), true); + } + + public SBError SetOutputFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t file) { + return new SBError(lldbJNI.SBDebugger_SetOutputFile__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(file)), true); + } + + public SBError SetErrorFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t file) { + return new SBError(lldbJNI.SBDebugger_SetErrorFile__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(file)), true); + } + + public SBFile GetInputFile() { + return new SBFile(lldbJNI.SBDebugger_GetInputFile(swigCPtr, this), true); + } + + public SBFile GetOutputFile() { + return new SBFile(lldbJNI.SBDebugger_GetOutputFile(swigCPtr, this), true); + } + + public SBFile GetErrorFile() { + return new SBFile(lldbJNI.SBDebugger_GetErrorFile(swigCPtr, this), true); + } + + public SBCommandInterpreter GetCommandInterpreter() { + return new SBCommandInterpreter(lldbJNI.SBDebugger_GetCommandInterpreter(swigCPtr, this), true); + } + + public void HandleCommand(String command) { + lldbJNI.SBDebugger_HandleCommand(swigCPtr, this, command); + } + + public SBListener GetListener() { + return new SBListener(lldbJNI.SBDebugger_GetListener(swigCPtr, this), true); + } + + public void HandleProcessEvent(SBProcess process, SBEvent event, SBFile out, SBFile err) { + lldbJNI.SBDebugger_HandleProcessEvent__SWIG_0(swigCPtr, this, SBProcess.getCPtr(process), process, SBEvent.getCPtr(event), event, SBFile.getCPtr(out), out, SBFile.getCPtr(err), err); + } + + public void HandleProcessEvent(SBProcess process, SBEvent event, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t arg2, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t arg3) { + lldbJNI.SBDebugger_HandleProcessEvent__SWIG_1(swigCPtr, this, SBProcess.getCPtr(process), process, SBEvent.getCPtr(event), event, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(arg2), SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(arg3)); + } + + public SBTarget CreateTarget(String filename, String target_triple, String platform_name, boolean add_dependent_modules, SBError sb_error) { + return new SBTarget(lldbJNI.SBDebugger_CreateTarget__SWIG_0(swigCPtr, this, filename, target_triple, platform_name, add_dependent_modules, SBError.getCPtr(sb_error), sb_error), true); + } + + public SBTarget CreateTargetWithFileAndTargetTriple(String filename, String target_triple) { + return new SBTarget(lldbJNI.SBDebugger_CreateTargetWithFileAndTargetTriple(swigCPtr, this, filename, target_triple), true); + } + + public SBTarget CreateTargetWithFileAndArch(String filename, String archname) { + return new SBTarget(lldbJNI.SBDebugger_CreateTargetWithFileAndArch(swigCPtr, this, filename, archname), true); + } + + public SBTarget CreateTarget(String filename) { + return new SBTarget(lldbJNI.SBDebugger_CreateTarget__SWIG_1(swigCPtr, this, filename), true); + } + + public SBTarget GetDummyTarget() { + return new SBTarget(lldbJNI.SBDebugger_GetDummyTarget(swigCPtr, this), true); + } + + public boolean DeleteTarget(SBTarget target) { + return lldbJNI.SBDebugger_DeleteTarget(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public SBTarget GetTargetAtIndex(long idx) { + return new SBTarget(lldbJNI.SBDebugger_GetTargetAtIndex(swigCPtr, this, idx), true); + } + + public long GetIndexOfTarget(SBTarget target) { + return lldbJNI.SBDebugger_GetIndexOfTarget(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public SBTarget FindTargetWithProcessID(java.math.BigInteger pid) { + return new SBTarget(lldbJNI.SBDebugger_FindTargetWithProcessID(swigCPtr, this, pid), true); + } + + public SBTarget FindTargetWithFileAndArch(String filename, String arch) { + return new SBTarget(lldbJNI.SBDebugger_FindTargetWithFileAndArch(swigCPtr, this, filename, arch), true); + } + + public long GetNumTargets() { + return lldbJNI.SBDebugger_GetNumTargets(swigCPtr, this); + } + + public SBTarget GetSelectedTarget() { + return new SBTarget(lldbJNI.SBDebugger_GetSelectedTarget(swigCPtr, this), true); + } + + public void SetSelectedTarget(SBTarget target) { + lldbJNI.SBDebugger_SetSelectedTarget(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public SBPlatform GetSelectedPlatform() { + return new SBPlatform(lldbJNI.SBDebugger_GetSelectedPlatform(swigCPtr, this), true); + } + + public void SetSelectedPlatform(SBPlatform platform) { + lldbJNI.SBDebugger_SetSelectedPlatform(swigCPtr, this, SBPlatform.getCPtr(platform), platform); + } + + public long GetNumPlatforms() { + return lldbJNI.SBDebugger_GetNumPlatforms(swigCPtr, this); + } + + public SBPlatform GetPlatformAtIndex(long idx) { + return new SBPlatform(lldbJNI.SBDebugger_GetPlatformAtIndex(swigCPtr, this, idx), true); + } + + public long GetNumAvailablePlatforms() { + return lldbJNI.SBDebugger_GetNumAvailablePlatforms(swigCPtr, this); + } + + public SBStructuredData GetAvailablePlatformInfoAtIndex(long idx) { + return new SBStructuredData(lldbJNI.SBDebugger_GetAvailablePlatformInfoAtIndex(swigCPtr, this, idx), true); + } + + public SBSourceManager GetSourceManager() { + return new SBSourceManager(lldbJNI.SBDebugger_GetSourceManager(swigCPtr, this), true); + } + + public SBError SetCurrentPlatform(String platform_name) { + return new SBError(lldbJNI.SBDebugger_SetCurrentPlatform(swigCPtr, this, platform_name), true); + } + + public boolean SetCurrentPlatformSDKRoot(String sysroot) { + return lldbJNI.SBDebugger_SetCurrentPlatformSDKRoot(swigCPtr, this, sysroot); + } + + public boolean SetUseExternalEditor(boolean input) { + return lldbJNI.SBDebugger_SetUseExternalEditor(swigCPtr, this, input); + } + + public boolean GetUseExternalEditor() { + return lldbJNI.SBDebugger_GetUseExternalEditor(swigCPtr, this); + } + + public boolean SetUseColor(boolean use_color) { + return lldbJNI.SBDebugger_SetUseColor(swigCPtr, this, use_color); + } + + public boolean GetUseColor() { + return lldbJNI.SBDebugger_GetUseColor(swigCPtr, this); + } + + public static boolean GetDefaultArchitecture(String arch_name, long arch_name_len) { + return lldbJNI.SBDebugger_GetDefaultArchitecture(arch_name, arch_name_len); + } + + public static boolean SetDefaultArchitecture(String arch_name) { + return lldbJNI.SBDebugger_SetDefaultArchitecture(arch_name); + } + + public ScriptLanguage GetScriptingLanguage(String script_language_name) { + return ScriptLanguage.swigToEnum(lldbJNI.SBDebugger_GetScriptingLanguage(swigCPtr, this, script_language_name)); + } + + public static String GetVersionString() { + return lldbJNI.SBDebugger_GetVersionString(); + } + + public static String StateAsCString(StateType state) { + return lldbJNI.SBDebugger_StateAsCString(state.swigValue()); + } + + public static SBStructuredData GetBuildConfiguration() { + return new SBStructuredData(lldbJNI.SBDebugger_GetBuildConfiguration(), true); + } + + public static boolean StateIsRunningState(StateType state) { + return lldbJNI.SBDebugger_StateIsRunningState(state.swigValue()); + } + + public static boolean StateIsStoppedState(StateType state) { + return lldbJNI.SBDebugger_StateIsStoppedState(state.swigValue()); + } + + public boolean EnableLog(String channel, String[] types) { + return lldbJNI.SBDebugger_EnableLog(swigCPtr, this, channel, types); + } + + public void SetLoggingCallback(SWIGTYPE_p_f_p_q_const__char_p_void__void log_callback, SWIGTYPE_p_void baton) { + lldbJNI.SBDebugger_SetLoggingCallback(swigCPtr, this, SWIGTYPE_p_f_p_q_const__char_p_void__void.getCPtr(log_callback), SWIGTYPE_p_void.getCPtr(baton)); + } + + public void DispatchInput(SWIGTYPE_p_void data, long data_len) { + lldbJNI.SBDebugger_DispatchInput(swigCPtr, this, SWIGTYPE_p_void.getCPtr(data), data_len); + } + + public void DispatchInputInterrupt() { + lldbJNI.SBDebugger_DispatchInputInterrupt(swigCPtr, this); + } + + public void DispatchInputEndOfFile() { + lldbJNI.SBDebugger_DispatchInputEndOfFile(swigCPtr, this); + } + + public String GetInstanceName() { + return lldbJNI.SBDebugger_GetInstanceName(swigCPtr, this); + } + + public static SBDebugger FindDebuggerWithID(int id) { + return new SBDebugger(lldbJNI.SBDebugger_FindDebuggerWithID(id), true); + } + + public static SBError SetInternalVariable(String var_name, String value, String debugger_instance_name) { + return new SBError(lldbJNI.SBDebugger_SetInternalVariable(var_name, value, debugger_instance_name), true); + } + + public static SBStringList GetInternalVariableValue(String var_name, String debugger_instance_name) { + return new SBStringList(lldbJNI.SBDebugger_GetInternalVariableValue(var_name, debugger_instance_name), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBDebugger_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public long GetTerminalWidth() { + return lldbJNI.SBDebugger_GetTerminalWidth(swigCPtr, this); + } + + public void SetTerminalWidth(long term_width) { + lldbJNI.SBDebugger_SetTerminalWidth(swigCPtr, this, term_width); + } + + public java.math.BigInteger GetID() { + return lldbJNI.SBDebugger_GetID(swigCPtr, this); + } + + public String GetPrompt() { + return lldbJNI.SBDebugger_GetPrompt(swigCPtr, this); + } + + public void SetPrompt(String prompt) { + lldbJNI.SBDebugger_SetPrompt(swigCPtr, this, prompt); + } + + public String GetReproducerPath() { + return lldbJNI.SBDebugger_GetReproducerPath(swigCPtr, this); + } + + public ScriptLanguage GetScriptLanguage() { + return ScriptLanguage.swigToEnum(lldbJNI.SBDebugger_GetScriptLanguage(swigCPtr, this)); + } + + public void SetScriptLanguage(ScriptLanguage script_lang) { + lldbJNI.SBDebugger_SetScriptLanguage(swigCPtr, this, script_lang.swigValue()); + } + + public boolean GetCloseInputOnEOF() { + return lldbJNI.SBDebugger_GetCloseInputOnEOF(swigCPtr, this); + } + + public void SetCloseInputOnEOF(boolean b) { + lldbJNI.SBDebugger_SetCloseInputOnEOF(swigCPtr, this, b); + } + + public SBTypeCategory GetCategory(String category_name) { + return new SBTypeCategory(lldbJNI.SBDebugger_GetCategory__SWIG_0(swigCPtr, this, category_name), true); + } + + public SBTypeCategory GetCategory(LanguageType lang_type) { + return new SBTypeCategory(lldbJNI.SBDebugger_GetCategory__SWIG_1(swigCPtr, this, lang_type.swigValue()), true); + } + + public SBTypeCategory CreateCategory(String category_name) { + return new SBTypeCategory(lldbJNI.SBDebugger_CreateCategory(swigCPtr, this, category_name), true); + } + + public boolean DeleteCategory(String category_name) { + return lldbJNI.SBDebugger_DeleteCategory(swigCPtr, this, category_name); + } + + public long GetNumCategories() { + return lldbJNI.SBDebugger_GetNumCategories(swigCPtr, this); + } + + public SBTypeCategory GetCategoryAtIndex(long arg0) { + return new SBTypeCategory(lldbJNI.SBDebugger_GetCategoryAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeCategory GetDefaultCategory() { + return new SBTypeCategory(lldbJNI.SBDebugger_GetDefaultCategory(swigCPtr, this), true); + } + + public SBTypeFormat GetFormatForType(SBTypeNameSpecifier arg0) { + return new SBTypeFormat(lldbJNI.SBDebugger_GetFormatForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeSummary GetSummaryForType(SBTypeNameSpecifier arg0) { + return new SBTypeSummary(lldbJNI.SBDebugger_GetSummaryForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeFilter GetFilterForType(SBTypeNameSpecifier arg0) { + return new SBTypeFilter(lldbJNI.SBDebugger_GetFilterForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier arg0) { + return new SBTypeSynthetic(lldbJNI.SBDebugger_GetSyntheticForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public String __str__() { + return lldbJNI.SBDebugger___str__(swigCPtr, this); + } + + public void RunCommandInterpreter(boolean auto_handle_events, boolean spawn_thread, SBCommandInterpreterRunOptions options, int[] num_errors, boolean[] quit_requested, boolean[] stopped_for_crash) { + lldbJNI.SBDebugger_RunCommandInterpreter(swigCPtr, this, auto_handle_events, spawn_thread, SBCommandInterpreterRunOptions.getCPtr(options), options, num_errors, quit_requested, stopped_for_crash); + } + + public SBError RunREPL(LanguageType language, String repl_options) { + return new SBError(lldbJNI.SBDebugger_RunREPL(swigCPtr, this, language.swigValue(), repl_options), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDeclaration.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDeclaration.java new file mode 100644 index 0000000000..8b73e92e40 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBDeclaration.java @@ -0,0 +1,88 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBDeclaration { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBDeclaration(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBDeclaration obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBDeclaration(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBDeclaration() { + this(lldbJNI.new_SBDeclaration__SWIG_0(), true); + } + + public SBDeclaration(SBDeclaration rhs) { + this(lldbJNI.new_SBDeclaration__SWIG_1(SBDeclaration.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBDeclaration_IsValid(swigCPtr, this); + } + + public SBFileSpec GetFileSpec() { + return new SBFileSpec(lldbJNI.SBDeclaration_GetFileSpec(swigCPtr, this), true); + } + + public long GetLine() { + return lldbJNI.SBDeclaration_GetLine(swigCPtr, this); + } + + public long GetColumn() { + return lldbJNI.SBDeclaration_GetColumn(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBDeclaration_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void SetFileSpec(SBFileSpec filespec) { + lldbJNI.SBDeclaration_SetFileSpec(swigCPtr, this, SBFileSpec.getCPtr(filespec), filespec); + } + + public void SetLine(long line) { + lldbJNI.SBDeclaration_SetLine(swigCPtr, this, line); + } + + public void SetColumn(long column) { + lldbJNI.SBDeclaration_SetColumn(swigCPtr, this, column); + } + + public String __str__() { + return lldbJNI.SBDeclaration___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEnvironment.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEnvironment.java new file mode 100644 index 0000000000..0865a2465f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEnvironment.java @@ -0,0 +1,92 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBEnvironment { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBEnvironment(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBEnvironment obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBEnvironment(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBEnvironment() { + this(lldbJNI.new_SBEnvironment__SWIG_0(), true); + } + + public SBEnvironment(SBEnvironment rhs) { + this(lldbJNI.new_SBEnvironment__SWIG_1(SBEnvironment.getCPtr(rhs), rhs), true); + } + + public long GetNumValues() { + return lldbJNI.SBEnvironment_GetNumValues(swigCPtr, this); + } + + public String Get(String name) { + return lldbJNI.SBEnvironment_Get(swigCPtr, this, name); + } + + public String GetNameAtIndex(long index) { + return lldbJNI.SBEnvironment_GetNameAtIndex(swigCPtr, this, index); + } + + public String GetValueAtIndex(long index) { + return lldbJNI.SBEnvironment_GetValueAtIndex(swigCPtr, this, index); + } + + public SBStringList GetEntries() { + return new SBStringList(lldbJNI.SBEnvironment_GetEntries(swigCPtr, this), true); + } + + public void PutEntry(String name_and_value) { + lldbJNI.SBEnvironment_PutEntry(swigCPtr, this, name_and_value); + } + + public void SetEntries(SBStringList entries, boolean append) { + lldbJNI.SBEnvironment_SetEntries(swigCPtr, this, SBStringList.getCPtr(entries), entries, append); + } + + public boolean Set(String name, String value, boolean overwrite) { + return lldbJNI.SBEnvironment_Set(swigCPtr, this, name, value, overwrite); + } + + public boolean Unset(String name) { + return lldbJNI.SBEnvironment_Unset(swigCPtr, this, name); + } + + public void Clear() { + lldbJNI.SBEnvironment_Clear(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBError.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBError.java new file mode 100644 index 0000000000..5a84fd786c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBError.java @@ -0,0 +1,120 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBError { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBError(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBError obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBError(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBError() { + this(lldbJNI.new_SBError__SWIG_0(), true); + } + + public SBError(SBError rhs) { + this(lldbJNI.new_SBError__SWIG_1(SBError.getCPtr(rhs), rhs), true); + } + + public String GetCString() { + return lldbJNI.SBError_GetCString(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBError_Clear(swigCPtr, this); + } + + public boolean Fail() { + return lldbJNI.SBError_Fail(swigCPtr, this); + } + + public boolean Success() { + return lldbJNI.SBError_Success(swigCPtr, this); + } + + public long GetError() { + return lldbJNI.SBError_GetError(swigCPtr, this); + } + + public ErrorType GetType() { + return ErrorType.swigToEnum(lldbJNI.SBError_GetType(swigCPtr, this)); + } + + public void SetError(long err, ErrorType type) { + lldbJNI.SBError_SetError(swigCPtr, this, err, type.swigValue()); + } + + public void SetErrorToErrno() { + lldbJNI.SBError_SetErrorToErrno(swigCPtr, this); + } + + public void SetErrorToGenericError() { + lldbJNI.SBError_SetErrorToGenericError(swigCPtr, this); + } + + public void SetErrorString(String err_str) { + lldbJNI.SBError_SetErrorString(swigCPtr, this, err_str); + } + + public int SetErrorStringWithFormat(String format, String str1, String str2, String str3) { + return lldbJNI.SBError_SetErrorStringWithFormat__SWIG_0(swigCPtr, this, format, str1, str2, str3); + } + + public int SetErrorStringWithFormat(String format, String str1, String str2) { + return lldbJNI.SBError_SetErrorStringWithFormat__SWIG_1(swigCPtr, this, format, str1, str2); + } + + public int SetErrorStringWithFormat(String format, String str1) { + return lldbJNI.SBError_SetErrorStringWithFormat__SWIG_2(swigCPtr, this, format, str1); + } + + public int SetErrorStringWithFormat(String format) { + return lldbJNI.SBError_SetErrorStringWithFormat__SWIG_3(swigCPtr, this, format); + } + + public boolean IsValid() { + return lldbJNI.SBError_IsValid(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBError_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBError___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEvent.java new file mode 100644 index 0000000000..a27929d27e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBEvent.java @@ -0,0 +1,92 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBEvent { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBEvent(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBEvent obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBEvent(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBEvent() { + this(lldbJNI.new_SBEvent__SWIG_0(), true); + } + + public SBEvent(SBEvent rhs) { + this(lldbJNI.new_SBEvent__SWIG_1(SBEvent.getCPtr(rhs), rhs), true); + } + + public SBEvent(long event, String cstr, long cstr_len) { + this(lldbJNI.new_SBEvent__SWIG_2(event, cstr, cstr_len), true); + } + + public boolean IsValid() { + return lldbJNI.SBEvent_IsValid(swigCPtr, this); + } + + public String GetDataFlavor() { + return lldbJNI.SBEvent_GetDataFlavor(swigCPtr, this); + } + + public long GetType() { + return lldbJNI.SBEvent_GetType(swigCPtr, this); + } + + public SBBroadcaster GetBroadcaster() { + return new SBBroadcaster(lldbJNI.SBEvent_GetBroadcaster(swigCPtr, this), true); + } + + public String GetBroadcasterClass() { + return lldbJNI.SBEvent_GetBroadcasterClass(swigCPtr, this); + } + + public boolean BroadcasterMatchesRef(SBBroadcaster broadcaster) { + return lldbJNI.SBEvent_BroadcasterMatchesRef(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster); + } + + public void Clear() { + lldbJNI.SBEvent_Clear(swigCPtr, this); + } + + public static String GetCStringFromEvent(SBEvent event) { + return lldbJNI.SBEvent_GetCStringFromEvent(SBEvent.getCPtr(event), event); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBEvent_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExecutionContext.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExecutionContext.java new file mode 100644 index 0000000000..c1ba37109a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExecutionContext.java @@ -0,0 +1,84 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBExecutionContext { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBExecutionContext(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBExecutionContext obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBExecutionContext(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBExecutionContext() { + this(lldbJNI.new_SBExecutionContext__SWIG_0(), true); + } + + public SBExecutionContext(SBExecutionContext rhs) { + this(lldbJNI.new_SBExecutionContext__SWIG_1(SBExecutionContext.getCPtr(rhs), rhs), true); + } + + public SBExecutionContext(SBTarget target) { + this(lldbJNI.new_SBExecutionContext__SWIG_2(SBTarget.getCPtr(target), target), true); + } + + public SBExecutionContext(SBProcess process) { + this(lldbJNI.new_SBExecutionContext__SWIG_3(SBProcess.getCPtr(process), process), true); + } + + public SBExecutionContext(SBThread thread) { + this(lldbJNI.new_SBExecutionContext__SWIG_4(SBThread.getCPtr(thread), thread), true); + } + + public SBExecutionContext(SBFrame frame) { + this(lldbJNI.new_SBExecutionContext__SWIG_5(SBFrame.getCPtr(frame), frame), true); + } + + public SBTarget GetTarget() { + return new SBTarget(lldbJNI.SBExecutionContext_GetTarget(swigCPtr, this), true); + } + + public SBProcess GetProcess() { + return new SBProcess(lldbJNI.SBExecutionContext_GetProcess(swigCPtr, this), true); + } + + public SBThread GetThread() { + return new SBThread(lldbJNI.SBExecutionContext_GetThread(swigCPtr, this), true); + } + + public SBFrame GetFrame() { + return new SBFrame(lldbJNI.SBExecutionContext_GetFrame(swigCPtr, this), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExpressionOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExpressionOptions.java new file mode 100644 index 0000000000..f4004fd3a7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBExpressionOptions.java @@ -0,0 +1,236 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBExpressionOptions { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBExpressionOptions(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBExpressionOptions obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBExpressionOptions(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBExpressionOptions() { + this(lldbJNI.new_SBExpressionOptions__SWIG_0(), true); + } + + public SBExpressionOptions(SBExpressionOptions rhs) { + this(lldbJNI.new_SBExpressionOptions__SWIG_1(SBExpressionOptions.getCPtr(rhs), rhs), true); + } + + public boolean GetCoerceResultToId() { + return lldbJNI.SBExpressionOptions_GetCoerceResultToId(swigCPtr, this); + } + + public void SetCoerceResultToId(boolean coerce) { + lldbJNI.SBExpressionOptions_SetCoerceResultToId__SWIG_0(swigCPtr, this, coerce); + } + + public void SetCoerceResultToId() { + lldbJNI.SBExpressionOptions_SetCoerceResultToId__SWIG_1(swigCPtr, this); + } + + public boolean GetUnwindOnError() { + return lldbJNI.SBExpressionOptions_GetUnwindOnError(swigCPtr, this); + } + + public void SetUnwindOnError(boolean unwind) { + lldbJNI.SBExpressionOptions_SetUnwindOnError__SWIG_0(swigCPtr, this, unwind); + } + + public void SetUnwindOnError() { + lldbJNI.SBExpressionOptions_SetUnwindOnError__SWIG_1(swigCPtr, this); + } + + public boolean GetIgnoreBreakpoints() { + return lldbJNI.SBExpressionOptions_GetIgnoreBreakpoints(swigCPtr, this); + } + + public void SetIgnoreBreakpoints(boolean ignore) { + lldbJNI.SBExpressionOptions_SetIgnoreBreakpoints__SWIG_0(swigCPtr, this, ignore); + } + + public void SetIgnoreBreakpoints() { + lldbJNI.SBExpressionOptions_SetIgnoreBreakpoints__SWIG_1(swigCPtr, this); + } + + public DynamicValueType GetFetchDynamicValue() { + return DynamicValueType.swigToEnum(lldbJNI.SBExpressionOptions_GetFetchDynamicValue(swigCPtr, this)); + } + + public void SetFetchDynamicValue(DynamicValueType dynamic) { + lldbJNI.SBExpressionOptions_SetFetchDynamicValue__SWIG_0(swigCPtr, this, dynamic.swigValue()); + } + + public void SetFetchDynamicValue() { + lldbJNI.SBExpressionOptions_SetFetchDynamicValue__SWIG_1(swigCPtr, this); + } + + public long GetTimeoutInMicroSeconds() { + return lldbJNI.SBExpressionOptions_GetTimeoutInMicroSeconds(swigCPtr, this); + } + + public void SetTimeoutInMicroSeconds(long timeout) { + lldbJNI.SBExpressionOptions_SetTimeoutInMicroSeconds__SWIG_0(swigCPtr, this, timeout); + } + + public void SetTimeoutInMicroSeconds() { + lldbJNI.SBExpressionOptions_SetTimeoutInMicroSeconds__SWIG_1(swigCPtr, this); + } + + public long GetOneThreadTimeoutInMicroSeconds() { + return lldbJNI.SBExpressionOptions_GetOneThreadTimeoutInMicroSeconds(swigCPtr, this); + } + + public void SetOneThreadTimeoutInMicroSeconds(long timeout) { + lldbJNI.SBExpressionOptions_SetOneThreadTimeoutInMicroSeconds__SWIG_0(swigCPtr, this, timeout); + } + + public void SetOneThreadTimeoutInMicroSeconds() { + lldbJNI.SBExpressionOptions_SetOneThreadTimeoutInMicroSeconds__SWIG_1(swigCPtr, this); + } + + public boolean GetTryAllThreads() { + return lldbJNI.SBExpressionOptions_GetTryAllThreads(swigCPtr, this); + } + + public void SetTryAllThreads(boolean run_others) { + lldbJNI.SBExpressionOptions_SetTryAllThreads__SWIG_0(swigCPtr, this, run_others); + } + + public void SetTryAllThreads() { + lldbJNI.SBExpressionOptions_SetTryAllThreads__SWIG_1(swigCPtr, this); + } + + public boolean GetStopOthers() { + return lldbJNI.SBExpressionOptions_GetStopOthers(swigCPtr, this); + } + + public void SetStopOthers(boolean stop_others) { + lldbJNI.SBExpressionOptions_SetStopOthers__SWIG_0(swigCPtr, this, stop_others); + } + + public void SetStopOthers() { + lldbJNI.SBExpressionOptions_SetStopOthers__SWIG_1(swigCPtr, this); + } + + public boolean GetTrapExceptions() { + return lldbJNI.SBExpressionOptions_GetTrapExceptions(swigCPtr, this); + } + + public void SetTrapExceptions(boolean trap_exceptions) { + lldbJNI.SBExpressionOptions_SetTrapExceptions__SWIG_0(swigCPtr, this, trap_exceptions); + } + + public void SetTrapExceptions() { + lldbJNI.SBExpressionOptions_SetTrapExceptions__SWIG_1(swigCPtr, this); + } + + public void SetLanguage(LanguageType language) { + lldbJNI.SBExpressionOptions_SetLanguage(swigCPtr, this, language.swigValue()); + } + + public boolean GetGenerateDebugInfo() { + return lldbJNI.SBExpressionOptions_GetGenerateDebugInfo(swigCPtr, this); + } + + public void SetGenerateDebugInfo(boolean b) { + lldbJNI.SBExpressionOptions_SetGenerateDebugInfo__SWIG_0(swigCPtr, this, b); + } + + public void SetGenerateDebugInfo() { + lldbJNI.SBExpressionOptions_SetGenerateDebugInfo__SWIG_1(swigCPtr, this); + } + + public boolean GetSuppressPersistentResult() { + return lldbJNI.SBExpressionOptions_GetSuppressPersistentResult(swigCPtr, this); + } + + public void SetSuppressPersistentResult(boolean b) { + lldbJNI.SBExpressionOptions_SetSuppressPersistentResult__SWIG_0(swigCPtr, this, b); + } + + public void SetSuppressPersistentResult() { + lldbJNI.SBExpressionOptions_SetSuppressPersistentResult__SWIG_1(swigCPtr, this); + } + + public String GetPrefix() { + return lldbJNI.SBExpressionOptions_GetPrefix(swigCPtr, this); + } + + public void SetPrefix(String prefix) { + lldbJNI.SBExpressionOptions_SetPrefix(swigCPtr, this, prefix); + } + + public void SetAutoApplyFixIts(boolean b) { + lldbJNI.SBExpressionOptions_SetAutoApplyFixIts__SWIG_0(swigCPtr, this, b); + } + + public void SetAutoApplyFixIts() { + lldbJNI.SBExpressionOptions_SetAutoApplyFixIts__SWIG_1(swigCPtr, this); + } + + public boolean GetAutoApplyFixIts() { + return lldbJNI.SBExpressionOptions_GetAutoApplyFixIts(swigCPtr, this); + } + + public void SetRetriesWithFixIts(java.math.BigInteger retries) { + lldbJNI.SBExpressionOptions_SetRetriesWithFixIts(swigCPtr, this, retries); + } + + public java.math.BigInteger GetRetriesWithFixIts() { + return lldbJNI.SBExpressionOptions_GetRetriesWithFixIts(swigCPtr, this); + } + + public boolean GetTopLevel() { + return lldbJNI.SBExpressionOptions_GetTopLevel(swigCPtr, this); + } + + public void SetTopLevel(boolean b) { + lldbJNI.SBExpressionOptions_SetTopLevel__SWIG_0(swigCPtr, this, b); + } + + public void SetTopLevel() { + lldbJNI.SBExpressionOptions_SetTopLevel__SWIG_1(swigCPtr, this); + } + + public boolean GetAllowJIT() { + return lldbJNI.SBExpressionOptions_GetAllowJIT(swigCPtr, this); + } + + public void SetAllowJIT(boolean allow) { + lldbJNI.SBExpressionOptions_SetAllowJIT(swigCPtr, this, allow); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFile.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFile.java new file mode 100644 index 0000000000..f15eae3cd0 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFile.java @@ -0,0 +1,92 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBFile { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBFile(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBFile obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBFile(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBFile() { + this(lldbJNI.new_SBFile__SWIG_0(), true); + } + + public SBFile(int fd, String mode, boolean transfer_ownership) { + this(lldbJNI.new_SBFile__SWIG_1(fd, mode, transfer_ownership), true); + } + + public SBFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t file) { + this(lldbJNI.new_SBFile__SWIG_2(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(file)), true); + } + + public static SBFile MakeBorrowed(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + return new SBFile(lldbJNI.SBFile_MakeBorrowed(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)), true); + } + + public static SBFile MakeForcingIOMethods(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t FORCE_IO_METHODS) { + return new SBFile(lldbJNI.SBFile_MakeForcingIOMethods(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(FORCE_IO_METHODS)), true); + } + + public static SBFile MakeBorrowedForcingIOMethods(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED_FORCE_IO_METHODS) { + return new SBFile(lldbJNI.SBFile_MakeBorrowedForcingIOMethods(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED_FORCE_IO_METHODS)), true); + } + + public SBError Read(SWIGTYPE_p_unsigned_char buf, long num_bytes, SWIGTYPE_p_size_t OUTPUT) { + return new SBError(lldbJNI.SBFile_Read(swigCPtr, this, SWIGTYPE_p_unsigned_char.getCPtr(buf), num_bytes, SWIGTYPE_p_size_t.getCPtr(OUTPUT)), true); + } + + public SBError Write(SWIGTYPE_p_unsigned_char buf, long num_bytes, SWIGTYPE_p_size_t OUTPUT) { + return new SBError(lldbJNI.SBFile_Write(swigCPtr, this, SWIGTYPE_p_unsigned_char.getCPtr(buf), num_bytes, SWIGTYPE_p_size_t.getCPtr(OUTPUT)), true); + } + + public void Flush() { + lldbJNI.SBFile_Flush(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBFile_IsValid(swigCPtr, this); + } + + public SBError Close() { + return new SBError(lldbJNI.SBFile_Close(swigCPtr, this), true); + } + + public SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t GetFile() { + return new SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t(lldbJNI.SBFile_GetFile(swigCPtr, this), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpec.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpec.java new file mode 100644 index 0000000000..ad4165caf2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpec.java @@ -0,0 +1,108 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBFileSpec { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBFileSpec(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBFileSpec obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBFileSpec(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBFileSpec() { + this(lldbJNI.new_SBFileSpec__SWIG_0(), true); + } + + public SBFileSpec(SBFileSpec rhs) { + this(lldbJNI.new_SBFileSpec__SWIG_1(SBFileSpec.getCPtr(rhs), rhs), true); + } + + public SBFileSpec(String path) { + this(lldbJNI.new_SBFileSpec__SWIG_2(path), true); + } + + public SBFileSpec(String path, boolean resolve) { + this(lldbJNI.new_SBFileSpec__SWIG_3(path, resolve), true); + } + + public boolean IsValid() { + return lldbJNI.SBFileSpec_IsValid(swigCPtr, this); + } + + public boolean Exists() { + return lldbJNI.SBFileSpec_Exists(swigCPtr, this); + } + + public boolean ResolveExecutableLocation() { + return lldbJNI.SBFileSpec_ResolveExecutableLocation(swigCPtr, this); + } + + public String GetFilename() { + return lldbJNI.SBFileSpec_GetFilename(swigCPtr, this); + } + + public String GetDirectory() { + return lldbJNI.SBFileSpec_GetDirectory(swigCPtr, this); + } + + public void SetFilename(String filename) { + lldbJNI.SBFileSpec_SetFilename(swigCPtr, this, filename); + } + + public void SetDirectory(String directory) { + lldbJNI.SBFileSpec_SetDirectory(swigCPtr, this, directory); + } + + public long GetPath(String dst_path, long dst_len) { + return lldbJNI.SBFileSpec_GetPath(swigCPtr, this, dst_path, dst_len); + } + + public static int ResolvePath(String src_path, String dst_path, long dst_len) { + return lldbJNI.SBFileSpec_ResolvePath(src_path, dst_path, dst_len); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBFileSpec_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void AppendPathComponent(String file_or_directory) { + lldbJNI.SBFileSpec_AppendPathComponent(swigCPtr, this, file_or_directory); + } + + public String __str__() { + return lldbJNI.SBFileSpec___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpecList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpecList.java new file mode 100644 index 0000000000..add40ea8e5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFileSpecList.java @@ -0,0 +1,80 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBFileSpecList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBFileSpecList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBFileSpecList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBFileSpecList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBFileSpecList() { + this(lldbJNI.new_SBFileSpecList__SWIG_0(), true); + } + + public SBFileSpecList(SBFileSpecList rhs) { + this(lldbJNI.new_SBFileSpecList__SWIG_1(SBFileSpecList.getCPtr(rhs), rhs), true); + } + + public long GetSize() { + return lldbJNI.SBFileSpecList_GetSize(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBFileSpecList_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void Append(SBFileSpec sb_file) { + lldbJNI.SBFileSpecList_Append(swigCPtr, this, SBFileSpec.getCPtr(sb_file), sb_file); + } + + public boolean AppendIfUnique(SBFileSpec sb_file) { + return lldbJNI.SBFileSpecList_AppendIfUnique(swigCPtr, this, SBFileSpec.getCPtr(sb_file), sb_file); + } + + public void Clear() { + lldbJNI.SBFileSpecList_Clear(swigCPtr, this); + } + + public long FindFileIndex(long idx, SBFileSpec sb_file, boolean full) { + return lldbJNI.SBFileSpecList_FindFileIndex(swigCPtr, this, idx, SBFileSpec.getCPtr(sb_file), sb_file, full); + } + + public SBFileSpec GetFileSpecAtIndex(long idx) { + return new SBFileSpec(lldbJNI.SBFileSpecList_GetFileSpecAtIndex(swigCPtr, this, idx), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFrame.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFrame.java new file mode 100644 index 0000000000..afee3cd491 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFrame.java @@ -0,0 +1,220 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBFrame { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBFrame(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBFrame obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBFrame(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBFrame() { + this(lldbJNI.new_SBFrame__SWIG_0(), true); + } + + public SBFrame(SBFrame rhs) { + this(lldbJNI.new_SBFrame__SWIG_1(SBFrame.getCPtr(rhs), rhs), true); + } + + public boolean IsEqual(SBFrame rhs) { + return lldbJNI.SBFrame_IsEqual(swigCPtr, this, SBFrame.getCPtr(rhs), rhs); + } + + public boolean IsValid() { + return lldbJNI.SBFrame_IsValid(swigCPtr, this); + } + + public long GetFrameID() { + return lldbJNI.SBFrame_GetFrameID(swigCPtr, this); + } + + public java.math.BigInteger GetCFA() { + return lldbJNI.SBFrame_GetCFA(swigCPtr, this); + } + + public java.math.BigInteger GetPC() { + return lldbJNI.SBFrame_GetPC(swigCPtr, this); + } + + public boolean SetPC(java.math.BigInteger new_pc) { + return lldbJNI.SBFrame_SetPC(swigCPtr, this, new_pc); + } + + public java.math.BigInteger GetSP() { + return lldbJNI.SBFrame_GetSP(swigCPtr, this); + } + + public java.math.BigInteger GetFP() { + return lldbJNI.SBFrame_GetFP(swigCPtr, this); + } + + public SBAddress GetPCAddress() { + return new SBAddress(lldbJNI.SBFrame_GetPCAddress(swigCPtr, this), true); + } + + public SBSymbolContext GetSymbolContext(long resolve_scope) { + return new SBSymbolContext(lldbJNI.SBFrame_GetSymbolContext(swigCPtr, this, resolve_scope), true); + } + + public SBModule GetModule() { + return new SBModule(lldbJNI.SBFrame_GetModule(swigCPtr, this), true); + } + + public SBCompileUnit GetCompileUnit() { + return new SBCompileUnit(lldbJNI.SBFrame_GetCompileUnit(swigCPtr, this), true); + } + + public SBFunction GetFunction() { + return new SBFunction(lldbJNI.SBFrame_GetFunction(swigCPtr, this), true); + } + + public SBSymbol GetSymbol() { + return new SBSymbol(lldbJNI.SBFrame_GetSymbol(swigCPtr, this), true); + } + + public SBBlock GetBlock() { + return new SBBlock(lldbJNI.SBFrame_GetBlock(swigCPtr, this), true); + } + + public String GetFunctionName() { + return lldbJNI.SBFrame_GetFunctionName__SWIG_0(swigCPtr, this); + } + + public String GetDisplayFunctionName() { + return lldbJNI.SBFrame_GetDisplayFunctionName(swigCPtr, this); + } + + public LanguageType GuessLanguage() { + return LanguageType.swigToEnum(lldbJNI.SBFrame_GuessLanguage(swigCPtr, this)); + } + + public boolean IsInlined() { + return lldbJNI.SBFrame_IsInlined__SWIG_0(swigCPtr, this); + } + + public boolean IsArtificial() { + return lldbJNI.SBFrame_IsArtificial__SWIG_0(swigCPtr, this); + } + + public SBValue EvaluateExpression(String expr) { + return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_0(swigCPtr, this, expr), true); + } + + public SBValue EvaluateExpression(String expr, DynamicValueType use_dynamic) { + return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_1(swigCPtr, this, expr, use_dynamic.swigValue()), true); + } + + public SBValue EvaluateExpression(String expr, DynamicValueType use_dynamic, boolean unwind_on_error) { + return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_2(swigCPtr, this, expr, use_dynamic.swigValue(), unwind_on_error), true); + } + + public SBValue EvaluateExpression(String expr, SBExpressionOptions options) { + return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_3(swigCPtr, this, expr, SBExpressionOptions.getCPtr(options), options), true); + } + + public SBBlock GetFrameBlock() { + return new SBBlock(lldbJNI.SBFrame_GetFrameBlock(swigCPtr, this), true); + } + + public SBLineEntry GetLineEntry() { + return new SBLineEntry(lldbJNI.SBFrame_GetLineEntry(swigCPtr, this), true); + } + + public SBThread GetThread() { + return new SBThread(lldbJNI.SBFrame_GetThread(swigCPtr, this), true); + } + + public String Disassemble() { + return lldbJNI.SBFrame_Disassemble(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBFrame_Clear(swigCPtr, this); + } + + public SBValueList GetVariables(boolean arguments, boolean locals, boolean statics, boolean in_scope_only) { + return new SBValueList(lldbJNI.SBFrame_GetVariables__SWIG_0(swigCPtr, this, arguments, locals, statics, in_scope_only), true); + } + + public SBValueList GetVariables(boolean arguments, boolean locals, boolean statics, boolean in_scope_only, DynamicValueType use_dynamic) { + return new SBValueList(lldbJNI.SBFrame_GetVariables__SWIG_1(swigCPtr, this, arguments, locals, statics, in_scope_only, use_dynamic.swigValue()), true); + } + + public SBValueList GetVariables(SBVariablesOptions options) { + return new SBValueList(lldbJNI.SBFrame_GetVariables__SWIG_2(swigCPtr, this, SBVariablesOptions.getCPtr(options), options), true); + } + + public SBValueList GetRegisters() { + return new SBValueList(lldbJNI.SBFrame_GetRegisters(swigCPtr, this), true); + } + + public SBValue FindVariable(String var_name) { + return new SBValue(lldbJNI.SBFrame_FindVariable__SWIG_0(swigCPtr, this, var_name), true); + } + + public SBValue FindVariable(String var_name, DynamicValueType use_dynamic) { + return new SBValue(lldbJNI.SBFrame_FindVariable__SWIG_1(swigCPtr, this, var_name, use_dynamic.swigValue()), true); + } + + public SBValue FindRegister(String name) { + return new SBValue(lldbJNI.SBFrame_FindRegister(swigCPtr, this, name), true); + } + + public SBValue GetValueForVariablePath(String var_path) { + return new SBValue(lldbJNI.SBFrame_GetValueForVariablePath__SWIG_0(swigCPtr, this, var_path), true); + } + + public SBValue GetValueForVariablePath(String var_path, DynamicValueType use_dynamic) { + return new SBValue(lldbJNI.SBFrame_GetValueForVariablePath__SWIG_1(swigCPtr, this, var_path, use_dynamic.swigValue()), true); + } + + public SBValue FindValue(String name, ValueType value_type) { + return new SBValue(lldbJNI.SBFrame_FindValue__SWIG_0(swigCPtr, this, name, value_type.swigValue()), true); + } + + public SBValue FindValue(String name, ValueType value_type, DynamicValueType use_dynamic) { + return new SBValue(lldbJNI.SBFrame_FindValue__SWIG_1(swigCPtr, this, name, value_type.swigValue(), use_dynamic.swigValue()), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBFrame_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBFrame___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFunction.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFunction.java new file mode 100644 index 0000000000..8ece1d6daf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBFunction.java @@ -0,0 +1,116 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBFunction { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBFunction(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBFunction obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBFunction(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBFunction() { + this(lldbJNI.new_SBFunction__SWIG_0(), true); + } + + public SBFunction(SBFunction rhs) { + this(lldbJNI.new_SBFunction__SWIG_1(SBFunction.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBFunction_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBFunction_GetName(swigCPtr, this); + } + + public String GetDisplayName() { + return lldbJNI.SBFunction_GetDisplayName(swigCPtr, this); + } + + public String GetMangledName() { + return lldbJNI.SBFunction_GetMangledName(swigCPtr, this); + } + + public SBInstructionList GetInstructions(SBTarget target) { + return new SBInstructionList(lldbJNI.SBFunction_GetInstructions__SWIG_0(swigCPtr, this, SBTarget.getCPtr(target), target), true); + } + + public SBInstructionList GetInstructions(SBTarget target, String flavor) { + return new SBInstructionList(lldbJNI.SBFunction_GetInstructions__SWIG_1(swigCPtr, this, SBTarget.getCPtr(target), target, flavor), true); + } + + public SBAddress GetStartAddress() { + return new SBAddress(lldbJNI.SBFunction_GetStartAddress(swigCPtr, this), true); + } + + public SBAddress GetEndAddress() { + return new SBAddress(lldbJNI.SBFunction_GetEndAddress(swigCPtr, this), true); + } + + public String GetArgumentName(long arg_idx) { + return lldbJNI.SBFunction_GetArgumentName(swigCPtr, this, arg_idx); + } + + public long GetPrologueByteSize() { + return lldbJNI.SBFunction_GetPrologueByteSize(swigCPtr, this); + } + + public SBType GetType() { + return new SBType(lldbJNI.SBFunction_GetType(swigCPtr, this), true); + } + + public SBBlock GetBlock() { + return new SBBlock(lldbJNI.SBFunction_GetBlock(swigCPtr, this), true); + } + + public LanguageType GetLanguage() { + return LanguageType.swigToEnum(lldbJNI.SBFunction_GetLanguage(swigCPtr, this)); + } + + public boolean GetIsOptimized() { + return lldbJNI.SBFunction_GetIsOptimized(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBFunction_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBFunction___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBHostOS.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBHostOS.java new file mode 100644 index 0000000000..e55c629468 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBHostOS.java @@ -0,0 +1,84 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBHostOS { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBHostOS(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBHostOS obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBHostOS(swigCPtr); + } + swigCPtr = 0; + } + } + + public static SBFileSpec GetProgramFileSpec() { + return new SBFileSpec(lldbJNI.SBHostOS_GetProgramFileSpec(), true); + } + + public static SBFileSpec GetLLDBPythonPath() { + return new SBFileSpec(lldbJNI.SBHostOS_GetLLDBPythonPath(), true); + } + + public static SBFileSpec GetLLDBPath(PathType path_type) { + return new SBFileSpec(lldbJNI.SBHostOS_GetLLDBPath(path_type.swigValue()), true); + } + + public static SBFileSpec GetUserHomeDirectory() { + return new SBFileSpec(lldbJNI.SBHostOS_GetUserHomeDirectory(), true); + } + + public static void ThreadCreated(String name) { + lldbJNI.SBHostOS_ThreadCreated(name); + } + + public static SWIGTYPE_p_pthread_t ThreadCreate(String name, SWIGTYPE_p_f_p_void__p_void arg1, SWIGTYPE_p_void thread_arg, SBError err) { + return new SWIGTYPE_p_pthread_t(lldbJNI.SBHostOS_ThreadCreate(name, SWIGTYPE_p_f_p_void__p_void.getCPtr(arg1), SWIGTYPE_p_void.getCPtr(thread_arg), SBError.getCPtr(err), err), true); + } + + public static boolean ThreadCancel(SWIGTYPE_p_pthread_t thread, SBError err) { + return lldbJNI.SBHostOS_ThreadCancel(SWIGTYPE_p_pthread_t.getCPtr(thread), SBError.getCPtr(err), err); + } + + public static boolean ThreadDetach(SWIGTYPE_p_pthread_t thread, SBError err) { + return lldbJNI.SBHostOS_ThreadDetach(SWIGTYPE_p_pthread_t.getCPtr(thread), SBError.getCPtr(err), err); + } + + public static boolean ThreadJoin(SWIGTYPE_p_pthread_t thread, SWIGTYPE_p_p_void result, SBError err) { + return lldbJNI.SBHostOS_ThreadJoin(SWIGTYPE_p_pthread_t.getCPtr(thread), SWIGTYPE_p_p_void.getCPtr(result), SBError.getCPtr(err), err); + } + + public SBHostOS() { + this(lldbJNI.new_SBHostOS(), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstruction.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstruction.java new file mode 100644 index 0000000000..fe2bd80157 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstruction.java @@ -0,0 +1,120 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBInstruction { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBInstruction(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBInstruction obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBInstruction(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBInstruction() { + this(lldbJNI.new_SBInstruction__SWIG_0(), true); + } + + public SBInstruction(SBInstruction rhs) { + this(lldbJNI.new_SBInstruction__SWIG_1(SBInstruction.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBInstruction_IsValid(swigCPtr, this); + } + + public SBAddress GetAddress() { + return new SBAddress(lldbJNI.SBInstruction_GetAddress(swigCPtr, this), true); + } + + public String GetMnemonic(SBTarget target) { + return lldbJNI.SBInstruction_GetMnemonic(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public String GetOperands(SBTarget target) { + return lldbJNI.SBInstruction_GetOperands(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public String GetComment(SBTarget target) { + return lldbJNI.SBInstruction_GetComment(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public SBData GetData(SBTarget target) { + return new SBData(lldbJNI.SBInstruction_GetData(swigCPtr, this, SBTarget.getCPtr(target), target), true); + } + + public long GetByteSize() { + return lldbJNI.SBInstruction_GetByteSize(swigCPtr, this); + } + + public boolean DoesBranch() { + return lldbJNI.SBInstruction_DoesBranch(swigCPtr, this); + } + + public boolean HasDelaySlot() { + return lldbJNI.SBInstruction_HasDelaySlot(swigCPtr, this); + } + + public boolean CanSetBreakpoint() { + return lldbJNI.SBInstruction_CanSetBreakpoint(swigCPtr, this); + } + + public void Print(SBFile out) { + lldbJNI.SBInstruction_Print__SWIG_0(swigCPtr, this, SBFile.getCPtr(out), out); + } + + public void Print(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + lldbJNI.SBInstruction_Print__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBInstruction_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public boolean EmulateWithFrame(SBFrame frame, long evaluate_options) { + return lldbJNI.SBInstruction_EmulateWithFrame(swigCPtr, this, SBFrame.getCPtr(frame), frame, evaluate_options); + } + + public boolean DumpEmulation(String triple) { + return lldbJNI.SBInstruction_DumpEmulation(swigCPtr, this, triple); + } + + public boolean TestEmulation(SBStream output_stream, String test_file) { + return lldbJNI.SBInstruction_TestEmulation(swigCPtr, this, SBStream.getCPtr(output_stream), output_stream, test_file); + } + + public String __str__() { + return lldbJNI.SBInstruction___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstructionList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstructionList.java new file mode 100644 index 0000000000..bb09539626 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBInstructionList.java @@ -0,0 +1,96 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBInstructionList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBInstructionList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBInstructionList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBInstructionList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBInstructionList() { + this(lldbJNI.new_SBInstructionList__SWIG_0(), true); + } + + public SBInstructionList(SBInstructionList rhs) { + this(lldbJNI.new_SBInstructionList__SWIG_1(SBInstructionList.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBInstructionList_IsValid(swigCPtr, this); + } + + public long GetSize() { + return lldbJNI.SBInstructionList_GetSize(swigCPtr, this); + } + + public SBInstruction GetInstructionAtIndex(long idx) { + return new SBInstruction(lldbJNI.SBInstructionList_GetInstructionAtIndex(swigCPtr, this, idx), true); + } + + public long GetInstructionsCount(SBAddress start, SBAddress end, boolean canSetBreakpoint) { + return lldbJNI.SBInstructionList_GetInstructionsCount(swigCPtr, this, SBAddress.getCPtr(start), start, SBAddress.getCPtr(end), end, canSetBreakpoint); + } + + public void Clear() { + lldbJNI.SBInstructionList_Clear(swigCPtr, this); + } + + public void AppendInstruction(SBInstruction inst) { + lldbJNI.SBInstructionList_AppendInstruction(swigCPtr, this, SBInstruction.getCPtr(inst), inst); + } + + public void Print(SBFile out) { + lldbJNI.SBInstructionList_Print__SWIG_0(swigCPtr, this, SBFile.getCPtr(out), out); + } + + public void Print(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + lldbJNI.SBInstructionList_Print__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBInstructionList_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public boolean DumpEmulationForAllInstructions(String triple) { + return lldbJNI.SBInstructionList_DumpEmulationForAllInstructions(swigCPtr, this, triple); + } + + public String __str__() { + return lldbJNI.SBInstructionList___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLanguageRuntime.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLanguageRuntime.java new file mode 100644 index 0000000000..e8e6383c4d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLanguageRuntime.java @@ -0,0 +1,56 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBLanguageRuntime { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBLanguageRuntime(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBLanguageRuntime obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBLanguageRuntime(swigCPtr); + } + swigCPtr = 0; + } + } + + public static LanguageType GetLanguageTypeFromString(String string) { + return LanguageType.swigToEnum(lldbJNI.SBLanguageRuntime_GetLanguageTypeFromString(string)); + } + + public static String GetNameForLanguageType(LanguageType language) { + return lldbJNI.SBLanguageRuntime_GetNameForLanguageType(language.swigValue()); + } + + public SBLanguageRuntime() { + this(lldbJNI.new_SBLanguageRuntime(), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLaunchInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLaunchInfo.java new file mode 100644 index 0000000000..138fe76688 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLaunchInfo.java @@ -0,0 +1,223 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SBLaunchInfo { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBLaunchInfo(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBLaunchInfo obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBLaunchInfo(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBLaunchInfo(String[] argv) { + this(lldbJNI.new_SBLaunchInfo(argv), true); + } + + public java.math.BigInteger GetProcessID() { + return lldbJNI.SBLaunchInfo_GetProcessID(swigCPtr, this); + } + + public long GetUserID() { + return lldbJNI.SBLaunchInfo_GetUserID(swigCPtr, this); + } + + public long GetGroupID() { + return lldbJNI.SBLaunchInfo_GetGroupID(swigCPtr, this); + } + + public boolean UserIDIsValid() { + return lldbJNI.SBLaunchInfo_UserIDIsValid(swigCPtr, this); + } + + public boolean GroupIDIsValid() { + return lldbJNI.SBLaunchInfo_GroupIDIsValid(swigCPtr, this); + } + + public void SetUserID(long uid) { + lldbJNI.SBLaunchInfo_SetUserID(swigCPtr, this, uid); + } + + public void SetGroupID(long gid) { + lldbJNI.SBLaunchInfo_SetGroupID(swigCPtr, this, gid); + } + + public SBFileSpec GetExecutableFile() { + return new SBFileSpec(lldbJNI.SBLaunchInfo_GetExecutableFile(swigCPtr, this), true); + } + + public void SetExecutableFile(SBFileSpec exe_file, boolean add_as_first_arg) { + lldbJNI.SBLaunchInfo_SetExecutableFile(swigCPtr, this, SBFileSpec.getCPtr(exe_file), exe_file, add_as_first_arg); + } + + public SBListener GetListener() { + return new SBListener(lldbJNI.SBLaunchInfo_GetListener(swigCPtr, this), true); + } + + public void SetListener(SBListener listener) { + lldbJNI.SBLaunchInfo_SetListener(swigCPtr, this, SBListener.getCPtr(listener), listener); + } + + public long GetNumArguments() { + return lldbJNI.SBLaunchInfo_GetNumArguments(swigCPtr, this); + } + + public String GetArgumentAtIndex(long idx) { + return lldbJNI.SBLaunchInfo_GetArgumentAtIndex(swigCPtr, this, idx); + } + + public void SetArguments(String[] argv, boolean append) { + lldbJNI.SBLaunchInfo_SetArguments(swigCPtr, this, argv, append); + } + + public long GetNumEnvironmentEntries() { + return lldbJNI.SBLaunchInfo_GetNumEnvironmentEntries(swigCPtr, this); + } + + public String GetEnvironmentEntryAtIndex(long idx) { + return lldbJNI.SBLaunchInfo_GetEnvironmentEntryAtIndex(swigCPtr, this, idx); + } + + public void SetEnvironmentEntries(String[] envp, boolean append) { + lldbJNI.SBLaunchInfo_SetEnvironmentEntries(swigCPtr, this, envp, append); + } + + public void SetEnvironment(SBEnvironment env, boolean append) { + lldbJNI.SBLaunchInfo_SetEnvironment(swigCPtr, this, SBEnvironment.getCPtr(env), env, append); + } + + public SBEnvironment GetEnvironment() { + return new SBEnvironment(lldbJNI.SBLaunchInfo_GetEnvironment(swigCPtr, this), true); + } + + public void Clear() { + lldbJNI.SBLaunchInfo_Clear(swigCPtr, this); + } + + public String GetWorkingDirectory() { + return lldbJNI.SBLaunchInfo_GetWorkingDirectory(swigCPtr, this); + } + + public void SetWorkingDirectory(String working_dir) { + lldbJNI.SBLaunchInfo_SetWorkingDirectory(swigCPtr, this, working_dir); + } + + public long GetLaunchFlags() { + return lldbJNI.SBLaunchInfo_GetLaunchFlags(swigCPtr, this); + } + + public void SetLaunchFlags(long flags) { + lldbJNI.SBLaunchInfo_SetLaunchFlags(swigCPtr, this, flags); + } + + public String GetProcessPluginName() { + return lldbJNI.SBLaunchInfo_GetProcessPluginName(swigCPtr, this); + } + + public void SetProcessPluginName(String plugin_name) { + lldbJNI.SBLaunchInfo_SetProcessPluginName(swigCPtr, this, plugin_name); + } + + public String GetShell() { + return lldbJNI.SBLaunchInfo_GetShell(swigCPtr, this); + } + + public void SetShell(String path) { + lldbJNI.SBLaunchInfo_SetShell(swigCPtr, this, path); + } + + public boolean GetShellExpandArguments() { + return lldbJNI.SBLaunchInfo_GetShellExpandArguments(swigCPtr, this); + } + + public void SetShellExpandArguments(boolean expand) { + lldbJNI.SBLaunchInfo_SetShellExpandArguments(swigCPtr, this, expand); + } + + public long GetResumeCount() { + return lldbJNI.SBLaunchInfo_GetResumeCount(swigCPtr, this); + } + + public void SetResumeCount(long c) { + lldbJNI.SBLaunchInfo_SetResumeCount(swigCPtr, this, c); + } + + public boolean AddCloseFileAction(int fd) { + return lldbJNI.SBLaunchInfo_AddCloseFileAction(swigCPtr, this, fd); + } + + public boolean AddDuplicateFileAction(int fd, int dup_fd) { + return lldbJNI.SBLaunchInfo_AddDuplicateFileAction(swigCPtr, this, fd, dup_fd); + } + + public boolean AddOpenFileAction(int fd, String path, boolean read, boolean write) { + return lldbJNI.SBLaunchInfo_AddOpenFileAction(swigCPtr, this, fd, path, read, write); + } + + public boolean AddSuppressFileAction(int fd, boolean read, boolean write) { + return lldbJNI.SBLaunchInfo_AddSuppressFileAction(swigCPtr, this, fd, read, write); + } + + public void SetLaunchEventData(String data) { + lldbJNI.SBLaunchInfo_SetLaunchEventData(swigCPtr, this, data); + } + + public String GetLaunchEventData() { + return lldbJNI.SBLaunchInfo_GetLaunchEventData(swigCPtr, this); + } + + public boolean GetDetachOnError() { + return lldbJNI.SBLaunchInfo_GetDetachOnError(swigCPtr, this); + } + + public void SetDetachOnError(boolean enable) { + lldbJNI.SBLaunchInfo_SetDetachOnError(swigCPtr, this, enable); + } + + public String GetScriptedProcessClassName() { + return lldbJNI.SBLaunchInfo_GetScriptedProcessClassName(swigCPtr, this); + } + + public void SetScriptedProcessClassName(String class_name) { + lldbJNI.SBLaunchInfo_SetScriptedProcessClassName(swigCPtr, this, class_name); + } + + public SBStructuredData GetScriptedProcessDictionary() { + return new SBStructuredData(lldbJNI.SBLaunchInfo_GetScriptedProcessDictionary(swigCPtr, this), true); + } + + public void SetScriptedProcessDictionary(SBStructuredData dict) { + lldbJNI.SBLaunchInfo_SetScriptedProcessDictionary(swigCPtr, this, SBStructuredData.getCPtr(dict), dict); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLineEntry.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLineEntry.java new file mode 100644 index 0000000000..f77d429c76 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBLineEntry.java @@ -0,0 +1,96 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBLineEntry { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBLineEntry(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBLineEntry obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBLineEntry(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBLineEntry() { + this(lldbJNI.new_SBLineEntry__SWIG_0(), true); + } + + public SBLineEntry(SBLineEntry rhs) { + this(lldbJNI.new_SBLineEntry__SWIG_1(SBLineEntry.getCPtr(rhs), rhs), true); + } + + public SBAddress GetStartAddress() { + return new SBAddress(lldbJNI.SBLineEntry_GetStartAddress(swigCPtr, this), true); + } + + public SBAddress GetEndAddress() { + return new SBAddress(lldbJNI.SBLineEntry_GetEndAddress(swigCPtr, this), true); + } + + public boolean IsValid() { + return lldbJNI.SBLineEntry_IsValid(swigCPtr, this); + } + + public SBFileSpec GetFileSpec() { + return new SBFileSpec(lldbJNI.SBLineEntry_GetFileSpec(swigCPtr, this), true); + } + + public long GetLine() { + return lldbJNI.SBLineEntry_GetLine(swigCPtr, this); + } + + public long GetColumn() { + return lldbJNI.SBLineEntry_GetColumn(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBLineEntry_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void SetFileSpec(SBFileSpec filespec) { + lldbJNI.SBLineEntry_SetFileSpec(swigCPtr, this, SBFileSpec.getCPtr(filespec), filespec); + } + + public void SetLine(long line) { + lldbJNI.SBLineEntry_SetLine(swigCPtr, this, line); + } + + public void SetColumn(long column) { + lldbJNI.SBLineEntry_SetColumn(swigCPtr, this, column); + } + + public String __str__() { + return lldbJNI.SBLineEntry___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBListener.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBListener.java new file mode 100644 index 0000000000..4705e7f01a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBListener.java @@ -0,0 +1,124 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBListener { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBListener(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBListener obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBListener(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBListener() { + this(lldbJNI.new_SBListener__SWIG_0(), true); + } + + public SBListener(String name) { + this(lldbJNI.new_SBListener__SWIG_1(name), true); + } + + public SBListener(SBListener rhs) { + this(lldbJNI.new_SBListener__SWIG_2(SBListener.getCPtr(rhs), rhs), true); + } + + public void AddEvent(SBEvent event) { + lldbJNI.SBListener_AddEvent(swigCPtr, this, SBEvent.getCPtr(event), event); + } + + public void Clear() { + lldbJNI.SBListener_Clear(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBListener_IsValid(swigCPtr, this); + } + + public long StartListeningForEventClass(SBDebugger debugger, String broadcaster_class, long event_mask) { + return lldbJNI.SBListener_StartListeningForEventClass(swigCPtr, this, SBDebugger.getCPtr(debugger), debugger, broadcaster_class, event_mask); + } + + public long StopListeningForEventClass(SBDebugger debugger, String broadcaster_class, long event_mask) { + return lldbJNI.SBListener_StopListeningForEventClass(swigCPtr, this, SBDebugger.getCPtr(debugger), debugger, broadcaster_class, event_mask); + } + + public long StartListeningForEvents(SBBroadcaster broadcaster, long event_mask) { + return lldbJNI.SBListener_StartListeningForEvents(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster, event_mask); + } + + public boolean StopListeningForEvents(SBBroadcaster broadcaster, long event_mask) { + return lldbJNI.SBListener_StopListeningForEvents(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster, event_mask); + } + + public boolean WaitForEvent(long num_seconds, SBEvent event) { + return lldbJNI.SBListener_WaitForEvent(swigCPtr, this, num_seconds, SBEvent.getCPtr(event), event); + } + + public boolean WaitForEventForBroadcaster(long num_seconds, SBBroadcaster broadcaster, SBEvent sb_event) { + return lldbJNI.SBListener_WaitForEventForBroadcaster(swigCPtr, this, num_seconds, SBBroadcaster.getCPtr(broadcaster), broadcaster, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean WaitForEventForBroadcasterWithType(long num_seconds, SBBroadcaster broadcaster, long event_type_mask, SBEvent sb_event) { + return lldbJNI.SBListener_WaitForEventForBroadcasterWithType(swigCPtr, this, num_seconds, SBBroadcaster.getCPtr(broadcaster), broadcaster, event_type_mask, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean PeekAtNextEvent(SBEvent sb_event) { + return lldbJNI.SBListener_PeekAtNextEvent(swigCPtr, this, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean PeekAtNextEventForBroadcaster(SBBroadcaster broadcaster, SBEvent sb_event) { + return lldbJNI.SBListener_PeekAtNextEventForBroadcaster(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean PeekAtNextEventForBroadcasterWithType(SBBroadcaster broadcaster, long event_type_mask, SBEvent sb_event) { + return lldbJNI.SBListener_PeekAtNextEventForBroadcasterWithType(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster, event_type_mask, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean GetNextEvent(SBEvent sb_event) { + return lldbJNI.SBListener_GetNextEvent(swigCPtr, this, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean GetNextEventForBroadcaster(SBBroadcaster broadcaster, SBEvent sb_event) { + return lldbJNI.SBListener_GetNextEventForBroadcaster(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean GetNextEventForBroadcasterWithType(SBBroadcaster broadcaster, long event_type_mask, SBEvent sb_event) { + return lldbJNI.SBListener_GetNextEventForBroadcasterWithType(swigCPtr, this, SBBroadcaster.getCPtr(broadcaster), broadcaster, event_type_mask, SBEvent.getCPtr(sb_event), sb_event); + } + + public boolean HandleBroadcastEvent(SBEvent event) { + return lldbJNI.SBListener_HandleBroadcastEvent(swigCPtr, this, SBEvent.getCPtr(event), event); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfo.java new file mode 100644 index 0000000000..04f7734dfa --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfo.java @@ -0,0 +1,92 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBMemoryRegionInfo { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBMemoryRegionInfo(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBMemoryRegionInfo obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBMemoryRegionInfo(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBMemoryRegionInfo() { + this(lldbJNI.new_SBMemoryRegionInfo__SWIG_0(), true); + } + + public SBMemoryRegionInfo(SBMemoryRegionInfo rhs) { + this(lldbJNI.new_SBMemoryRegionInfo__SWIG_1(SBMemoryRegionInfo.getCPtr(rhs), rhs), true); + } + + public void Clear() { + lldbJNI.SBMemoryRegionInfo_Clear(swigCPtr, this); + } + + public java.math.BigInteger GetRegionBase() { + return lldbJNI.SBMemoryRegionInfo_GetRegionBase(swigCPtr, this); + } + + public java.math.BigInteger GetRegionEnd() { + return lldbJNI.SBMemoryRegionInfo_GetRegionEnd(swigCPtr, this); + } + + public boolean IsReadable() { + return lldbJNI.SBMemoryRegionInfo_IsReadable(swigCPtr, this); + } + + public boolean IsWritable() { + return lldbJNI.SBMemoryRegionInfo_IsWritable(swigCPtr, this); + } + + public boolean IsExecutable() { + return lldbJNI.SBMemoryRegionInfo_IsExecutable(swigCPtr, this); + } + + public boolean IsMapped() { + return lldbJNI.SBMemoryRegionInfo_IsMapped(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBMemoryRegionInfo_GetName(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBMemoryRegionInfo_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBMemoryRegionInfo___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfoList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfoList.java new file mode 100644 index 0000000000..2df809d115 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBMemoryRegionInfoList.java @@ -0,0 +1,72 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBMemoryRegionInfoList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBMemoryRegionInfoList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBMemoryRegionInfoList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBMemoryRegionInfoList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBMemoryRegionInfoList() { + this(lldbJNI.new_SBMemoryRegionInfoList__SWIG_0(), true); + } + + public SBMemoryRegionInfoList(SBMemoryRegionInfoList rhs) { + this(lldbJNI.new_SBMemoryRegionInfoList__SWIG_1(SBMemoryRegionInfoList.getCPtr(rhs), rhs), true); + } + + public long GetSize() { + return lldbJNI.SBMemoryRegionInfoList_GetSize(swigCPtr, this); + } + + public boolean GetMemoryRegionAtIndex(long idx, SBMemoryRegionInfo region_info) { + return lldbJNI.SBMemoryRegionInfoList_GetMemoryRegionAtIndex(swigCPtr, this, idx, SBMemoryRegionInfo.getCPtr(region_info), region_info); + } + + public void Append(SBMemoryRegionInfo region) { + lldbJNI.SBMemoryRegionInfoList_Append__SWIG_0(swigCPtr, this, SBMemoryRegionInfo.getCPtr(region), region); + } + + public void Append(SBMemoryRegionInfoList region_list) { + lldbJNI.SBMemoryRegionInfoList_Append__SWIG_1(swigCPtr, this, SBMemoryRegionInfoList.getCPtr(region_list), region_list); + } + + public void Clear() { + lldbJNI.SBMemoryRegionInfoList_Clear(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModule.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModule.java new file mode 100644 index 0000000000..790dc7b65e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModule.java @@ -0,0 +1,232 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBModule { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBModule(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBModule obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBModule(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBModule() { + this(lldbJNI.new_SBModule__SWIG_0(), true); + } + + public SBModule(SBModule rhs) { + this(lldbJNI.new_SBModule__SWIG_1(SBModule.getCPtr(rhs), rhs), true); + } + + public SBModule(SBModuleSpec module_spec) { + this(lldbJNI.new_SBModule__SWIG_2(SBModuleSpec.getCPtr(module_spec), module_spec), true); + } + + public SBModule(SBProcess process, java.math.BigInteger header_addr) { + this(lldbJNI.new_SBModule__SWIG_3(SBProcess.getCPtr(process), process, header_addr), true); + } + + public boolean IsValid() { + return lldbJNI.SBModule_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBModule_Clear(swigCPtr, this); + } + + public SBFileSpec GetFileSpec() { + return new SBFileSpec(lldbJNI.SBModule_GetFileSpec(swigCPtr, this), true); + } + + public SBFileSpec GetPlatformFileSpec() { + return new SBFileSpec(lldbJNI.SBModule_GetPlatformFileSpec(swigCPtr, this), true); + } + + public boolean SetPlatformFileSpec(SBFileSpec platform_file) { + return lldbJNI.SBModule_SetPlatformFileSpec(swigCPtr, this, SBFileSpec.getCPtr(platform_file), platform_file); + } + + public SBFileSpec GetRemoteInstallFileSpec() { + return new SBFileSpec(lldbJNI.SBModule_GetRemoteInstallFileSpec(swigCPtr, this), true); + } + + public boolean SetRemoteInstallFileSpec(SBFileSpec file) { + return lldbJNI.SBModule_SetRemoteInstallFileSpec(swigCPtr, this, SBFileSpec.getCPtr(file), file); + } + + public String GetUUIDString() { + return lldbJNI.SBModule_GetUUIDString(swigCPtr, this); + } + + public SBSection FindSection(String sect_name) { + return new SBSection(lldbJNI.SBModule_FindSection(swigCPtr, this, sect_name), true); + } + + public SBAddress ResolveFileAddress(java.math.BigInteger vm_addr) { + return new SBAddress(lldbJNI.SBModule_ResolveFileAddress(swigCPtr, this, vm_addr), true); + } + + public SBSymbolContext ResolveSymbolContextForAddress(SBAddress addr, long resolve_scope) { + return new SBSymbolContext(lldbJNI.SBModule_ResolveSymbolContextForAddress(swigCPtr, this, SBAddress.getCPtr(addr), addr, resolve_scope), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBModule_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public long GetNumCompileUnits() { + return lldbJNI.SBModule_GetNumCompileUnits(swigCPtr, this); + } + + public SBCompileUnit GetCompileUnitAtIndex(long arg0) { + return new SBCompileUnit(lldbJNI.SBModule_GetCompileUnitAtIndex(swigCPtr, this, arg0), true); + } + + public SBSymbolContextList FindCompileUnits(SBFileSpec sb_file_spec) { + return new SBSymbolContextList(lldbJNI.SBModule_FindCompileUnits(swigCPtr, this, SBFileSpec.getCPtr(sb_file_spec), sb_file_spec), true); + } + + public long GetNumSymbols() { + return lldbJNI.SBModule_GetNumSymbols(swigCPtr, this); + } + + public SBSymbol GetSymbolAtIndex(long idx) { + return new SBSymbol(lldbJNI.SBModule_GetSymbolAtIndex(swigCPtr, this, idx), true); + } + + public SBSymbol FindSymbol(String name, SymbolType type) { + return new SBSymbol(lldbJNI.SBModule_FindSymbol__SWIG_0(swigCPtr, this, name, type.swigValue()), true); + } + + public SBSymbol FindSymbol(String name) { + return new SBSymbol(lldbJNI.SBModule_FindSymbol__SWIG_1(swigCPtr, this, name), true); + } + + public SBSymbolContextList FindSymbols(String name, SymbolType type) { + return new SBSymbolContextList(lldbJNI.SBModule_FindSymbols__SWIG_0(swigCPtr, this, name, type.swigValue()), true); + } + + public SBSymbolContextList FindSymbols(String name) { + return new SBSymbolContextList(lldbJNI.SBModule_FindSymbols__SWIG_1(swigCPtr, this, name), true); + } + + public long GetNumSections() { + return lldbJNI.SBModule_GetNumSections(swigCPtr, this); + } + + public SBSection GetSectionAtIndex(long idx) { + return new SBSection(lldbJNI.SBModule_GetSectionAtIndex(swigCPtr, this, idx), true); + } + + public SBSymbolContextList FindFunctions(String name, long name_type_mask) { + return new SBSymbolContextList(lldbJNI.SBModule_FindFunctions__SWIG_0(swigCPtr, this, name, name_type_mask), true); + } + + public SBSymbolContextList FindFunctions(String name) { + return new SBSymbolContextList(lldbJNI.SBModule_FindFunctions__SWIG_1(swigCPtr, this, name), true); + } + + public SBType FindFirstType(String name) { + return new SBType(lldbJNI.SBModule_FindFirstType(swigCPtr, this, name), true); + } + + public SBTypeList FindTypes(String type) { + return new SBTypeList(lldbJNI.SBModule_FindTypes(swigCPtr, this, type), true); + } + + public SBType GetTypeByID(java.math.BigInteger uid) { + return new SBType(lldbJNI.SBModule_GetTypeByID(swigCPtr, this, uid), true); + } + + public SBType GetBasicType(BasicType type) { + return new SBType(lldbJNI.SBModule_GetBasicType(swigCPtr, this, type.swigValue()), true); + } + + public SBTypeList GetTypes(long type_mask) { + return new SBTypeList(lldbJNI.SBModule_GetTypes__SWIG_0(swigCPtr, this, type_mask), true); + } + + public SBTypeList GetTypes() { + return new SBTypeList(lldbJNI.SBModule_GetTypes__SWIG_1(swigCPtr, this), true); + } + + public SBValueList FindGlobalVariables(SBTarget target, String name, long max_matches) { + return new SBValueList(lldbJNI.SBModule_FindGlobalVariables(swigCPtr, this, SBTarget.getCPtr(target), target, name, max_matches), true); + } + + public SBValue FindFirstGlobalVariable(SBTarget target, String name) { + return new SBValue(lldbJNI.SBModule_FindFirstGlobalVariable(swigCPtr, this, SBTarget.getCPtr(target), target, name), true); + } + + public ByteOrder GetByteOrder() { + return ByteOrder.swigToEnum(lldbJNI.SBModule_GetByteOrder(swigCPtr, this)); + } + + public long GetAddressByteSize() { + return lldbJNI.SBModule_GetAddressByteSize(swigCPtr, this); + } + + public String GetTriple() { + return lldbJNI.SBModule_GetTriple(swigCPtr, this); + } + + public long GetVersion(SWIGTYPE_p_unsigned_int versions, long num_versions) { + return lldbJNI.SBModule_GetVersion(swigCPtr, this, SWIGTYPE_p_unsigned_int.getCPtr(versions), num_versions); + } + + public SBFileSpec GetSymbolFileSpec() { + return new SBFileSpec(lldbJNI.SBModule_GetSymbolFileSpec(swigCPtr, this), true); + } + + public SBAddress GetObjectFileHeaderAddress() { + return new SBAddress(lldbJNI.SBModule_GetObjectFileHeaderAddress(swigCPtr, this), true); + } + + public SBAddress GetObjectFileEntryPointAddress() { + return new SBAddress(lldbJNI.SBModule_GetObjectFileEntryPointAddress(swigCPtr, this), true); + } + + public static long GetNumberAllocatedModules() { + return lldbJNI.SBModule_GetNumberAllocatedModules(); + } + + public static void GarbageCollectAllocatedModules() { + lldbJNI.SBModule_GarbageCollectAllocatedModules(); + } + + public String __str__() { + return lldbJNI.SBModule___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpec.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpec.java new file mode 100644 index 0000000000..5f846074a5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpec.java @@ -0,0 +1,121 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBModuleSpec { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBModuleSpec(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBModuleSpec obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBModuleSpec(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBModuleSpec() { + this(lldbJNI.new_SBModuleSpec__SWIG_0(), true); + } + + public SBModuleSpec(SBModuleSpec rhs) { + this(lldbJNI.new_SBModuleSpec__SWIG_1(SBModuleSpec.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBModuleSpec_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBModuleSpec_Clear(swigCPtr, this); + } + + public SBFileSpec GetFileSpec() { + return new SBFileSpec(lldbJNI.SBModuleSpec_GetFileSpec(swigCPtr, this), true); + } + + public void SetFileSpec(SBFileSpec fspec) { + lldbJNI.SBModuleSpec_SetFileSpec(swigCPtr, this, SBFileSpec.getCPtr(fspec), fspec); + } + + public SBFileSpec GetPlatformFileSpec() { + return new SBFileSpec(lldbJNI.SBModuleSpec_GetPlatformFileSpec(swigCPtr, this), true); + } + + public void SetPlatformFileSpec(SBFileSpec fspec) { + lldbJNI.SBModuleSpec_SetPlatformFileSpec(swigCPtr, this, SBFileSpec.getCPtr(fspec), fspec); + } + + public SBFileSpec GetSymbolFileSpec() { + return new SBFileSpec(lldbJNI.SBModuleSpec_GetSymbolFileSpec(swigCPtr, this), true); + } + + public void SetSymbolFileSpec(SBFileSpec fspec) { + lldbJNI.SBModuleSpec_SetSymbolFileSpec(swigCPtr, this, SBFileSpec.getCPtr(fspec), fspec); + } + + public String GetObjectName() { + return lldbJNI.SBModuleSpec_GetObjectName(swigCPtr, this); + } + + public void SetObjectName(String name) { + lldbJNI.SBModuleSpec_SetObjectName(swigCPtr, this, name); + } + + public String GetTriple() { + return lldbJNI.SBModuleSpec_GetTriple(swigCPtr, this); + } + + public void SetTriple(String triple) { + lldbJNI.SBModuleSpec_SetTriple(swigCPtr, this, triple); + } + + public SWIGTYPE_p_unsigned_char GetUUIDBytes() { + long cPtr = lldbJNI.SBModuleSpec_GetUUIDBytes(swigCPtr, this); + return (cPtr == 0) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false); + } + + public long GetUUIDLength() { + return lldbJNI.SBModuleSpec_GetUUIDLength(swigCPtr, this); + } + + public boolean SetUUIDBytes(SWIGTYPE_p_unsigned_char uuid, long uuid_len) { + return lldbJNI.SBModuleSpec_SetUUIDBytes(swigCPtr, this, SWIGTYPE_p_unsigned_char.getCPtr(uuid), uuid_len); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBModuleSpec_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBModuleSpec___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpecList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpecList.java new file mode 100644 index 0000000000..9c38436e01 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBModuleSpecList.java @@ -0,0 +1,88 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBModuleSpecList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBModuleSpecList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBModuleSpecList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBModuleSpecList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBModuleSpecList() { + this(lldbJNI.new_SBModuleSpecList__SWIG_0(), true); + } + + public SBModuleSpecList(SBModuleSpecList rhs) { + this(lldbJNI.new_SBModuleSpecList__SWIG_1(SBModuleSpecList.getCPtr(rhs), rhs), true); + } + + public static SBModuleSpecList GetModuleSpecifications(String path) { + return new SBModuleSpecList(lldbJNI.SBModuleSpecList_GetModuleSpecifications(path), true); + } + + public void Append(SBModuleSpec spec) { + lldbJNI.SBModuleSpecList_Append__SWIG_0(swigCPtr, this, SBModuleSpec.getCPtr(spec), spec); + } + + public void Append(SBModuleSpecList spec_list) { + lldbJNI.SBModuleSpecList_Append__SWIG_1(swigCPtr, this, SBModuleSpecList.getCPtr(spec_list), spec_list); + } + + public SBModuleSpec FindFirstMatchingSpec(SBModuleSpec match_spec) { + return new SBModuleSpec(lldbJNI.SBModuleSpecList_FindFirstMatchingSpec(swigCPtr, this, SBModuleSpec.getCPtr(match_spec), match_spec), true); + } + + public SBModuleSpecList FindMatchingSpecs(SBModuleSpec match_spec) { + return new SBModuleSpecList(lldbJNI.SBModuleSpecList_FindMatchingSpecs(swigCPtr, this, SBModuleSpec.getCPtr(match_spec), match_spec), true); + } + + public long GetSize() { + return lldbJNI.SBModuleSpecList_GetSize(swigCPtr, this); + } + + public SBModuleSpec GetSpecAtIndex(long i) { + return new SBModuleSpec(lldbJNI.SBModuleSpecList_GetSpecAtIndex(swigCPtr, this, i), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBModuleSpecList_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBModuleSpecList___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatform.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatform.java new file mode 100644 index 0000000000..def67e395e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatform.java @@ -0,0 +1,164 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBPlatform { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBPlatform(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBPlatform obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBPlatform(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBPlatform() { + this(lldbJNI.new_SBPlatform__SWIG_0(), true); + } + + public SBPlatform(String arg0) { + this(lldbJNI.new_SBPlatform__SWIG_1(arg0), true); + } + + public static SBPlatform GetHostPlatform() { + return new SBPlatform(lldbJNI.SBPlatform_GetHostPlatform(), true); + } + + public boolean IsValid() { + return lldbJNI.SBPlatform_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBPlatform_Clear(swigCPtr, this); + } + + public String GetWorkingDirectory() { + return lldbJNI.SBPlatform_GetWorkingDirectory(swigCPtr, this); + } + + public boolean SetWorkingDirectory(String arg0) { + return lldbJNI.SBPlatform_SetWorkingDirectory(swigCPtr, this, arg0); + } + + public String GetName() { + return lldbJNI.SBPlatform_GetName(swigCPtr, this); + } + + public SBError ConnectRemote(SBPlatformConnectOptions connect_options) { + return new SBError(lldbJNI.SBPlatform_ConnectRemote(swigCPtr, this, SBPlatformConnectOptions.getCPtr(connect_options), connect_options), true); + } + + public void DisconnectRemote() { + lldbJNI.SBPlatform_DisconnectRemote(swigCPtr, this); + } + + public boolean IsConnected() { + return lldbJNI.SBPlatform_IsConnected(swigCPtr, this); + } + + public String GetTriple() { + return lldbJNI.SBPlatform_GetTriple(swigCPtr, this); + } + + public String GetHostname() { + return lldbJNI.SBPlatform_GetHostname(swigCPtr, this); + } + + public String GetOSBuild() { + return lldbJNI.SBPlatform_GetOSBuild(swigCPtr, this); + } + + public String GetOSDescription() { + return lldbJNI.SBPlatform_GetOSDescription(swigCPtr, this); + } + + public long GetOSMajorVersion() { + return lldbJNI.SBPlatform_GetOSMajorVersion(swigCPtr, this); + } + + public long GetOSMinorVersion() { + return lldbJNI.SBPlatform_GetOSMinorVersion(swigCPtr, this); + } + + public long GetOSUpdateVersion() { + return lldbJNI.SBPlatform_GetOSUpdateVersion(swigCPtr, this); + } + + public SBError Get(SBFileSpec src, SBFileSpec dst) { + return new SBError(lldbJNI.SBPlatform_Get(swigCPtr, this, SBFileSpec.getCPtr(src), src, SBFileSpec.getCPtr(dst), dst), true); + } + + public SBError Put(SBFileSpec src, SBFileSpec dst) { + return new SBError(lldbJNI.SBPlatform_Put(swigCPtr, this, SBFileSpec.getCPtr(src), src, SBFileSpec.getCPtr(dst), dst), true); + } + + public SBError Install(SBFileSpec src, SBFileSpec dst) { + return new SBError(lldbJNI.SBPlatform_Install(swigCPtr, this, SBFileSpec.getCPtr(src), src, SBFileSpec.getCPtr(dst), dst), true); + } + + public SBError Run(SBPlatformShellCommand shell_command) { + return new SBError(lldbJNI.SBPlatform_Run(swigCPtr, this, SBPlatformShellCommand.getCPtr(shell_command), shell_command), true); + } + + public SBError Launch(SBLaunchInfo launch_info) { + return new SBError(lldbJNI.SBPlatform_Launch(swigCPtr, this, SBLaunchInfo.getCPtr(launch_info), launch_info), true); + } + + public SBError Kill(java.math.BigInteger pid) { + return new SBError(lldbJNI.SBPlatform_Kill(swigCPtr, this, pid), true); + } + + public SBError MakeDirectory(String path, long file_permissions) { + return new SBError(lldbJNI.SBPlatform_MakeDirectory__SWIG_0(swigCPtr, this, path, file_permissions), true); + } + + public SBError MakeDirectory(String path) { + return new SBError(lldbJNI.SBPlatform_MakeDirectory__SWIG_1(swigCPtr, this, path), true); + } + + public long GetFilePermissions(String path) { + return lldbJNI.SBPlatform_GetFilePermissions(swigCPtr, this, path); + } + + public SBError SetFilePermissions(String path, long file_permissions) { + return new SBError(lldbJNI.SBPlatform_SetFilePermissions(swigCPtr, this, path, file_permissions), true); + } + + public SBUnixSignals GetUnixSignals() { + return new SBUnixSignals(lldbJNI.SBPlatform_GetUnixSignals(swigCPtr, this), true); + } + + public SBEnvironment GetEnvironment() { + return new SBEnvironment(lldbJNI.SBPlatform_GetEnvironment(swigCPtr, this), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformConnectOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformConnectOptions.java new file mode 100644 index 0000000000..e84b5809be --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformConnectOptions.java @@ -0,0 +1,80 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBPlatformConnectOptions { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBPlatformConnectOptions(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBPlatformConnectOptions obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBPlatformConnectOptions(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBPlatformConnectOptions(String url) { + this(lldbJNI.new_SBPlatformConnectOptions__SWIG_0(url), true); + } + + public SBPlatformConnectOptions(SBPlatformConnectOptions rhs) { + this(lldbJNI.new_SBPlatformConnectOptions__SWIG_1(SBPlatformConnectOptions.getCPtr(rhs), rhs), true); + } + + public String GetURL() { + return lldbJNI.SBPlatformConnectOptions_GetURL(swigCPtr, this); + } + + public void SetURL(String url) { + lldbJNI.SBPlatformConnectOptions_SetURL(swigCPtr, this, url); + } + + public boolean GetRsyncEnabled() { + return lldbJNI.SBPlatformConnectOptions_GetRsyncEnabled(swigCPtr, this); + } + + public void EnableRsync(String options, String remote_path_prefix, boolean omit_remote_hostname) { + lldbJNI.SBPlatformConnectOptions_EnableRsync(swigCPtr, this, options, remote_path_prefix, omit_remote_hostname); + } + + public void DisableRsync() { + lldbJNI.SBPlatformConnectOptions_DisableRsync(swigCPtr, this); + } + + public String GetLocalCacheDirectory() { + return lldbJNI.SBPlatformConnectOptions_GetLocalCacheDirectory(swigCPtr, this); + } + + public void SetLocalCacheDirectory(String path) { + lldbJNI.SBPlatformConnectOptions_SetLocalCacheDirectory(swigCPtr, this, path); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformShellCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformShellCommand.java new file mode 100644 index 0000000000..8b5aadba0c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBPlatformShellCommand.java @@ -0,0 +1,104 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBPlatformShellCommand { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBPlatformShellCommand(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBPlatformShellCommand obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBPlatformShellCommand(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBPlatformShellCommand(String shell, String shell_command) { + this(lldbJNI.new_SBPlatformShellCommand__SWIG_0(shell, shell_command), true); + } + + public SBPlatformShellCommand(String shell_command) { + this(lldbJNI.new_SBPlatformShellCommand__SWIG_1(shell_command), true); + } + + public SBPlatformShellCommand(SBPlatformShellCommand rhs) { + this(lldbJNI.new_SBPlatformShellCommand__SWIG_2(SBPlatformShellCommand.getCPtr(rhs), rhs), true); + } + + public void Clear() { + lldbJNI.SBPlatformShellCommand_Clear(swigCPtr, this); + } + + public String GetShell() { + return lldbJNI.SBPlatformShellCommand_GetShell(swigCPtr, this); + } + + public void SetShell(String shell_interpreter) { + lldbJNI.SBPlatformShellCommand_SetShell(swigCPtr, this, shell_interpreter); + } + + public String GetCommand() { + return lldbJNI.SBPlatformShellCommand_GetCommand(swigCPtr, this); + } + + public void SetCommand(String shell_command) { + lldbJNI.SBPlatformShellCommand_SetCommand(swigCPtr, this, shell_command); + } + + public String GetWorkingDirectory() { + return lldbJNI.SBPlatformShellCommand_GetWorkingDirectory(swigCPtr, this); + } + + public void SetWorkingDirectory(String path) { + lldbJNI.SBPlatformShellCommand_SetWorkingDirectory(swigCPtr, this, path); + } + + public long GetTimeoutSeconds() { + return lldbJNI.SBPlatformShellCommand_GetTimeoutSeconds(swigCPtr, this); + } + + public void SetTimeoutSeconds(long sec) { + lldbJNI.SBPlatformShellCommand_SetTimeoutSeconds(swigCPtr, this, sec); + } + + public int GetSignal() { + return lldbJNI.SBPlatformShellCommand_GetSignal(swigCPtr, this); + } + + public int GetStatus() { + return lldbJNI.SBPlatformShellCommand_GetStatus(swigCPtr, this); + } + + public String GetOutput() { + return lldbJNI.SBPlatformShellCommand_GetOutput(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcess.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcess.java new file mode 100644 index 0000000000..9799c4c8b6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcess.java @@ -0,0 +1,358 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SBProcess { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBProcess(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBProcess obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBProcess(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBProcess() { + this(lldbJNI.new_SBProcess__SWIG_0(), true); + } + + public SBProcess(SBProcess rhs) { + this(lldbJNI.new_SBProcess__SWIG_1(SBProcess.getCPtr(rhs), rhs), true); + } + + public static String GetBroadcasterClassName() { + return lldbJNI.SBProcess_GetBroadcasterClassName(); + } + + public String GetPluginName() { + return lldbJNI.SBProcess_GetPluginName(swigCPtr, this); + } + + public String GetShortPluginName() { + return lldbJNI.SBProcess_GetShortPluginName(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBProcess_Clear(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBProcess_IsValid(swigCPtr, this); + } + + public SBTarget GetTarget() { + return new SBTarget(lldbJNI.SBProcess_GetTarget(swigCPtr, this), true); + } + + public ByteOrder GetByteOrder() { + return ByteOrder.swigToEnum(lldbJNI.SBProcess_GetByteOrder(swigCPtr, this)); + } + + public long PutSTDIN(String src, long src_len) { + return lldbJNI.SBProcess_PutSTDIN(swigCPtr, this, src, src_len); + } + + public long GetSTDOUT(String dst, long dst_len) { + return lldbJNI.SBProcess_GetSTDOUT(swigCPtr, this, dst, dst_len); + } + + public long GetSTDERR(String dst, long dst_len) { + return lldbJNI.SBProcess_GetSTDERR(swigCPtr, this, dst, dst_len); + } + + public long GetAsyncProfileData(String dst, long dst_len) { + return lldbJNI.SBProcess_GetAsyncProfileData(swigCPtr, this, dst, dst_len); + } + + public void ReportEventState(SBEvent event, SBFile out) { + lldbJNI.SBProcess_ReportEventState__SWIG_0(swigCPtr, this, SBEvent.getCPtr(event), event, SBFile.getCPtr(out), out); + } + + public void ReportEventState(SBEvent event, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t BORROWED) { + lldbJNI.SBProcess_ReportEventState__SWIG_1(swigCPtr, this, SBEvent.getCPtr(event), event, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(BORROWED)); + } + + public void AppendEventStateReport(SBEvent event, SBCommandReturnObject result) { + lldbJNI.SBProcess_AppendEventStateReport(swigCPtr, this, SBEvent.getCPtr(event), event, SBCommandReturnObject.getCPtr(result), result); + } + + public boolean RemoteAttachToProcessWithID(java.math.BigInteger pid, SBError error) { + return lldbJNI.SBProcess_RemoteAttachToProcessWithID(swigCPtr, this, pid, SBError.getCPtr(error), error); + } + + public boolean RemoteLaunch(String[] argv, String[] envp, String stdin_path, String stdout_path, String stderr_path, String working_directory, long launch_flags, boolean stop_at_entry, SBError error) { + return lldbJNI.SBProcess_RemoteLaunch(swigCPtr, this, argv, envp, stdin_path, stdout_path, stderr_path, working_directory, launch_flags, stop_at_entry, SBError.getCPtr(error), error); + } + + public long GetNumThreads() { + return lldbJNI.SBProcess_GetNumThreads(swigCPtr, this); + } + + public SBThread GetThreadAtIndex(long index) { + return new SBThread(lldbJNI.SBProcess_GetThreadAtIndex(swigCPtr, this, index), true); + } + + public SBThread GetThreadByID(java.math.BigInteger sb_thread_id) { + return new SBThread(lldbJNI.SBProcess_GetThreadByID(swigCPtr, this, sb_thread_id), true); + } + + public SBThread GetThreadByIndexID(long index_id) { + return new SBThread(lldbJNI.SBProcess_GetThreadByIndexID(swigCPtr, this, index_id), true); + } + + public SBThread GetSelectedThread() { + return new SBThread(lldbJNI.SBProcess_GetSelectedThread(swigCPtr, this), true); + } + + public SBThread CreateOSPluginThread(java.math.BigInteger tid, java.math.BigInteger context) { + return new SBThread(lldbJNI.SBProcess_CreateOSPluginThread(swigCPtr, this, tid, context), true); + } + + public boolean SetSelectedThread(SBThread thread) { + return lldbJNI.SBProcess_SetSelectedThread(swigCPtr, this, SBThread.getCPtr(thread), thread); + } + + public boolean SetSelectedThreadByID(java.math.BigInteger tid) { + return lldbJNI.SBProcess_SetSelectedThreadByID(swigCPtr, this, tid); + } + + public boolean SetSelectedThreadByIndexID(long index_id) { + return lldbJNI.SBProcess_SetSelectedThreadByIndexID(swigCPtr, this, index_id); + } + + public long GetNumQueues() { + return lldbJNI.SBProcess_GetNumQueues(swigCPtr, this); + } + + public SBQueue GetQueueAtIndex(long index) { + return new SBQueue(lldbJNI.SBProcess_GetQueueAtIndex(swigCPtr, this, index), true); + } + + public StateType GetState() { + return StateType.swigToEnum(lldbJNI.SBProcess_GetState(swigCPtr, this)); + } + + public int GetExitStatus() { + return lldbJNI.SBProcess_GetExitStatus(swigCPtr, this); + } + + public String GetExitDescription() { + return lldbJNI.SBProcess_GetExitDescription(swigCPtr, this); + } + + public java.math.BigInteger GetProcessID() { + return lldbJNI.SBProcess_GetProcessID(swigCPtr, this); + } + + public long GetUniqueID() { + return lldbJNI.SBProcess_GetUniqueID(swigCPtr, this); + } + + public long GetAddressByteSize() { + return lldbJNI.SBProcess_GetAddressByteSize(swigCPtr, this); + } + + public SBError Destroy() { + return new SBError(lldbJNI.SBProcess_Destroy(swigCPtr, this), true); + } + + public SBError Continue() { + return new SBError(lldbJNI.SBProcess_Continue(swigCPtr, this), true); + } + + public SBError Stop() { + return new SBError(lldbJNI.SBProcess_Stop(swigCPtr, this), true); + } + + public SBError Kill() { + return new SBError(lldbJNI.SBProcess_Kill(swigCPtr, this), true); + } + + public SBError Detach() { + return new SBError(lldbJNI.SBProcess_Detach(swigCPtr, this), true); + } + + public SBError Signal(int signal) { + return new SBError(lldbJNI.SBProcess_Signal(swigCPtr, this, signal), true); + } + + public SBUnixSignals GetUnixSignals() { + return new SBUnixSignals(lldbJNI.SBProcess_GetUnixSignals(swigCPtr, this), true); + } + + public long GetStopID(boolean include_expression_stops) { + return lldbJNI.SBProcess_GetStopID__SWIG_0(swigCPtr, this, include_expression_stops); + } + + public long GetStopID() { + return lldbJNI.SBProcess_GetStopID__SWIG_1(swigCPtr, this); + } + + public void SendAsyncInterrupt() { + lldbJNI.SBProcess_SendAsyncInterrupt(swigCPtr, this); + } + + public long ReadMemory(java.math.BigInteger addr, SWIGTYPE_p_void buf, long size, SBError error) { + return lldbJNI.SBProcess_ReadMemory(swigCPtr, this, addr, SWIGTYPE_p_void.getCPtr(buf), size, SBError.getCPtr(error), error); + } + + public long WriteMemory(java.math.BigInteger addr, SWIGTYPE_p_void buf, long size, SBError error) { + return lldbJNI.SBProcess_WriteMemory(swigCPtr, this, addr, SWIGTYPE_p_void.getCPtr(buf), size, SBError.getCPtr(error), error); + } + + public long ReadCStringFromMemory(java.math.BigInteger addr, SWIGTYPE_p_void char_buf, long size, SBError error) { + return lldbJNI.SBProcess_ReadCStringFromMemory(swigCPtr, this, addr, SWIGTYPE_p_void.getCPtr(char_buf), size, SBError.getCPtr(error), error); + } + + public java.math.BigInteger ReadUnsignedFromMemory(java.math.BigInteger addr, long byte_size, SBError error) { + return lldbJNI.SBProcess_ReadUnsignedFromMemory(swigCPtr, this, addr, byte_size, SBError.getCPtr(error), error); + } + + public java.math.BigInteger ReadPointerFromMemory(java.math.BigInteger addr, SBError error) { + return lldbJNI.SBProcess_ReadPointerFromMemory(swigCPtr, this, addr, SBError.getCPtr(error), error); + } + + public static StateType GetStateFromEvent(SBEvent event) { + return StateType.swigToEnum(lldbJNI.SBProcess_GetStateFromEvent(SBEvent.getCPtr(event), event)); + } + + public static boolean GetRestartedFromEvent(SBEvent event) { + return lldbJNI.SBProcess_GetRestartedFromEvent(SBEvent.getCPtr(event), event); + } + + public static long GetNumRestartedReasonsFromEvent(SBEvent event) { + return lldbJNI.SBProcess_GetNumRestartedReasonsFromEvent(SBEvent.getCPtr(event), event); + } + + public static String GetRestartedReasonAtIndexFromEvent(SBEvent event, long idx) { + return lldbJNI.SBProcess_GetRestartedReasonAtIndexFromEvent(SBEvent.getCPtr(event), event, idx); + } + + public static SBProcess GetProcessFromEvent(SBEvent event) { + return new SBProcess(lldbJNI.SBProcess_GetProcessFromEvent(SBEvent.getCPtr(event), event), true); + } + + public static boolean GetInterruptedFromEvent(SBEvent event) { + return lldbJNI.SBProcess_GetInterruptedFromEvent(SBEvent.getCPtr(event), event); + } + + public static SBStructuredData GetStructuredDataFromEvent(SBEvent event) { + return new SBStructuredData(lldbJNI.SBProcess_GetStructuredDataFromEvent(SBEvent.getCPtr(event), event), true); + } + + public static boolean EventIsProcessEvent(SBEvent event) { + return lldbJNI.SBProcess_EventIsProcessEvent(SBEvent.getCPtr(event), event); + } + + public static boolean EventIsStructuredDataEvent(SBEvent event) { + return lldbJNI.SBProcess_EventIsStructuredDataEvent(SBEvent.getCPtr(event), event); + } + + public SBBroadcaster GetBroadcaster() { + return new SBBroadcaster(lldbJNI.SBProcess_GetBroadcaster(swigCPtr, this), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBProcess_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public SBStructuredData GetExtendedCrashInformation() { + return new SBStructuredData(lldbJNI.SBProcess_GetExtendedCrashInformation(swigCPtr, this), true); + } + + public long GetNumSupportedHardwareWatchpoints(SBError error) { + return lldbJNI.SBProcess_GetNumSupportedHardwareWatchpoints(swigCPtr, this, SBError.getCPtr(error), error); + } + + public long LoadImage(SBFileSpec image_spec, SBError error) { + return lldbJNI.SBProcess_LoadImage(swigCPtr, this, SBFileSpec.getCPtr(image_spec), image_spec, SBError.getCPtr(error), error); + } + + public long LoadImageUsingPaths(SBFileSpec image_spec, SBStringList paths, SBFileSpec loaded_path, SBError error) { + return lldbJNI.SBProcess_LoadImageUsingPaths(swigCPtr, this, SBFileSpec.getCPtr(image_spec), image_spec, SBStringList.getCPtr(paths), paths, SBFileSpec.getCPtr(loaded_path), loaded_path, SBError.getCPtr(error), error); + } + + public SBError UnloadImage(long image_token) { + return new SBError(lldbJNI.SBProcess_UnloadImage(swigCPtr, this, image_token), true); + } + + public SBError SendEventData(String event_data) { + return new SBError(lldbJNI.SBProcess_SendEventData(swigCPtr, this, event_data), true); + } + + public long GetNumExtendedBacktraceTypes() { + return lldbJNI.SBProcess_GetNumExtendedBacktraceTypes(swigCPtr, this); + } + + public String GetExtendedBacktraceTypeAtIndex(long idx) { + return lldbJNI.SBProcess_GetExtendedBacktraceTypeAtIndex(swigCPtr, this, idx); + } + + public SBThreadCollection GetHistoryThreads(java.math.BigInteger addr) { + return new SBThreadCollection(lldbJNI.SBProcess_GetHistoryThreads(swigCPtr, this, addr), true); + } + + public boolean IsInstrumentationRuntimePresent(InstrumentationRuntimeType type) { + return lldbJNI.SBProcess_IsInstrumentationRuntimePresent(swigCPtr, this, type.swigValue()); + } + + public SBError SaveCore(String file_name) { + return new SBError(lldbJNI.SBProcess_SaveCore(swigCPtr, this, file_name), true); + } + + public SBTrace StartTrace(SBTraceOptions options, SBError error) { + return new SBTrace(lldbJNI.SBProcess_StartTrace(swigCPtr, this, SBTraceOptions.getCPtr(options), options, SBError.getCPtr(error), error), true); + } + + public SBError GetMemoryRegionInfo(java.math.BigInteger load_addr, SBMemoryRegionInfo region_info) { + return new SBError(lldbJNI.SBProcess_GetMemoryRegionInfo(swigCPtr, this, load_addr, SBMemoryRegionInfo.getCPtr(region_info), region_info), true); + } + + public SBMemoryRegionInfoList GetMemoryRegions() { + return new SBMemoryRegionInfoList(lldbJNI.SBProcess_GetMemoryRegions(swigCPtr, this), true); + } + + public SBProcessInfo GetProcessInfo() { + return new SBProcessInfo(lldbJNI.SBProcess_GetProcessInfo(swigCPtr, this), true); + } + + public String __str__() { + return lldbJNI.SBProcess___str__(swigCPtr, this); + } + + public final static int eBroadcastBitStateChanged = 1 << 0; + public final static int eBroadcastBitInterrupt = 1 << 1; + public final static int eBroadcastBitSTDOUT = 1 << 2; + public final static int eBroadcastBitSTDERR = 1 << 3; + public final static int eBroadcastBitProfileData = 1 << 4; + public final static int eBroadcastBitStructuredData = 1 << 5; + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcessInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcessInfo.java new file mode 100644 index 0000000000..4dd9feeb76 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBProcessInfo.java @@ -0,0 +1,104 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBProcessInfo { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBProcessInfo(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBProcessInfo obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBProcessInfo(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBProcessInfo() { + this(lldbJNI.new_SBProcessInfo__SWIG_0(), true); + } + + public SBProcessInfo(SBProcessInfo rhs) { + this(lldbJNI.new_SBProcessInfo__SWIG_1(SBProcessInfo.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBProcessInfo_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBProcessInfo_GetName(swigCPtr, this); + } + + public SBFileSpec GetExecutableFile() { + return new SBFileSpec(lldbJNI.SBProcessInfo_GetExecutableFile(swigCPtr, this), true); + } + + public java.math.BigInteger GetProcessID() { + return lldbJNI.SBProcessInfo_GetProcessID(swigCPtr, this); + } + + public long GetUserID() { + return lldbJNI.SBProcessInfo_GetUserID(swigCPtr, this); + } + + public long GetGroupID() { + return lldbJNI.SBProcessInfo_GetGroupID(swigCPtr, this); + } + + public boolean UserIDIsValid() { + return lldbJNI.SBProcessInfo_UserIDIsValid(swigCPtr, this); + } + + public boolean GroupIDIsValid() { + return lldbJNI.SBProcessInfo_GroupIDIsValid(swigCPtr, this); + } + + public long GetEffectiveUserID() { + return lldbJNI.SBProcessInfo_GetEffectiveUserID(swigCPtr, this); + } + + public long GetEffectiveGroupID() { + return lldbJNI.SBProcessInfo_GetEffectiveGroupID(swigCPtr, this); + } + + public boolean EffectiveUserIDIsValid() { + return lldbJNI.SBProcessInfo_EffectiveUserIDIsValid(swigCPtr, this); + } + + public boolean EffectiveGroupIDIsValid() { + return lldbJNI.SBProcessInfo_EffectiveGroupIDIsValid(swigCPtr, this); + } + + public java.math.BigInteger GetParentProcessID() { + return lldbJNI.SBProcessInfo_GetParentProcessID(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueue.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueue.java new file mode 100644 index 0000000000..e236921a2c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueue.java @@ -0,0 +1,100 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBQueue { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBQueue(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBQueue obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBQueue(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBQueue() { + this(lldbJNI.new_SBQueue__SWIG_0(), true); + } + + public SBQueue(SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t queue_sp) { + this(lldbJNI.new_SBQueue__SWIG_1(SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t.getCPtr(queue_sp)), true); + } + + public boolean IsValid() { + return lldbJNI.SBQueue_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBQueue_Clear(swigCPtr, this); + } + + public SBProcess GetProcess() { + return new SBProcess(lldbJNI.SBQueue_GetProcess(swigCPtr, this), true); + } + + public java.math.BigInteger GetQueueID() { + return lldbJNI.SBQueue_GetQueueID(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBQueue_GetName(swigCPtr, this); + } + + public QueueKind GetKind() { + return QueueKind.swigToEnum(lldbJNI.SBQueue_GetKind(swigCPtr, this)); + } + + public long GetIndexID() { + return lldbJNI.SBQueue_GetIndexID(swigCPtr, this); + } + + public long GetNumThreads() { + return lldbJNI.SBQueue_GetNumThreads(swigCPtr, this); + } + + public SBThread GetThreadAtIndex(long arg0) { + return new SBThread(lldbJNI.SBQueue_GetThreadAtIndex(swigCPtr, this, arg0), true); + } + + public long GetNumPendingItems() { + return lldbJNI.SBQueue_GetNumPendingItems(swigCPtr, this); + } + + public SBQueueItem GetPendingItemAtIndex(long arg0) { + return new SBQueueItem(lldbJNI.SBQueue_GetPendingItemAtIndex(swigCPtr, this, arg0), true); + } + + public long GetNumRunningItems() { + return lldbJNI.SBQueue_GetNumRunningItems(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueueItem.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueueItem.java new file mode 100644 index 0000000000..b44bd7839c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBQueueItem.java @@ -0,0 +1,84 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBQueueItem { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBQueueItem(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBQueueItem obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBQueueItem(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBQueueItem() { + this(lldbJNI.new_SBQueueItem__SWIG_0(), true); + } + + public SBQueueItem(SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t queue_item_sp) { + this(lldbJNI.new_SBQueueItem__SWIG_1(SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t.getCPtr(queue_item_sp)), true); + } + + public boolean IsValid() { + return lldbJNI.SBQueueItem_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBQueueItem_Clear(swigCPtr, this); + } + + public QueueItemKind GetKind() { + return QueueItemKind.swigToEnum(lldbJNI.SBQueueItem_GetKind(swigCPtr, this)); + } + + public void SetKind(QueueItemKind kind) { + lldbJNI.SBQueueItem_SetKind(swigCPtr, this, kind.swigValue()); + } + + public SBAddress GetAddress() { + return new SBAddress(lldbJNI.SBQueueItem_GetAddress(swigCPtr, this), true); + } + + public void SetAddress(SBAddress addr) { + lldbJNI.SBQueueItem_SetAddress(swigCPtr, this, SBAddress.getCPtr(addr), addr); + } + + public void SetQueueItem(SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t queue_item_sp) { + lldbJNI.SBQueueItem_SetQueueItem(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t.getCPtr(queue_item_sp)); + } + + public SBThread GetExtendedBacktraceThread(String type) { + return new SBThread(lldbJNI.SBQueueItem_GetExtendedBacktraceThread(swigCPtr, this, type), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBReproducer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBReproducer.java new file mode 100644 index 0000000000..da8acc4fd8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBReproducer.java @@ -0,0 +1,64 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBReproducer { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBReproducer(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBReproducer obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBReproducer(swigCPtr); + } + swigCPtr = 0; + } + } + + public static String Capture(String path) { + return lldbJNI.SBReproducer_Capture(path); + } + + public static String PassiveReplay(String path) { + return lldbJNI.SBReproducer_PassiveReplay(path); + } + + public static boolean SetAutoGenerate(boolean b) { + return lldbJNI.SBReproducer_SetAutoGenerate(b); + } + + public static void SetWorkingDirectory(String path) { + lldbJNI.SBReproducer_SetWorkingDirectory(path); + } + + public SBReproducer() { + this(lldbJNI.new_SBReproducer(), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSection.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSection.java new file mode 100644 index 0000000000..8819a75bed --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSection.java @@ -0,0 +1,124 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBSection { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBSection(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBSection obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBSection(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBSection() { + this(lldbJNI.new_SBSection__SWIG_0(), true); + } + + public SBSection(SBSection rhs) { + this(lldbJNI.new_SBSection__SWIG_1(SBSection.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBSection_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBSection_GetName(swigCPtr, this); + } + + public SBSection GetParent() { + return new SBSection(lldbJNI.SBSection_GetParent(swigCPtr, this), true); + } + + public SBSection FindSubSection(String sect_name) { + return new SBSection(lldbJNI.SBSection_FindSubSection(swigCPtr, this, sect_name), true); + } + + public long GetNumSubSections() { + return lldbJNI.SBSection_GetNumSubSections(swigCPtr, this); + } + + public SBSection GetSubSectionAtIndex(long idx) { + return new SBSection(lldbJNI.SBSection_GetSubSectionAtIndex(swigCPtr, this, idx), true); + } + + public java.math.BigInteger GetFileAddress() { + return lldbJNI.SBSection_GetFileAddress(swigCPtr, this); + } + + public java.math.BigInteger GetLoadAddress(SBTarget target) { + return lldbJNI.SBSection_GetLoadAddress(swigCPtr, this, SBTarget.getCPtr(target), target); + } + + public java.math.BigInteger GetByteSize() { + return lldbJNI.SBSection_GetByteSize(swigCPtr, this); + } + + public java.math.BigInteger GetFileOffset() { + return lldbJNI.SBSection_GetFileOffset(swigCPtr, this); + } + + public java.math.BigInteger GetFileByteSize() { + return lldbJNI.SBSection_GetFileByteSize(swigCPtr, this); + } + + public SBData GetSectionData() { + return new SBData(lldbJNI.SBSection_GetSectionData__SWIG_0(swigCPtr, this), true); + } + + public SBData GetSectionData(java.math.BigInteger offset, java.math.BigInteger size) { + return new SBData(lldbJNI.SBSection_GetSectionData__SWIG_1(swigCPtr, this, offset, size), true); + } + + public SectionType GetSectionType() { + return SectionType.swigToEnum(lldbJNI.SBSection_GetSectionType(swigCPtr, this)); + } + + public long GetPermissions() { + return lldbJNI.SBSection_GetPermissions(swigCPtr, this); + } + + public long GetTargetByteSize() { + return lldbJNI.SBSection_GetTargetByteSize(swigCPtr, this); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBSection_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBSection___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSourceManager.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSourceManager.java new file mode 100644 index 0000000000..dce73dfe75 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSourceManager.java @@ -0,0 +1,56 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBSourceManager { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBSourceManager(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBSourceManager obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBSourceManager(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBSourceManager(SBSourceManager rhs) { + this(lldbJNI.new_SBSourceManager(SBSourceManager.getCPtr(rhs), rhs), true); + } + + public long DisplaySourceLinesWithLineNumbers(SBFileSpec file, long line, long context_before, long context_after, String current_line_cstr, SBStream s) { + return lldbJNI.SBSourceManager_DisplaySourceLinesWithLineNumbers(swigCPtr, this, SBFileSpec.getCPtr(file), file, line, context_before, context_after, current_line_cstr, SBStream.getCPtr(s), s); + } + + public long DisplaySourceLinesWithLineNumbersAndColumn(SBFileSpec file, long line, long column, long context_before, long context_after, String current_line_cstr, SBStream s) { + return lldbJNI.SBSourceManager_DisplaySourceLinesWithLineNumbersAndColumn(swigCPtr, this, SBFileSpec.getCPtr(file), file, line, column, context_before, context_after, current_line_cstr, SBStream.getCPtr(s), s); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStream.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStream.java new file mode 100644 index 0000000000..7c07611e5d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStream.java @@ -0,0 +1,88 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBStream { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBStream(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBStream obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBStream(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBStream() { + this(lldbJNI.new_SBStream(), true); + } + + public boolean IsValid() { + return lldbJNI.SBStream_IsValid(swigCPtr, this); + } + + public String GetData() { + return lldbJNI.SBStream_GetData(swigCPtr, this); + } + + public long GetSize() { + return lldbJNI.SBStream_GetSize(swigCPtr, this); + } + + public void Print(String str) { + lldbJNI.SBStream_Print(swigCPtr, this, str); + } + + public void RedirectToFile(String path, boolean append) { + lldbJNI.SBStream_RedirectToFile__SWIG_0(swigCPtr, this, path, append); + } + + public void RedirectToFile(SBFile file) { + lldbJNI.SBStream_RedirectToFile__SWIG_1(swigCPtr, this, SBFile.getCPtr(file), file); + } + + public void RedirectToFile(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t file) { + lldbJNI.SBStream_RedirectToFile__SWIG_2(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(file)); + } + + public void RedirectToFileHandle(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t file, boolean transfer_fh_ownership) { + lldbJNI.SBStream_RedirectToFileHandle(swigCPtr, this, SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.getCPtr(file), transfer_fh_ownership); + } + + public void RedirectToFileDescriptor(int fd, boolean transfer_fh_ownership) { + lldbJNI.SBStream_RedirectToFileDescriptor(swigCPtr, this, fd, transfer_fh_ownership); + } + + public void Clear() { + lldbJNI.SBStream_Clear(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStringList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStringList.java new file mode 100644 index 0000000000..48d19647b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStringList.java @@ -0,0 +1,79 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SBStringList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBStringList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBStringList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBStringList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBStringList() { + this(lldbJNI.new_SBStringList__SWIG_0(), true); + } + + public SBStringList(SBStringList rhs) { + this(lldbJNI.new_SBStringList__SWIG_1(SBStringList.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBStringList_IsValid(swigCPtr, this); + } + + public void AppendString(String str) { + lldbJNI.SBStringList_AppendString(swigCPtr, this, str); + } + + public void AppendList(String[] strv, int strc) { + lldbJNI.SBStringList_AppendList__SWIG_0(swigCPtr, this, strv, strc); + } + + public void AppendList(SBStringList strings) { + lldbJNI.SBStringList_AppendList__SWIG_1(swigCPtr, this, SBStringList.getCPtr(strings), strings); + } + + public long GetSize() { + return lldbJNI.SBStringList_GetSize(swigCPtr, this); + } + + public String GetStringAtIndex(long idx) { + return lldbJNI.SBStringList_GetStringAtIndex(swigCPtr, this, idx); + } + + public void Clear() { + lldbJNI.SBStringList_Clear(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStructuredData.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStructuredData.java new file mode 100644 index 0000000000..98862d535b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBStructuredData.java @@ -0,0 +1,124 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBStructuredData { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBStructuredData(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBStructuredData obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBStructuredData(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBStructuredData() { + this(lldbJNI.new_SBStructuredData__SWIG_0(), true); + } + + public SBStructuredData(SBStructuredData rhs) { + this(lldbJNI.new_SBStructuredData__SWIG_1(SBStructuredData.getCPtr(rhs), rhs), true); + } + + public SBStructuredData(SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t event_sp) { + this(lldbJNI.new_SBStructuredData__SWIG_2(SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t.getCPtr(event_sp)), true); + } + + public boolean IsValid() { + return lldbJNI.SBStructuredData_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBStructuredData_Clear(swigCPtr, this); + } + + public StructuredDataType GetType() { + return StructuredDataType.swigToEnum(lldbJNI.SBStructuredData_GetType(swigCPtr, this)); + } + + public long GetSize() { + return lldbJNI.SBStructuredData_GetSize(swigCPtr, this); + } + + public boolean GetKeys(SBStringList keys) { + return lldbJNI.SBStructuredData_GetKeys(swigCPtr, this, SBStringList.getCPtr(keys), keys); + } + + public SBStructuredData GetValueForKey(String key) { + return new SBStructuredData(lldbJNI.SBStructuredData_GetValueForKey(swigCPtr, this, key), true); + } + + public SBStructuredData GetItemAtIndex(long idx) { + return new SBStructuredData(lldbJNI.SBStructuredData_GetItemAtIndex(swigCPtr, this, idx), true); + } + + public java.math.BigInteger GetIntegerValue(java.math.BigInteger fail_value) { + return lldbJNI.SBStructuredData_GetIntegerValue__SWIG_0(swigCPtr, this, fail_value); + } + + public java.math.BigInteger GetIntegerValue() { + return lldbJNI.SBStructuredData_GetIntegerValue__SWIG_1(swigCPtr, this); + } + + public double GetFloatValue(double fail_value) { + return lldbJNI.SBStructuredData_GetFloatValue__SWIG_0(swigCPtr, this, fail_value); + } + + public double GetFloatValue() { + return lldbJNI.SBStructuredData_GetFloatValue__SWIG_1(swigCPtr, this); + } + + public boolean GetBooleanValue(boolean fail_value) { + return lldbJNI.SBStructuredData_GetBooleanValue__SWIG_0(swigCPtr, this, fail_value); + } + + public boolean GetBooleanValue() { + return lldbJNI.SBStructuredData_GetBooleanValue__SWIG_1(swigCPtr, this); + } + + public long GetStringValue(String dst, long dst_len) { + return lldbJNI.SBStructuredData_GetStringValue(swigCPtr, this, dst, dst_len); + } + + public SBError GetAsJSON(SBStream stream) { + return new SBError(lldbJNI.SBStructuredData_GetAsJSON(swigCPtr, this, SBStream.getCPtr(stream), stream), true); + } + + public SBError GetDescription(SBStream stream) { + return new SBError(lldbJNI.SBStructuredData_GetDescription(swigCPtr, this, SBStream.getCPtr(stream), stream), true); + } + + public SBError SetFromJSON(SBStream stream) { + return new SBError(lldbJNI.SBStructuredData_SetFromJSON(swigCPtr, this, SBStream.getCPtr(stream), stream), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbol.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbol.java new file mode 100644 index 0000000000..9795828c0c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbol.java @@ -0,0 +1,108 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBSymbol { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBSymbol(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBSymbol obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBSymbol(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBSymbol() { + this(lldbJNI.new_SBSymbol__SWIG_0(), true); + } + + public SBSymbol(SBSymbol rhs) { + this(lldbJNI.new_SBSymbol__SWIG_1(SBSymbol.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBSymbol_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBSymbol_GetName(swigCPtr, this); + } + + public String GetDisplayName() { + return lldbJNI.SBSymbol_GetDisplayName(swigCPtr, this); + } + + public String GetMangledName() { + return lldbJNI.SBSymbol_GetMangledName(swigCPtr, this); + } + + public SBInstructionList GetInstructions(SBTarget target) { + return new SBInstructionList(lldbJNI.SBSymbol_GetInstructions__SWIG_0(swigCPtr, this, SBTarget.getCPtr(target), target), true); + } + + public SBInstructionList GetInstructions(SBTarget target, String flavor_string) { + return new SBInstructionList(lldbJNI.SBSymbol_GetInstructions__SWIG_1(swigCPtr, this, SBTarget.getCPtr(target), target, flavor_string), true); + } + + public SBAddress GetStartAddress() { + return new SBAddress(lldbJNI.SBSymbol_GetStartAddress(swigCPtr, this), true); + } + + public SBAddress GetEndAddress() { + return new SBAddress(lldbJNI.SBSymbol_GetEndAddress(swigCPtr, this), true); + } + + public long GetPrologueByteSize() { + return lldbJNI.SBSymbol_GetPrologueByteSize(swigCPtr, this); + } + + public SymbolType GetType() { + return SymbolType.swigToEnum(lldbJNI.SBSymbol_GetType(swigCPtr, this)); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBSymbol_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public boolean IsExternal() { + return lldbJNI.SBSymbol_IsExternal(swigCPtr, this); + } + + public boolean IsSynthetic() { + return lldbJNI.SBSymbol_IsSynthetic(swigCPtr, this); + } + + public String __str__() { + return lldbJNI.SBSymbol___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContext.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContext.java new file mode 100644 index 0000000000..1be8276129 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContext.java @@ -0,0 +1,116 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBSymbolContext { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBSymbolContext(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBSymbolContext obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBSymbolContext(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBSymbolContext() { + this(lldbJNI.new_SBSymbolContext__SWIG_0(), true); + } + + public SBSymbolContext(SBSymbolContext rhs) { + this(lldbJNI.new_SBSymbolContext__SWIG_1(SBSymbolContext.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBSymbolContext_IsValid(swigCPtr, this); + } + + public SBModule GetModule() { + return new SBModule(lldbJNI.SBSymbolContext_GetModule(swigCPtr, this), true); + } + + public SBCompileUnit GetCompileUnit() { + return new SBCompileUnit(lldbJNI.SBSymbolContext_GetCompileUnit(swigCPtr, this), true); + } + + public SBFunction GetFunction() { + return new SBFunction(lldbJNI.SBSymbolContext_GetFunction(swigCPtr, this), true); + } + + public SBBlock GetBlock() { + return new SBBlock(lldbJNI.SBSymbolContext_GetBlock(swigCPtr, this), true); + } + + public SBLineEntry GetLineEntry() { + return new SBLineEntry(lldbJNI.SBSymbolContext_GetLineEntry(swigCPtr, this), true); + } + + public SBSymbol GetSymbol() { + return new SBSymbol(lldbJNI.SBSymbolContext_GetSymbol(swigCPtr, this), true); + } + + public void SetModule(SBModule module) { + lldbJNI.SBSymbolContext_SetModule(swigCPtr, this, SBModule.getCPtr(module), module); + } + + public void SetCompileUnit(SBCompileUnit compile_unit) { + lldbJNI.SBSymbolContext_SetCompileUnit(swigCPtr, this, SBCompileUnit.getCPtr(compile_unit), compile_unit); + } + + public void SetFunction(SBFunction function) { + lldbJNI.SBSymbolContext_SetFunction(swigCPtr, this, SBFunction.getCPtr(function), function); + } + + public void SetBlock(SBBlock block) { + lldbJNI.SBSymbolContext_SetBlock(swigCPtr, this, SBBlock.getCPtr(block), block); + } + + public void SetLineEntry(SBLineEntry line_entry) { + lldbJNI.SBSymbolContext_SetLineEntry(swigCPtr, this, SBLineEntry.getCPtr(line_entry), line_entry); + } + + public void SetSymbol(SBSymbol symbol) { + lldbJNI.SBSymbolContext_SetSymbol(swigCPtr, this, SBSymbol.getCPtr(symbol), symbol); + } + + public SBSymbolContext GetParentOfInlinedScope(SBAddress curr_frame_pc, SBAddress parent_frame_addr) { + return new SBSymbolContext(lldbJNI.SBSymbolContext_GetParentOfInlinedScope(swigCPtr, this, SBAddress.getCPtr(curr_frame_pc), curr_frame_pc, SBAddress.getCPtr(parent_frame_addr), parent_frame_addr), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBSymbolContext_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public String __str__() { + return lldbJNI.SBSymbolContext___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContextList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContextList.java new file mode 100644 index 0000000000..0fd5962a4b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBSymbolContextList.java @@ -0,0 +1,84 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBSymbolContextList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBSymbolContextList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBSymbolContextList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBSymbolContextList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBSymbolContextList() { + this(lldbJNI.new_SBSymbolContextList__SWIG_0(), true); + } + + public SBSymbolContextList(SBSymbolContextList rhs) { + this(lldbJNI.new_SBSymbolContextList__SWIG_1(SBSymbolContextList.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBSymbolContextList_IsValid(swigCPtr, this); + } + + public long GetSize() { + return lldbJNI.SBSymbolContextList_GetSize(swigCPtr, this); + } + + public SBSymbolContext GetContextAtIndex(long idx) { + return new SBSymbolContext(lldbJNI.SBSymbolContextList_GetContextAtIndex(swigCPtr, this, idx), true); + } + + public void Append(SBSymbolContext sc) { + lldbJNI.SBSymbolContextList_Append__SWIG_0(swigCPtr, this, SBSymbolContext.getCPtr(sc), sc); + } + + public void Append(SBSymbolContextList sc_list) { + lldbJNI.SBSymbolContextList_Append__SWIG_1(swigCPtr, this, SBSymbolContextList.getCPtr(sc_list), sc_list); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBSymbolContextList_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void Clear() { + lldbJNI.SBSymbolContextList_Clear(swigCPtr, this); + } + + public String __str__() { + return lldbJNI.SBSymbolContextList___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTarget.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTarget.java new file mode 100644 index 0000000000..aebcb8ae1a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTarget.java @@ -0,0 +1,556 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package SWIG; + +public class SBTarget { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTarget(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTarget obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTarget(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTarget() { + this(lldbJNI.new_SBTarget__SWIG_0(), true); + } + + public SBTarget(SBTarget rhs) { + this(lldbJNI.new_SBTarget__SWIG_1(SBTarget.getCPtr(rhs), rhs), true); + } + + public static String GetBroadcasterClassName() { + return lldbJNI.SBTarget_GetBroadcasterClassName(); + } + + public boolean IsValid() { + return lldbJNI.SBTarget_IsValid(swigCPtr, this); + } + + public static boolean EventIsTargetEvent(SBEvent event) { + return lldbJNI.SBTarget_EventIsTargetEvent(SBEvent.getCPtr(event), event); + } + + public static SBTarget GetTargetFromEvent(SBEvent event) { + return new SBTarget(lldbJNI.SBTarget_GetTargetFromEvent(SBEvent.getCPtr(event), event), true); + } + + public static long GetNumModulesFromEvent(SBEvent event) { + return lldbJNI.SBTarget_GetNumModulesFromEvent(SBEvent.getCPtr(event), event); + } + + public static SBModule GetModuleAtIndexFromEvent(long idx, SBEvent event) { + return new SBModule(lldbJNI.SBTarget_GetModuleAtIndexFromEvent(idx, SBEvent.getCPtr(event), event), true); + } + + public SBProcess GetProcess() { + return new SBProcess(lldbJNI.SBTarget_GetProcess(swigCPtr, this), true); + } + + public SBPlatform GetPlatform() { + return new SBPlatform(lldbJNI.SBTarget_GetPlatform(swigCPtr, this), true); + } + + public SBError Install() { + return new SBError(lldbJNI.SBTarget_Install(swigCPtr, this), true); + } + + public SBProcess Launch(SBListener listener, String[] argv, String[] envp, String stdin_path, String stdout_path, String stderr_path, String working_directory, long launch_flags, boolean stop_at_entry, SBError error) { + return new SBProcess(lldbJNI.SBTarget_Launch__SWIG_0(swigCPtr, this, SBListener.getCPtr(listener), listener, argv, envp, stdin_path, stdout_path, stderr_path, working_directory, launch_flags, stop_at_entry, SBError.getCPtr(error), error), true); + } + + public SBProcess LaunchSimple(String[] argv, String[] envp, String working_directory) { + return new SBProcess(lldbJNI.SBTarget_LaunchSimple(swigCPtr, this, argv, envp, working_directory), true); + } + + public SBProcess Launch(SBLaunchInfo launch_info, SBError error) { + return new SBProcess(lldbJNI.SBTarget_Launch__SWIG_1(swigCPtr, this, SBLaunchInfo.getCPtr(launch_info), launch_info, SBError.getCPtr(error), error), true); + } + + public SBProcess LoadCore(String core_file) { + return new SBProcess(lldbJNI.SBTarget_LoadCore__SWIG_0(swigCPtr, this, core_file), true); + } + + public SBProcess LoadCore(String core_file, SBError error) { + return new SBProcess(lldbJNI.SBTarget_LoadCore__SWIG_1(swigCPtr, this, core_file, SBError.getCPtr(error), error), true); + } + + public SBProcess Attach(SBAttachInfo attach_info, SBError error) { + return new SBProcess(lldbJNI.SBTarget_Attach(swigCPtr, this, SBAttachInfo.getCPtr(attach_info), attach_info, SBError.getCPtr(error), error), true); + } + + public SBProcess AttachToProcessWithID(SBListener listener, java.math.BigInteger pid, SBError error) { + return new SBProcess(lldbJNI.SBTarget_AttachToProcessWithID(swigCPtr, this, SBListener.getCPtr(listener), listener, pid, SBError.getCPtr(error), error), true); + } + + public SBProcess AttachToProcessWithName(SBListener listener, String name, boolean wait_for, SBError error) { + return new SBProcess(lldbJNI.SBTarget_AttachToProcessWithName(swigCPtr, this, SBListener.getCPtr(listener), listener, name, wait_for, SBError.getCPtr(error), error), true); + } + + public SBProcess ConnectRemote(SBListener listener, String url, String plugin_name, SBError error) { + return new SBProcess(lldbJNI.SBTarget_ConnectRemote(swigCPtr, this, SBListener.getCPtr(listener), listener, url, plugin_name, SBError.getCPtr(error), error), true); + } + + public SBFileSpec GetExecutable() { + return new SBFileSpec(lldbJNI.SBTarget_GetExecutable(swigCPtr, this), true); + } + + public void AppendImageSearchPath(String from, String to, SBError error) { + lldbJNI.SBTarget_AppendImageSearchPath(swigCPtr, this, from, to, SBError.getCPtr(error), error); + } + + public boolean AddModule(SBModule module) { + return lldbJNI.SBTarget_AddModule__SWIG_0(swigCPtr, this, SBModule.getCPtr(module), module); + } + + public SBModule AddModule(String path, String triple, String uuid) { + return new SBModule(lldbJNI.SBTarget_AddModule__SWIG_1(swigCPtr, this, path, triple, uuid), true); + } + + public SBModule AddModule(String path, String triple, String uuid_cstr, String symfile) { + return new SBModule(lldbJNI.SBTarget_AddModule__SWIG_2(swigCPtr, this, path, triple, uuid_cstr, symfile), true); + } + + public SBModule AddModule(SBModuleSpec module_spec) { + return new SBModule(lldbJNI.SBTarget_AddModule__SWIG_3(swigCPtr, this, SBModuleSpec.getCPtr(module_spec), module_spec), true); + } + + public long GetNumModules() { + return lldbJNI.SBTarget_GetNumModules(swigCPtr, this); + } + + public SBModule GetModuleAtIndex(long idx) { + return new SBModule(lldbJNI.SBTarget_GetModuleAtIndex(swigCPtr, this, idx), true); + } + + public boolean RemoveModule(SBModule module) { + return lldbJNI.SBTarget_RemoveModule(swigCPtr, this, SBModule.getCPtr(module), module); + } + + public SBDebugger GetDebugger() { + return new SBDebugger(lldbJNI.SBTarget_GetDebugger(swigCPtr, this), true); + } + + public SBModule FindModule(SBFileSpec file_spec) { + return new SBModule(lldbJNI.SBTarget_FindModule(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec), true); + } + + public SBSymbolContextList FindCompileUnits(SBFileSpec sb_file_spec) { + return new SBSymbolContextList(lldbJNI.SBTarget_FindCompileUnits(swigCPtr, this, SBFileSpec.getCPtr(sb_file_spec), sb_file_spec), true); + } + + public ByteOrder GetByteOrder() { + return ByteOrder.swigToEnum(lldbJNI.SBTarget_GetByteOrder(swigCPtr, this)); + } + + public long GetAddressByteSize() { + return lldbJNI.SBTarget_GetAddressByteSize(swigCPtr, this); + } + + public String GetTriple() { + return lldbJNI.SBTarget_GetTriple(swigCPtr, this); + } + + public long GetDataByteSize() { + return lldbJNI.SBTarget_GetDataByteSize(swigCPtr, this); + } + + public long GetCodeByteSize() { + return lldbJNI.SBTarget_GetCodeByteSize(swigCPtr, this); + } + + public SBError SetSectionLoadAddress(SBSection section, java.math.BigInteger section_base_addr) { + return new SBError(lldbJNI.SBTarget_SetSectionLoadAddress(swigCPtr, this, SBSection.getCPtr(section), section, section_base_addr), true); + } + + public SBError ClearSectionLoadAddress(SBSection section) { + return new SBError(lldbJNI.SBTarget_ClearSectionLoadAddress(swigCPtr, this, SBSection.getCPtr(section), section), true); + } + + public SBError SetModuleLoadAddress(SBModule module, long sections_offset) { + return new SBError(lldbJNI.SBTarget_SetModuleLoadAddress(swigCPtr, this, SBModule.getCPtr(module), module, sections_offset), true); + } + + public SBError ClearModuleLoadAddress(SBModule module) { + return new SBError(lldbJNI.SBTarget_ClearModuleLoadAddress(swigCPtr, this, SBModule.getCPtr(module), module), true); + } + + public SBSymbolContextList FindFunctions(String name, long name_type_mask) { + return new SBSymbolContextList(lldbJNI.SBTarget_FindFunctions__SWIG_0(swigCPtr, this, name, name_type_mask), true); + } + + public SBSymbolContextList FindFunctions(String name) { + return new SBSymbolContextList(lldbJNI.SBTarget_FindFunctions__SWIG_1(swigCPtr, this, name), true); + } + + public SBType FindFirstType(String type) { + return new SBType(lldbJNI.SBTarget_FindFirstType(swigCPtr, this, type), true); + } + + public SBTypeList FindTypes(String type) { + return new SBTypeList(lldbJNI.SBTarget_FindTypes(swigCPtr, this, type), true); + } + + public SBType GetBasicType(BasicType type) { + return new SBType(lldbJNI.SBTarget_GetBasicType(swigCPtr, this, type.swigValue()), true); + } + + public SBSourceManager GetSourceManager() { + return new SBSourceManager(lldbJNI.SBTarget_GetSourceManager(swigCPtr, this), true); + } + + public SBValueList FindGlobalVariables(String name, long max_matches) { + return new SBValueList(lldbJNI.SBTarget_FindGlobalVariables__SWIG_0(swigCPtr, this, name, max_matches), true); + } + + public SBValue FindFirstGlobalVariable(String name) { + return new SBValue(lldbJNI.SBTarget_FindFirstGlobalVariable(swigCPtr, this, name), true); + } + + public SBValueList FindGlobalVariables(String name, long max_matches, MatchType matchtype) { + return new SBValueList(lldbJNI.SBTarget_FindGlobalVariables__SWIG_1(swigCPtr, this, name, max_matches, matchtype.swigValue()), true); + } + + public SBSymbolContextList FindGlobalFunctions(String name, long max_matches, MatchType matchtype) { + return new SBSymbolContextList(lldbJNI.SBTarget_FindGlobalFunctions(swigCPtr, this, name, max_matches, matchtype.swigValue()), true); + } + + public void Clear() { + lldbJNI.SBTarget_Clear(swigCPtr, this); + } + + public SBAddress ResolveFileAddress(java.math.BigInteger file_addr) { + return new SBAddress(lldbJNI.SBTarget_ResolveFileAddress(swigCPtr, this, file_addr), true); + } + + public SBAddress ResolveLoadAddress(java.math.BigInteger vm_addr) { + return new SBAddress(lldbJNI.SBTarget_ResolveLoadAddress(swigCPtr, this, vm_addr), true); + } + + public SBAddress ResolvePastLoadAddress(long stop_id, java.math.BigInteger vm_addr) { + return new SBAddress(lldbJNI.SBTarget_ResolvePastLoadAddress(swigCPtr, this, stop_id, vm_addr), true); + } + + public SBSymbolContext ResolveSymbolContextForAddress(SBAddress addr, long resolve_scope) { + return new SBSymbolContext(lldbJNI.SBTarget_ResolveSymbolContextForAddress(swigCPtr, this, SBAddress.getCPtr(addr), addr, resolve_scope), true); + } + + public long ReadMemory(SBAddress addr, SWIGTYPE_p_void buf, long size, SBError error) { + return lldbJNI.SBTarget_ReadMemory(swigCPtr, this, SBAddress.getCPtr(addr), addr, SWIGTYPE_p_void.getCPtr(buf), size, SBError.getCPtr(error), error); + } + + public SBBreakpoint BreakpointCreateByLocation(String file, long line) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByLocation__SWIG_0(swigCPtr, this, file, line), true); + } + + public SBBreakpoint BreakpointCreateByLocation(SBFileSpec file_spec, long line) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByLocation__SWIG_1(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec, line), true); + } + + public SBBreakpoint BreakpointCreateByLocation(SBFileSpec file_spec, long line, java.math.BigInteger offset) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByLocation__SWIG_2(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec, line, offset), true); + } + + public SBBreakpoint BreakpointCreateByLocation(SBFileSpec file_spec, long line, java.math.BigInteger offset, SBFileSpecList module_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByLocation__SWIG_3(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec, line, offset, SBFileSpecList.getCPtr(module_list), module_list), true); + } + + public SBBreakpoint BreakpointCreateByLocation(SBFileSpec file_spec, long line, long column, java.math.BigInteger offset, SBFileSpecList module_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByLocation__SWIG_4(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec, line, column, offset, SBFileSpecList.getCPtr(module_list), module_list), true); + } + + public SBBreakpoint BreakpointCreateByLocation(SBFileSpec file_spec, long line, long column, java.math.BigInteger offset, SBFileSpecList module_list, boolean move_to_nearest_code) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByLocation__SWIG_5(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec, line, column, offset, SBFileSpecList.getCPtr(module_list), module_list, move_to_nearest_code), true); + } + + public SBBreakpoint BreakpointCreateByName(String symbol_name, String module_name) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByName__SWIG_0(swigCPtr, this, symbol_name, module_name), true); + } + + public SBBreakpoint BreakpointCreateByName(String symbol_name) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByName__SWIG_1(swigCPtr, this, symbol_name), true); + } + + public SBBreakpoint BreakpointCreateByName(String symbol_name, long func_name_type, SBFileSpecList module_list, SBFileSpecList comp_unit_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByName__SWIG_2(swigCPtr, this, symbol_name, func_name_type, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(comp_unit_list), comp_unit_list), true); + } + + public SBBreakpoint BreakpointCreateByName(String symbol_name, long func_name_type, LanguageType symbol_language, SBFileSpecList module_list, SBFileSpecList comp_unit_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByName__SWIG_3(swigCPtr, this, symbol_name, func_name_type, symbol_language.swigValue(), SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(comp_unit_list), comp_unit_list), true); + } + + public SBBreakpoint BreakpointCreateByNames(String[] symbol_name, long num_names, long name_type_mask, SBFileSpecList module_list, SBFileSpecList comp_unit_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByNames__SWIG_0(swigCPtr, this, symbol_name, num_names, name_type_mask, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(comp_unit_list), comp_unit_list), true); + } + + public SBBreakpoint BreakpointCreateByNames(String[] symbol_name, long num_names, long name_type_mask, LanguageType symbol_language, SBFileSpecList module_list, SBFileSpecList comp_unit_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByNames__SWIG_1(swigCPtr, this, symbol_name, num_names, name_type_mask, symbol_language.swigValue(), SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(comp_unit_list), comp_unit_list), true); + } + + public SBBreakpoint BreakpointCreateByNames(String[] symbol_name, long num_names, long name_type_mask, LanguageType symbol_language, java.math.BigInteger offset, SBFileSpecList module_list, SBFileSpecList comp_unit_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByNames__SWIG_2(swigCPtr, this, symbol_name, num_names, name_type_mask, symbol_language.swigValue(), offset, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(comp_unit_list), comp_unit_list), true); + } + + public SBBreakpoint BreakpointCreateByRegex(String symbol_name_regex, String module_name) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByRegex__SWIG_0(swigCPtr, this, symbol_name_regex, module_name), true); + } + + public SBBreakpoint BreakpointCreateByRegex(String symbol_name_regex) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByRegex__SWIG_1(swigCPtr, this, symbol_name_regex), true); + } + + public SBBreakpoint BreakpointCreateByRegex(String symbol_name_regex, LanguageType symbol_language, SBFileSpecList module_list, SBFileSpecList comp_unit_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByRegex__SWIG_2(swigCPtr, this, symbol_name_regex, symbol_language.swigValue(), SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(comp_unit_list), comp_unit_list), true); + } + + public SBBreakpoint BreakpointCreateBySourceRegex(String source_regex, SBFileSpec source_file, String module_name) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateBySourceRegex__SWIG_0(swigCPtr, this, source_regex, SBFileSpec.getCPtr(source_file), source_file, module_name), true); + } + + public SBBreakpoint BreakpointCreateBySourceRegex(String source_regex, SBFileSpec source_file) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateBySourceRegex__SWIG_1(swigCPtr, this, source_regex, SBFileSpec.getCPtr(source_file), source_file), true); + } + + public SBBreakpoint BreakpointCreateBySourceRegex(String source_regex, SBFileSpecList module_list, SBFileSpecList file_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateBySourceRegex__SWIG_2(swigCPtr, this, source_regex, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(file_list), file_list), true); + } + + public SBBreakpoint BreakpointCreateBySourceRegex(String source_regex, SBFileSpecList module_list, SBFileSpecList source_file, SBStringList func_names) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateBySourceRegex__SWIG_3(swigCPtr, this, source_regex, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(source_file), source_file, SBStringList.getCPtr(func_names), func_names), true); + } + + public SBBreakpoint BreakpointCreateForException(LanguageType language, boolean catch_bp, boolean throw_bp) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateForException(swigCPtr, this, language.swigValue(), catch_bp, throw_bp), true); + } + + public SBBreakpoint BreakpointCreateByAddress(java.math.BigInteger address) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateByAddress(swigCPtr, this, address), true); + } + + public SBEnvironment GetEnvironment() { + return new SBEnvironment(lldbJNI.SBTarget_GetEnvironment(swigCPtr, this), true); + } + + public SBBreakpoint BreakpointCreateBySBAddress(SBAddress sb_address) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateBySBAddress(swigCPtr, this, SBAddress.getCPtr(sb_address), sb_address), true); + } + + public SBBreakpoint BreakpointCreateFromScript(String class_name, SBStructuredData extra_args, SBFileSpecList module_list, SBFileSpecList file_list, boolean request_hardware) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateFromScript__SWIG_0(swigCPtr, this, class_name, SBStructuredData.getCPtr(extra_args), extra_args, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(file_list), file_list, request_hardware), true); + } + + public SBBreakpoint BreakpointCreateFromScript(String class_name, SBStructuredData extra_args, SBFileSpecList module_list, SBFileSpecList file_list) { + return new SBBreakpoint(lldbJNI.SBTarget_BreakpointCreateFromScript__SWIG_1(swigCPtr, this, class_name, SBStructuredData.getCPtr(extra_args), extra_args, SBFileSpecList.getCPtr(module_list), module_list, SBFileSpecList.getCPtr(file_list), file_list), true); + } + + public long GetNumBreakpoints() { + return lldbJNI.SBTarget_GetNumBreakpoints(swigCPtr, this); + } + + public SBBreakpoint GetBreakpointAtIndex(long idx) { + return new SBBreakpoint(lldbJNI.SBTarget_GetBreakpointAtIndex(swigCPtr, this, idx), true); + } + + public boolean BreakpointDelete(int break_id) { + return lldbJNI.SBTarget_BreakpointDelete(swigCPtr, this, break_id); + } + + public SBBreakpoint FindBreakpointByID(int break_id) { + return new SBBreakpoint(lldbJNI.SBTarget_FindBreakpointByID(swigCPtr, this, break_id), true); + } + + public boolean FindBreakpointsByName(String name, SBBreakpointList bkpt_list) { + return lldbJNI.SBTarget_FindBreakpointsByName(swigCPtr, this, name, SBBreakpointList.getCPtr(bkpt_list), bkpt_list); + } + + public void DeleteBreakpointName(String name) { + lldbJNI.SBTarget_DeleteBreakpointName(swigCPtr, this, name); + } + + public void GetBreakpointNames(SBStringList names) { + lldbJNI.SBTarget_GetBreakpointNames(swigCPtr, this, SBStringList.getCPtr(names), names); + } + + public boolean EnableAllBreakpoints() { + return lldbJNI.SBTarget_EnableAllBreakpoints(swigCPtr, this); + } + + public boolean DisableAllBreakpoints() { + return lldbJNI.SBTarget_DisableAllBreakpoints(swigCPtr, this); + } + + public boolean DeleteAllBreakpoints() { + return lldbJNI.SBTarget_DeleteAllBreakpoints(swigCPtr, this); + } + + public SBError BreakpointsCreateFromFile(SBFileSpec source_file, SBBreakpointList bkpt_list) { + return new SBError(lldbJNI.SBTarget_BreakpointsCreateFromFile__SWIG_0(swigCPtr, this, SBFileSpec.getCPtr(source_file), source_file, SBBreakpointList.getCPtr(bkpt_list), bkpt_list), true); + } + + public SBError BreakpointsCreateFromFile(SBFileSpec source_file, SBStringList matching_names, SBBreakpointList new_bps) { + return new SBError(lldbJNI.SBTarget_BreakpointsCreateFromFile__SWIG_1(swigCPtr, this, SBFileSpec.getCPtr(source_file), source_file, SBStringList.getCPtr(matching_names), matching_names, SBBreakpointList.getCPtr(new_bps), new_bps), true); + } + + public SBError BreakpointsWriteToFile(SBFileSpec dest_file) { + return new SBError(lldbJNI.SBTarget_BreakpointsWriteToFile__SWIG_0(swigCPtr, this, SBFileSpec.getCPtr(dest_file), dest_file), true); + } + + public SBError BreakpointsWriteToFile(SBFileSpec dest_file, SBBreakpointList bkpt_list, boolean append) { + return new SBError(lldbJNI.SBTarget_BreakpointsWriteToFile__SWIG_1(swigCPtr, this, SBFileSpec.getCPtr(dest_file), dest_file, SBBreakpointList.getCPtr(bkpt_list), bkpt_list, append), true); + } + + public SBError BreakpointsWriteToFile(SBFileSpec dest_file, SBBreakpointList bkpt_list) { + return new SBError(lldbJNI.SBTarget_BreakpointsWriteToFile__SWIG_2(swigCPtr, this, SBFileSpec.getCPtr(dest_file), dest_file, SBBreakpointList.getCPtr(bkpt_list), bkpt_list), true); + } + + public long GetNumWatchpoints() { + return lldbJNI.SBTarget_GetNumWatchpoints(swigCPtr, this); + } + + public SBWatchpoint GetWatchpointAtIndex(long idx) { + return new SBWatchpoint(lldbJNI.SBTarget_GetWatchpointAtIndex(swigCPtr, this, idx), true); + } + + public boolean DeleteWatchpoint(int watch_id) { + return lldbJNI.SBTarget_DeleteWatchpoint(swigCPtr, this, watch_id); + } + + public SBWatchpoint FindWatchpointByID(int watch_id) { + return new SBWatchpoint(lldbJNI.SBTarget_FindWatchpointByID(swigCPtr, this, watch_id), true); + } + + public boolean EnableAllWatchpoints() { + return lldbJNI.SBTarget_EnableAllWatchpoints(swigCPtr, this); + } + + public boolean DisableAllWatchpoints() { + return lldbJNI.SBTarget_DisableAllWatchpoints(swigCPtr, this); + } + + public boolean DeleteAllWatchpoints() { + return lldbJNI.SBTarget_DeleteAllWatchpoints(swigCPtr, this); + } + + public SBWatchpoint WatchAddress(java.math.BigInteger addr, long size, boolean read, boolean write, SBError error) { + return new SBWatchpoint(lldbJNI.SBTarget_WatchAddress(swigCPtr, this, addr, size, read, write, SBError.getCPtr(error), error), true); + } + + public SBBroadcaster GetBroadcaster() { + return new SBBroadcaster(lldbJNI.SBTarget_GetBroadcaster(swigCPtr, this), true); + } + + public SBValue CreateValueFromAddress(String name, SBAddress addr, SBType type) { + return new SBValue(lldbJNI.SBTarget_CreateValueFromAddress(swigCPtr, this, name, SBAddress.getCPtr(addr), addr, SBType.getCPtr(type), type), true); + } + + public SBValue CreateValueFromData(String name, SBData data, SBType type) { + return new SBValue(lldbJNI.SBTarget_CreateValueFromData(swigCPtr, this, name, SBData.getCPtr(data), data, SBType.getCPtr(type), type), true); + } + + public SBValue CreateValueFromExpression(String name, String expr) { + return new SBValue(lldbJNI.SBTarget_CreateValueFromExpression(swigCPtr, this, name, expr), true); + } + + public SBInstructionList ReadInstructions(SBAddress base_addr, long count) { + return new SBInstructionList(lldbJNI.SBTarget_ReadInstructions__SWIG_0(swigCPtr, this, SBAddress.getCPtr(base_addr), base_addr, count), true); + } + + public SBInstructionList ReadInstructions(SBAddress base_addr, long count, String flavor_string) { + return new SBInstructionList(lldbJNI.SBTarget_ReadInstructions__SWIG_1(swigCPtr, this, SBAddress.getCPtr(base_addr), base_addr, count, flavor_string), true); + } + + public SBInstructionList GetInstructions(SBAddress base_addr, SWIGTYPE_p_void buf, long size) { + return new SBInstructionList(lldbJNI.SBTarget_GetInstructions(swigCPtr, this, SBAddress.getCPtr(base_addr), base_addr, SWIGTYPE_p_void.getCPtr(buf), size), true); + } + + public SBInstructionList GetInstructionsWithFlavor(SBAddress base_addr, String flavor_string, SWIGTYPE_p_void buf, long size) { + return new SBInstructionList(lldbJNI.SBTarget_GetInstructionsWithFlavor(swigCPtr, this, SBAddress.getCPtr(base_addr), base_addr, flavor_string, SWIGTYPE_p_void.getCPtr(buf), size), true); + } + + public SBSymbolContextList FindSymbols(String name, SymbolType type) { + return new SBSymbolContextList(lldbJNI.SBTarget_FindSymbols__SWIG_0(swigCPtr, this, name, type.swigValue()), true); + } + + public SBSymbolContextList FindSymbols(String name) { + return new SBSymbolContextList(lldbJNI.SBTarget_FindSymbols__SWIG_1(swigCPtr, this, name), true); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTarget_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public java.math.BigInteger GetStackRedZoneSize() { + return lldbJNI.SBTarget_GetStackRedZoneSize(swigCPtr, this); + } + + public boolean IsLoaded(SBModule module) { + return lldbJNI.SBTarget_IsLoaded(swigCPtr, this, SBModule.getCPtr(module), module); + } + + public SBLaunchInfo GetLaunchInfo() { + return new SBLaunchInfo(lldbJNI.SBTarget_GetLaunchInfo(swigCPtr, this), true); + } + + public void SetLaunchInfo(SBLaunchInfo launch_info) { + lldbJNI.SBTarget_SetLaunchInfo(swigCPtr, this, SBLaunchInfo.getCPtr(launch_info), launch_info); + } + + public void SetCollectingStats(boolean v) { + lldbJNI.SBTarget_SetCollectingStats(swigCPtr, this, v); + } + + public boolean GetCollectingStats() { + return lldbJNI.SBTarget_GetCollectingStats(swigCPtr, this); + } + + public SBStructuredData GetStatistics() { + return new SBStructuredData(lldbJNI.SBTarget_GetStatistics(swigCPtr, this), true); + } + + public SBValue EvaluateExpression(String expr) { + return new SBValue(lldbJNI.SBTarget_EvaluateExpression__SWIG_0(swigCPtr, this, expr), true); + } + + public SBValue EvaluateExpression(String expr, SBExpressionOptions options) { + return new SBValue(lldbJNI.SBTarget_EvaluateExpression__SWIG_1(swigCPtr, this, expr, SBExpressionOptions.getCPtr(options), options), true); + } + + public String __str__() { + return lldbJNI.SBTarget___str__(swigCPtr, this); + } + + public final static int eBroadcastBitBreakpointChanged = 1 << 0; + public final static int eBroadcastBitModulesLoaded = 1 << 1; + public final static int eBroadcastBitModulesUnloaded = 1 << 2; + public final static int eBroadcastBitWatchpointChanged = 1 << 3; + public final static int eBroadcastBitSymbolsLoaded = 1 << 4; + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThread.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThread.java new file mode 100644 index 0000000000..f5bd90a1db --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThread.java @@ -0,0 +1,314 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBThread { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBThread(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBThread obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBThread(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBThread() { + this(lldbJNI.new_SBThread__SWIG_0(), true); + } + + public SBThread(SBThread thread) { + this(lldbJNI.new_SBThread__SWIG_1(SBThread.getCPtr(thread), thread), true); + } + + public static String GetBroadcasterClassName() { + return lldbJNI.SBThread_GetBroadcasterClassName(); + } + + public static boolean EventIsThreadEvent(SBEvent event) { + return lldbJNI.SBThread_EventIsThreadEvent(SBEvent.getCPtr(event), event); + } + + public static SBFrame GetStackFrameFromEvent(SBEvent event) { + return new SBFrame(lldbJNI.SBThread_GetStackFrameFromEvent(SBEvent.getCPtr(event), event), true); + } + + public static SBThread GetThreadFromEvent(SBEvent event) { + return new SBThread(lldbJNI.SBThread_GetThreadFromEvent(SBEvent.getCPtr(event), event), true); + } + + public boolean IsValid() { + return lldbJNI.SBThread_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBThread_Clear(swigCPtr, this); + } + + public StopReason GetStopReason() { + return StopReason.swigToEnum(lldbJNI.SBThread_GetStopReason(swigCPtr, this)); + } + + public long GetStopReasonDataCount() { + return lldbJNI.SBThread_GetStopReasonDataCount(swigCPtr, this); + } + + public java.math.BigInteger GetStopReasonDataAtIndex(long idx) { + return lldbJNI.SBThread_GetStopReasonDataAtIndex(swigCPtr, this, idx); + } + + public boolean GetStopReasonExtendedInfoAsJSON(SBStream stream) { + return lldbJNI.SBThread_GetStopReasonExtendedInfoAsJSON(swigCPtr, this, SBStream.getCPtr(stream), stream); + } + + public SBThreadCollection GetStopReasonExtendedBacktraces(InstrumentationRuntimeType type) { + return new SBThreadCollection(lldbJNI.SBThread_GetStopReasonExtendedBacktraces(swigCPtr, this, type.swigValue()), true); + } + + public long GetStopDescription(String dst_or_null, long dst_len) { + return lldbJNI.SBThread_GetStopDescription(swigCPtr, this, dst_or_null, dst_len); + } + + public SBValue GetStopReturnValue() { + return new SBValue(lldbJNI.SBThread_GetStopReturnValue(swigCPtr, this), true); + } + + public java.math.BigInteger GetThreadID() { + return lldbJNI.SBThread_GetThreadID(swigCPtr, this); + } + + public long GetIndexID() { + return lldbJNI.SBThread_GetIndexID(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBThread_GetName(swigCPtr, this); + } + + public String GetQueueName() { + return lldbJNI.SBThread_GetQueueName(swigCPtr, this); + } + + public java.math.BigInteger GetQueueID() { + return lldbJNI.SBThread_GetQueueID(swigCPtr, this); + } + + public boolean GetInfoItemByPathAsString(String path, SBStream strm) { + return lldbJNI.SBThread_GetInfoItemByPathAsString(swigCPtr, this, path, SBStream.getCPtr(strm), strm); + } + + public SBQueue GetQueue() { + return new SBQueue(lldbJNI.SBThread_GetQueue(swigCPtr, this), true); + } + + public void StepOver(RunMode stop_other_threads) { + lldbJNI.SBThread_StepOver__SWIG_0(swigCPtr, this, stop_other_threads.swigValue()); + } + + public void StepOver() { + lldbJNI.SBThread_StepOver__SWIG_1(swigCPtr, this); + } + + public void StepOver(RunMode stop_other_threads, SBError error) { + lldbJNI.SBThread_StepOver__SWIG_2(swigCPtr, this, stop_other_threads.swigValue(), SBError.getCPtr(error), error); + } + + public void StepInto(RunMode stop_other_threads) { + lldbJNI.SBThread_StepInto__SWIG_0(swigCPtr, this, stop_other_threads.swigValue()); + } + + public void StepInto() { + lldbJNI.SBThread_StepInto__SWIG_1(swigCPtr, this); + } + + public void StepInto(String target_name, RunMode stop_other_threads) { + lldbJNI.SBThread_StepInto__SWIG_2(swigCPtr, this, target_name, stop_other_threads.swigValue()); + } + + public void StepInto(String target_name) { + lldbJNI.SBThread_StepInto__SWIG_3(swigCPtr, this, target_name); + } + + public void StepInto(String target_name, long end_line, SBError error, RunMode stop_other_threads) { + lldbJNI.SBThread_StepInto__SWIG_4(swigCPtr, this, target_name, end_line, SBError.getCPtr(error), error, stop_other_threads.swigValue()); + } + + public void StepInto(String target_name, long end_line, SBError error) { + lldbJNI.SBThread_StepInto__SWIG_5(swigCPtr, this, target_name, end_line, SBError.getCPtr(error), error); + } + + public void StepOut() { + lldbJNI.SBThread_StepOut__SWIG_0(swigCPtr, this); + } + + public void StepOut(SBError error) { + lldbJNI.SBThread_StepOut__SWIG_1(swigCPtr, this, SBError.getCPtr(error), error); + } + + public void StepOutOfFrame(SBFrame frame) { + lldbJNI.SBThread_StepOutOfFrame__SWIG_0(swigCPtr, this, SBFrame.getCPtr(frame), frame); + } + + public void StepOutOfFrame(SBFrame frame, SBError error) { + lldbJNI.SBThread_StepOutOfFrame__SWIG_1(swigCPtr, this, SBFrame.getCPtr(frame), frame, SBError.getCPtr(error), error); + } + + public void StepInstruction(boolean step_over) { + lldbJNI.SBThread_StepInstruction__SWIG_0(swigCPtr, this, step_over); + } + + public void StepInstruction(boolean step_over, SBError error) { + lldbJNI.SBThread_StepInstruction__SWIG_1(swigCPtr, this, step_over, SBError.getCPtr(error), error); + } + + public SBError StepOverUntil(SBFrame frame, SBFileSpec file_spec, long line) { + return new SBError(lldbJNI.SBThread_StepOverUntil(swigCPtr, this, SBFrame.getCPtr(frame), frame, SBFileSpec.getCPtr(file_spec), file_spec, line), true); + } + + public SBError StepUsingScriptedThreadPlan(String script_class_name) { + return new SBError(lldbJNI.SBThread_StepUsingScriptedThreadPlan__SWIG_0(swigCPtr, this, script_class_name), true); + } + + public SBError StepUsingScriptedThreadPlan(String script_class_name, boolean resume_immediately) { + return new SBError(lldbJNI.SBThread_StepUsingScriptedThreadPlan__SWIG_1(swigCPtr, this, script_class_name, resume_immediately), true); + } + + public SBError StepUsingScriptedThreadPlan(String script_class_name, SBStructuredData args_data, boolean resume_immediately) { + return new SBError(lldbJNI.SBThread_StepUsingScriptedThreadPlan__SWIG_2(swigCPtr, this, script_class_name, SBStructuredData.getCPtr(args_data), args_data, resume_immediately), true); + } + + public SBError JumpToLine(SBFileSpec file_spec, long line) { + return new SBError(lldbJNI.SBThread_JumpToLine(swigCPtr, this, SBFileSpec.getCPtr(file_spec), file_spec, line), true); + } + + public void RunToAddress(java.math.BigInteger addr) { + lldbJNI.SBThread_RunToAddress__SWIG_0(swigCPtr, this, addr); + } + + public void RunToAddress(java.math.BigInteger addr, SBError error) { + lldbJNI.SBThread_RunToAddress__SWIG_1(swigCPtr, this, addr, SBError.getCPtr(error), error); + } + + public SBError ReturnFromFrame(SBFrame frame, SBValue return_value) { + return new SBError(lldbJNI.SBThread_ReturnFromFrame(swigCPtr, this, SBFrame.getCPtr(frame), frame, SBValue.getCPtr(return_value), return_value), true); + } + + public SBError UnwindInnermostExpression() { + return new SBError(lldbJNI.SBThread_UnwindInnermostExpression(swigCPtr, this), true); + } + + public boolean Suspend() { + return lldbJNI.SBThread_Suspend__SWIG_0(swigCPtr, this); + } + + public boolean Suspend(SBError error) { + return lldbJNI.SBThread_Suspend__SWIG_1(swigCPtr, this, SBError.getCPtr(error), error); + } + + public boolean Resume() { + return lldbJNI.SBThread_Resume__SWIG_0(swigCPtr, this); + } + + public boolean Resume(SBError error) { + return lldbJNI.SBThread_Resume__SWIG_1(swigCPtr, this, SBError.getCPtr(error), error); + } + + public boolean IsSuspended() { + return lldbJNI.SBThread_IsSuspended(swigCPtr, this); + } + + public boolean IsStopped() { + return lldbJNI.SBThread_IsStopped(swigCPtr, this); + } + + public long GetNumFrames() { + return lldbJNI.SBThread_GetNumFrames(swigCPtr, this); + } + + public SBFrame GetFrameAtIndex(long idx) { + return new SBFrame(lldbJNI.SBThread_GetFrameAtIndex(swigCPtr, this, idx), true); + } + + public SBFrame GetSelectedFrame() { + return new SBFrame(lldbJNI.SBThread_GetSelectedFrame(swigCPtr, this), true); + } + + public SBFrame SetSelectedFrame(long frame_idx) { + return new SBFrame(lldbJNI.SBThread_SetSelectedFrame(swigCPtr, this, frame_idx), true); + } + + public SBProcess GetProcess() { + return new SBProcess(lldbJNI.SBThread_GetProcess(swigCPtr, this), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBThread_GetDescription__SWIG_0(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public boolean GetDescription(SBStream description, boolean stop_format) { + return lldbJNI.SBThread_GetDescription__SWIG_1(swigCPtr, this, SBStream.getCPtr(description), description, stop_format); + } + + public boolean GetStatus(SBStream status) { + return lldbJNI.SBThread_GetStatus(swigCPtr, this, SBStream.getCPtr(status), status); + } + + public SBThread GetExtendedBacktraceThread(String type) { + return new SBThread(lldbJNI.SBThread_GetExtendedBacktraceThread(swigCPtr, this, type), true); + } + + public long GetExtendedBacktraceOriginatingIndexID() { + return lldbJNI.SBThread_GetExtendedBacktraceOriginatingIndexID(swigCPtr, this); + } + + public SBValue GetCurrentException() { + return new SBValue(lldbJNI.SBThread_GetCurrentException(swigCPtr, this), true); + } + + public SBThread GetCurrentExceptionBacktrace() { + return new SBThread(lldbJNI.SBThread_GetCurrentExceptionBacktrace(swigCPtr, this), true); + } + + public boolean SafeToCallFunctions() { + return lldbJNI.SBThread_SafeToCallFunctions(swigCPtr, this); + } + + public String __str__() { + return lldbJNI.SBThread___str__(swigCPtr, this); + } + + public final static int eBroadcastBitStackChanged = 1 << 0; + public final static int eBroadcastBitThreadSuspended = 1 << 1; + public final static int eBroadcastBitThreadResumed = 1 << 2; + public final static int eBroadcastBitSelectedFrameChanged = 1 << 3; + public final static int eBroadcastBitThreadSelected = 1 << 4; + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadCollection.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadCollection.java new file mode 100644 index 0000000000..f9da936886 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadCollection.java @@ -0,0 +1,64 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBThreadCollection { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBThreadCollection(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBThreadCollection obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBThreadCollection(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBThreadCollection() { + this(lldbJNI.new_SBThreadCollection__SWIG_0(), true); + } + + public SBThreadCollection(SBThreadCollection rhs) { + this(lldbJNI.new_SBThreadCollection__SWIG_1(SBThreadCollection.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBThreadCollection_IsValid(swigCPtr, this); + } + + public long GetSize() { + return lldbJNI.SBThreadCollection_GetSize(swigCPtr, this); + } + + public SBThread GetThreadAtIndex(long idx) { + return new SBThread(lldbJNI.SBThreadCollection_GetThreadAtIndex(swigCPtr, this, idx), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadPlan.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadPlan.java new file mode 100644 index 0000000000..732fd25062 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBThreadPlan.java @@ -0,0 +1,140 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBThreadPlan { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBThreadPlan(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBThreadPlan obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBThreadPlan(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBThreadPlan() { + this(lldbJNI.new_SBThreadPlan__SWIG_0(), true); + } + + public SBThreadPlan(SBThreadPlan threadPlan) { + this(lldbJNI.new_SBThreadPlan__SWIG_1(SBThreadPlan.getCPtr(threadPlan), threadPlan), true); + } + + public SBThreadPlan(SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t lldb_object_sp) { + this(lldbJNI.new_SBThreadPlan__SWIG_2(SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t.getCPtr(lldb_object_sp)), true); + } + + public SBThreadPlan(SBThread thread, String class_name) { + this(lldbJNI.new_SBThreadPlan__SWIG_3(SBThread.getCPtr(thread), thread, class_name), true); + } + + public boolean IsValid() { + return lldbJNI.SBThreadPlan_IsValid__SWIG_0(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBThreadPlan_Clear(swigCPtr, this); + } + + public StopReason GetStopReason() { + return StopReason.swigToEnum(lldbJNI.SBThreadPlan_GetStopReason(swigCPtr, this)); + } + + public long GetStopReasonDataCount() { + return lldbJNI.SBThreadPlan_GetStopReasonDataCount(swigCPtr, this); + } + + public java.math.BigInteger GetStopReasonDataAtIndex(long idx) { + return lldbJNI.SBThreadPlan_GetStopReasonDataAtIndex(swigCPtr, this, idx); + } + + public SBThread GetThread() { + return new SBThread(lldbJNI.SBThreadPlan_GetThread(swigCPtr, this), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBThreadPlan_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public void SetPlanComplete(boolean success) { + lldbJNI.SBThreadPlan_SetPlanComplete(swigCPtr, this, success); + } + + public boolean IsPlanComplete() { + return lldbJNI.SBThreadPlan_IsPlanComplete(swigCPtr, this); + } + + public boolean IsPlanStale() { + return lldbJNI.SBThreadPlan_IsPlanStale(swigCPtr, this); + } + + public boolean GetStopOthers() { + return lldbJNI.SBThreadPlan_GetStopOthers(swigCPtr, this); + } + + public void SetStopOthers(boolean stop_others) { + lldbJNI.SBThreadPlan_SetStopOthers(swigCPtr, this, stop_others); + } + + public SBThreadPlan QueueThreadPlanForStepOverRange(SBAddress start_address, java.math.BigInteger range_size) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepOverRange(swigCPtr, this, SBAddress.getCPtr(start_address), start_address, range_size), true); + } + + public SBThreadPlan QueueThreadPlanForStepInRange(SBAddress start_address, java.math.BigInteger range_size) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepInRange(swigCPtr, this, SBAddress.getCPtr(start_address), start_address, range_size), true); + } + + public SBThreadPlan QueueThreadPlanForStepOut(long frame_idx_to_step_to, boolean first_insn) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepOut__SWIG_0(swigCPtr, this, frame_idx_to_step_to, first_insn), true); + } + + public SBThreadPlan QueueThreadPlanForStepOut(long frame_idx_to_step_to) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepOut__SWIG_1(swigCPtr, this, frame_idx_to_step_to), true); + } + + public SBThreadPlan QueueThreadPlanForRunToAddress(SBAddress address) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForRunToAddress(swigCPtr, this, SBAddress.getCPtr(address), address), true); + } + + public SBThreadPlan QueueThreadPlanForStepScripted(String script_class_name) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepScripted__SWIG_0(swigCPtr, this, script_class_name), true); + } + + public SBThreadPlan QueueThreadPlanForStepScripted(String script_class_name, SBError error) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepScripted__SWIG_1(swigCPtr, this, script_class_name, SBError.getCPtr(error), error), true); + } + + public SBThreadPlan QueueThreadPlanForStepScripted(String script_class_name, SBStructuredData args_data, SBError error) { + return new SBThreadPlan(lldbJNI.SBThreadPlan_QueueThreadPlanForStepScripted__SWIG_2(swigCPtr, this, script_class_name, SBStructuredData.getCPtr(args_data), args_data, SBError.getCPtr(error), error), true); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTrace.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTrace.java new file mode 100644 index 0000000000..2f33c320d9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTrace.java @@ -0,0 +1,72 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTrace { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTrace(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTrace obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTrace(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTrace() { + this(lldbJNI.new_SBTrace(), true); + } + + public long GetTraceData(SBError error, SWIGTYPE_p_void buf, long size, long offset, java.math.BigInteger thread_id) { + return lldbJNI.SBTrace_GetTraceData(swigCPtr, this, SBError.getCPtr(error), error, SWIGTYPE_p_void.getCPtr(buf), size, offset, thread_id); + } + + public long GetMetaData(SBError error, SWIGTYPE_p_void buf, long size, long offset, java.math.BigInteger thread_id) { + return lldbJNI.SBTrace_GetMetaData(swigCPtr, this, SBError.getCPtr(error), error, SWIGTYPE_p_void.getCPtr(buf), size, offset, thread_id); + } + + public void StopTrace(SBError error, java.math.BigInteger thread_id) { + lldbJNI.SBTrace_StopTrace(swigCPtr, this, SBError.getCPtr(error), error, thread_id); + } + + public void GetTraceConfig(SBTraceOptions options, SBError error) { + lldbJNI.SBTrace_GetTraceConfig(swigCPtr, this, SBTraceOptions.getCPtr(options), options, SBError.getCPtr(error), error); + } + + public java.math.BigInteger GetTraceUID() { + return lldbJNI.SBTrace_GetTraceUID(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBTrace_IsValid(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTraceOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTraceOptions.java new file mode 100644 index 0000000000..9bca159b04 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTraceOptions.java @@ -0,0 +1,92 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTraceOptions { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTraceOptions(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTraceOptions obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTraceOptions(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTraceOptions() { + this(lldbJNI.new_SBTraceOptions(), true); + } + + public TraceType getType() { + return TraceType.swigToEnum(lldbJNI.SBTraceOptions_getType(swigCPtr, this)); + } + + public java.math.BigInteger getTraceBufferSize() { + return lldbJNI.SBTraceOptions_getTraceBufferSize(swigCPtr, this); + } + + public SBStructuredData getTraceParams(SBError error) { + return new SBStructuredData(lldbJNI.SBTraceOptions_getTraceParams(swigCPtr, this, SBError.getCPtr(error), error), true); + } + + public java.math.BigInteger getMetaDataBufferSize() { + return lldbJNI.SBTraceOptions_getMetaDataBufferSize(swigCPtr, this); + } + + public void setTraceParams(SBStructuredData params) { + lldbJNI.SBTraceOptions_setTraceParams(swigCPtr, this, SBStructuredData.getCPtr(params), params); + } + + public void setType(TraceType type) { + lldbJNI.SBTraceOptions_setType(swigCPtr, this, type.swigValue()); + } + + public void setTraceBufferSize(java.math.BigInteger size) { + lldbJNI.SBTraceOptions_setTraceBufferSize(swigCPtr, this, size); + } + + public void setMetaDataBufferSize(java.math.BigInteger size) { + lldbJNI.SBTraceOptions_setMetaDataBufferSize(swigCPtr, this, size); + } + + public void setThreadID(java.math.BigInteger thread_id) { + lldbJNI.SBTraceOptions_setThreadID(swigCPtr, this, thread_id); + } + + public java.math.BigInteger getThreadID() { + return lldbJNI.SBTraceOptions_getThreadID(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBTraceOptions_IsValid(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBType.java new file mode 100644 index 0000000000..c624134ecf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBType.java @@ -0,0 +1,224 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBType { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBType(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBType obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBType(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBType() { + this(lldbJNI.new_SBType__SWIG_0(), true); + } + + public SBType(SBType rhs) { + this(lldbJNI.new_SBType__SWIG_1(SBType.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBType_IsValid(swigCPtr, this); + } + + public java.math.BigInteger GetByteSize() { + return lldbJNI.SBType_GetByteSize(swigCPtr, this); + } + + public boolean IsPointerType() { + return lldbJNI.SBType_IsPointerType(swigCPtr, this); + } + + public boolean IsReferenceType() { + return lldbJNI.SBType_IsReferenceType(swigCPtr, this); + } + + public boolean IsFunctionType() { + return lldbJNI.SBType_IsFunctionType(swigCPtr, this); + } + + public boolean IsPolymorphicClass() { + return lldbJNI.SBType_IsPolymorphicClass(swigCPtr, this); + } + + public boolean IsArrayType() { + return lldbJNI.SBType_IsArrayType(swigCPtr, this); + } + + public boolean IsVectorType() { + return lldbJNI.SBType_IsVectorType(swigCPtr, this); + } + + public boolean IsTypedefType() { + return lldbJNI.SBType_IsTypedefType(swigCPtr, this); + } + + public boolean IsAnonymousType() { + return lldbJNI.SBType_IsAnonymousType(swigCPtr, this); + } + + public SBType GetPointerType() { + return new SBType(lldbJNI.SBType_GetPointerType(swigCPtr, this), true); + } + + public SBType GetPointeeType() { + return new SBType(lldbJNI.SBType_GetPointeeType(swigCPtr, this), true); + } + + public SBType GetReferenceType() { + return new SBType(lldbJNI.SBType_GetReferenceType(swigCPtr, this), true); + } + + public SBType GetTypedefedType() { + return new SBType(lldbJNI.SBType_GetTypedefedType(swigCPtr, this), true); + } + + public SBType GetDereferencedType() { + return new SBType(lldbJNI.SBType_GetDereferencedType(swigCPtr, this), true); + } + + public SBType GetUnqualifiedType() { + return new SBType(lldbJNI.SBType_GetUnqualifiedType(swigCPtr, this), true); + } + + public SBType GetCanonicalType() { + return new SBType(lldbJNI.SBType_GetCanonicalType(swigCPtr, this), true); + } + + public SBType GetArrayElementType() { + return new SBType(lldbJNI.SBType_GetArrayElementType(swigCPtr, this), true); + } + + public SBType GetArrayType(java.math.BigInteger size) { + return new SBType(lldbJNI.SBType_GetArrayType(swigCPtr, this, size), true); + } + + public SBType GetVectorElementType() { + return new SBType(lldbJNI.SBType_GetVectorElementType(swigCPtr, this), true); + } + + public BasicType GetBasicType() { + return BasicType.swigToEnum(lldbJNI.SBType_GetBasicType__SWIG_0(swigCPtr, this)); + } + + public SBType GetBasicType(BasicType type) { + return new SBType(lldbJNI.SBType_GetBasicType__SWIG_1(swigCPtr, this, type.swigValue()), true); + } + + public long GetNumberOfFields() { + return lldbJNI.SBType_GetNumberOfFields(swigCPtr, this); + } + + public long GetNumberOfDirectBaseClasses() { + return lldbJNI.SBType_GetNumberOfDirectBaseClasses(swigCPtr, this); + } + + public long GetNumberOfVirtualBaseClasses() { + return lldbJNI.SBType_GetNumberOfVirtualBaseClasses(swigCPtr, this); + } + + public SBTypeMember GetFieldAtIndex(long idx) { + return new SBTypeMember(lldbJNI.SBType_GetFieldAtIndex(swigCPtr, this, idx), true); + } + + public SBTypeMember GetDirectBaseClassAtIndex(long idx) { + return new SBTypeMember(lldbJNI.SBType_GetDirectBaseClassAtIndex(swigCPtr, this, idx), true); + } + + public SBTypeMember GetVirtualBaseClassAtIndex(long idx) { + return new SBTypeMember(lldbJNI.SBType_GetVirtualBaseClassAtIndex(swigCPtr, this, idx), true); + } + + public SBTypeEnumMemberList GetEnumMembers() { + return new SBTypeEnumMemberList(lldbJNI.SBType_GetEnumMembers(swigCPtr, this), true); + } + + public SBModule GetModule() { + return new SBModule(lldbJNI.SBType_GetModule(swigCPtr, this), true); + } + + public String GetName() { + return lldbJNI.SBType_GetName(swigCPtr, this); + } + + public String GetDisplayTypeName() { + return lldbJNI.SBType_GetDisplayTypeName(swigCPtr, this); + } + + public TypeClass GetTypeClass() { + return TypeClass.swigToEnum(lldbJNI.SBType_GetTypeClass(swigCPtr, this)); + } + + public long GetNumberOfTemplateArguments() { + return lldbJNI.SBType_GetNumberOfTemplateArguments(swigCPtr, this); + } + + public SBType GetTemplateArgumentType(long idx) { + return new SBType(lldbJNI.SBType_GetTemplateArgumentType(swigCPtr, this, idx), true); + } + + public TemplateArgumentKind GetTemplateArgumentKind(long idx) { + return TemplateArgumentKind.swigToEnum(lldbJNI.SBType_GetTemplateArgumentKind(swigCPtr, this, idx)); + } + + public SBType GetFunctionReturnType() { + return new SBType(lldbJNI.SBType_GetFunctionReturnType(swigCPtr, this), true); + } + + public SBTypeList GetFunctionArgumentTypes() { + return new SBTypeList(lldbJNI.SBType_GetFunctionArgumentTypes(swigCPtr, this), true); + } + + public long GetNumberOfMemberFunctions() { + return lldbJNI.SBType_GetNumberOfMemberFunctions(swigCPtr, this); + } + + public SBTypeMemberFunction GetMemberFunctionAtIndex(long idx) { + return new SBTypeMemberFunction(lldbJNI.SBType_GetMemberFunctionAtIndex(swigCPtr, this, idx), true); + } + + public boolean IsTypeComplete() { + return lldbJNI.SBType_IsTypeComplete(swigCPtr, this); + } + + public long GetTypeFlags() { + return lldbJNI.SBType_GetTypeFlags(swigCPtr, this); + } + + public String __str__() { + return lldbJNI.SBType___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeCategory.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeCategory.java new file mode 100644 index 0000000000..f9181d36b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeCategory.java @@ -0,0 +1,184 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeCategory { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeCategory(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeCategory obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeCategory(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeCategory() { + this(lldbJNI.new_SBTypeCategory__SWIG_0(), true); + } + + public SBTypeCategory(SBTypeCategory rhs) { + this(lldbJNI.new_SBTypeCategory__SWIG_1(SBTypeCategory.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeCategory_IsValid(swigCPtr, this); + } + + public boolean GetEnabled() { + return lldbJNI.SBTypeCategory_GetEnabled(swigCPtr, this); + } + + public void SetEnabled(boolean arg0) { + lldbJNI.SBTypeCategory_SetEnabled(swigCPtr, this, arg0); + } + + public String GetName() { + return lldbJNI.SBTypeCategory_GetName(swigCPtr, this); + } + + public LanguageType GetLanguageAtIndex(long idx) { + return LanguageType.swigToEnum(lldbJNI.SBTypeCategory_GetLanguageAtIndex(swigCPtr, this, idx)); + } + + public long GetNumLanguages() { + return lldbJNI.SBTypeCategory_GetNumLanguages(swigCPtr, this); + } + + public void AddLanguage(LanguageType language) { + lldbJNI.SBTypeCategory_AddLanguage(swigCPtr, this, language.swigValue()); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeCategory_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public long GetNumFormats() { + return lldbJNI.SBTypeCategory_GetNumFormats(swigCPtr, this); + } + + public long GetNumSummaries() { + return lldbJNI.SBTypeCategory_GetNumSummaries(swigCPtr, this); + } + + public long GetNumFilters() { + return lldbJNI.SBTypeCategory_GetNumFilters(swigCPtr, this); + } + + public long GetNumSynthetics() { + return lldbJNI.SBTypeCategory_GetNumSynthetics(swigCPtr, this); + } + + public SBTypeNameSpecifier GetTypeNameSpecifierForFilterAtIndex(long arg0) { + return new SBTypeNameSpecifier(lldbJNI.SBTypeCategory_GetTypeNameSpecifierForFilterAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeNameSpecifier GetTypeNameSpecifierForFormatAtIndex(long arg0) { + return new SBTypeNameSpecifier(lldbJNI.SBTypeCategory_GetTypeNameSpecifierForFormatAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeNameSpecifier GetTypeNameSpecifierForSummaryAtIndex(long arg0) { + return new SBTypeNameSpecifier(lldbJNI.SBTypeCategory_GetTypeNameSpecifierForSummaryAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeNameSpecifier GetTypeNameSpecifierForSyntheticAtIndex(long arg0) { + return new SBTypeNameSpecifier(lldbJNI.SBTypeCategory_GetTypeNameSpecifierForSyntheticAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeFilter GetFilterForType(SBTypeNameSpecifier arg0) { + return new SBTypeFilter(lldbJNI.SBTypeCategory_GetFilterForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeFormat GetFormatForType(SBTypeNameSpecifier arg0) { + return new SBTypeFormat(lldbJNI.SBTypeCategory_GetFormatForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeSummary GetSummaryForType(SBTypeNameSpecifier arg0) { + return new SBTypeSummary(lldbJNI.SBTypeCategory_GetSummaryForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier arg0) { + return new SBTypeSynthetic(lldbJNI.SBTypeCategory_GetSyntheticForType(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0), true); + } + + public SBTypeFilter GetFilterAtIndex(long arg0) { + return new SBTypeFilter(lldbJNI.SBTypeCategory_GetFilterAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeFormat GetFormatAtIndex(long arg0) { + return new SBTypeFormat(lldbJNI.SBTypeCategory_GetFormatAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeSummary GetSummaryAtIndex(long arg0) { + return new SBTypeSummary(lldbJNI.SBTypeCategory_GetSummaryAtIndex(swigCPtr, this, arg0), true); + } + + public SBTypeSynthetic GetSyntheticAtIndex(long arg0) { + return new SBTypeSynthetic(lldbJNI.SBTypeCategory_GetSyntheticAtIndex(swigCPtr, this, arg0), true); + } + + public boolean AddTypeFormat(SBTypeNameSpecifier arg0, SBTypeFormat arg1) { + return lldbJNI.SBTypeCategory_AddTypeFormat(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0, SBTypeFormat.getCPtr(arg1), arg1); + } + + public boolean DeleteTypeFormat(SBTypeNameSpecifier arg0) { + return lldbJNI.SBTypeCategory_DeleteTypeFormat(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0); + } + + public boolean AddTypeSummary(SBTypeNameSpecifier arg0, SBTypeSummary arg1) { + return lldbJNI.SBTypeCategory_AddTypeSummary(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0, SBTypeSummary.getCPtr(arg1), arg1); + } + + public boolean DeleteTypeSummary(SBTypeNameSpecifier arg0) { + return lldbJNI.SBTypeCategory_DeleteTypeSummary(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0); + } + + public boolean AddTypeFilter(SBTypeNameSpecifier arg0, SBTypeFilter arg1) { + return lldbJNI.SBTypeCategory_AddTypeFilter(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0, SBTypeFilter.getCPtr(arg1), arg1); + } + + public boolean DeleteTypeFilter(SBTypeNameSpecifier arg0) { + return lldbJNI.SBTypeCategory_DeleteTypeFilter(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0); + } + + public boolean AddTypeSynthetic(SBTypeNameSpecifier arg0, SBTypeSynthetic arg1) { + return lldbJNI.SBTypeCategory_AddTypeSynthetic(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0, SBTypeSynthetic.getCPtr(arg1), arg1); + } + + public boolean DeleteTypeSynthetic(SBTypeNameSpecifier arg0) { + return lldbJNI.SBTypeCategory_DeleteTypeSynthetic(swigCPtr, this, SBTypeNameSpecifier.getCPtr(arg0), arg0); + } + + public String __str__() { + return lldbJNI.SBTypeCategory___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMember.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMember.java new file mode 100644 index 0000000000..0378606d14 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMember.java @@ -0,0 +1,80 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeEnumMember { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeEnumMember(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeEnumMember obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeEnumMember(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeEnumMember() { + this(lldbJNI.new_SBTypeEnumMember__SWIG_0(), true); + } + + public SBTypeEnumMember(SBTypeEnumMember rhs) { + this(lldbJNI.new_SBTypeEnumMember__SWIG_1(SBTypeEnumMember.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeEnumMember_IsValid(swigCPtr, this); + } + + public long GetValueAsSigned() { + return lldbJNI.SBTypeEnumMember_GetValueAsSigned(swigCPtr, this); + } + + public java.math.BigInteger GetValueAsUnsigned() { + return lldbJNI.SBTypeEnumMember_GetValueAsUnsigned(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBTypeEnumMember_GetName(swigCPtr, this); + } + + public SBType GetType() { + return new SBType(lldbJNI.SBTypeEnumMember_GetType(swigCPtr, this), true); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeEnumMember_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeEnumMember___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMemberList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMemberList.java new file mode 100644 index 0000000000..b1f0792b17 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeEnumMemberList.java @@ -0,0 +1,68 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeEnumMemberList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeEnumMemberList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeEnumMemberList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeEnumMemberList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeEnumMemberList() { + this(lldbJNI.new_SBTypeEnumMemberList__SWIG_0(), true); + } + + public SBTypeEnumMemberList(SBTypeEnumMemberList rhs) { + this(lldbJNI.new_SBTypeEnumMemberList__SWIG_1(SBTypeEnumMemberList.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeEnumMemberList_IsValid(swigCPtr, this); + } + + public void Append(SBTypeEnumMember entry) { + lldbJNI.SBTypeEnumMemberList_Append(swigCPtr, this, SBTypeEnumMember.getCPtr(entry), entry); + } + + public SBTypeEnumMember GetTypeEnumMemberAtIndex(long index) { + return new SBTypeEnumMember(lldbJNI.SBTypeEnumMemberList_GetTypeEnumMemberAtIndex(swigCPtr, this, index), true); + } + + public long GetSize() { + return lldbJNI.SBTypeEnumMemberList_GetSize(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFilter.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFilter.java new file mode 100644 index 0000000000..1425be5168 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFilter.java @@ -0,0 +1,100 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeFilter { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeFilter(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeFilter obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeFilter(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeFilter() { + this(lldbJNI.new_SBTypeFilter__SWIG_0(), true); + } + + public SBTypeFilter(long options) { + this(lldbJNI.new_SBTypeFilter__SWIG_1(options), true); + } + + public SBTypeFilter(SBTypeFilter rhs) { + this(lldbJNI.new_SBTypeFilter__SWIG_2(SBTypeFilter.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeFilter_IsValid(swigCPtr, this); + } + + public boolean IsEqualTo(SBTypeFilter rhs) { + return lldbJNI.SBTypeFilter_IsEqualTo(swigCPtr, this, SBTypeFilter.getCPtr(rhs), rhs); + } + + public long GetNumberOfExpressionPaths() { + return lldbJNI.SBTypeFilter_GetNumberOfExpressionPaths(swigCPtr, this); + } + + public String GetExpressionPathAtIndex(long i) { + return lldbJNI.SBTypeFilter_GetExpressionPathAtIndex(swigCPtr, this, i); + } + + public boolean ReplaceExpressionPathAtIndex(long i, String item) { + return lldbJNI.SBTypeFilter_ReplaceExpressionPathAtIndex(swigCPtr, this, i, item); + } + + public void AppendExpressionPath(String item) { + lldbJNI.SBTypeFilter_AppendExpressionPath(swigCPtr, this, item); + } + + public void Clear() { + lldbJNI.SBTypeFilter_Clear(swigCPtr, this); + } + + public long GetOptions() { + return lldbJNI.SBTypeFilter_GetOptions(swigCPtr, this); + } + + public void SetOptions(long arg0) { + lldbJNI.SBTypeFilter_SetOptions(swigCPtr, this, arg0); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeFilter_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeFilter___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFormat.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFormat.java new file mode 100644 index 0000000000..7ff44c2896 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeFormat.java @@ -0,0 +1,108 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeFormat { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeFormat(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeFormat obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeFormat(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeFormat() { + this(lldbJNI.new_SBTypeFormat__SWIG_0(), true); + } + + public SBTypeFormat(Format format, long options) { + this(lldbJNI.new_SBTypeFormat__SWIG_1(format.swigValue(), options), true); + } + + public SBTypeFormat(Format format) { + this(lldbJNI.new_SBTypeFormat__SWIG_2(format.swigValue()), true); + } + + public SBTypeFormat(String type, long options) { + this(lldbJNI.new_SBTypeFormat__SWIG_3(type, options), true); + } + + public SBTypeFormat(String type) { + this(lldbJNI.new_SBTypeFormat__SWIG_4(type), true); + } + + public SBTypeFormat(SBTypeFormat rhs) { + this(lldbJNI.new_SBTypeFormat__SWIG_5(SBTypeFormat.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeFormat_IsValid(swigCPtr, this); + } + + public boolean IsEqualTo(SBTypeFormat rhs) { + return lldbJNI.SBTypeFormat_IsEqualTo(swigCPtr, this, SBTypeFormat.getCPtr(rhs), rhs); + } + + public Format GetFormat() { + return Format.swigToEnum(lldbJNI.SBTypeFormat_GetFormat(swigCPtr, this)); + } + + public String GetTypeName() { + return lldbJNI.SBTypeFormat_GetTypeName(swigCPtr, this); + } + + public long GetOptions() { + return lldbJNI.SBTypeFormat_GetOptions(swigCPtr, this); + } + + public void SetFormat(Format arg0) { + lldbJNI.SBTypeFormat_SetFormat(swigCPtr, this, arg0.swigValue()); + } + + public void SetTypeName(String arg0) { + lldbJNI.SBTypeFormat_SetTypeName(swigCPtr, this, arg0); + } + + public void SetOptions(long arg0) { + lldbJNI.SBTypeFormat_SetOptions(swigCPtr, this, arg0); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeFormat_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeFormat___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeList.java new file mode 100644 index 0000000000..dbcd001782 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeList.java @@ -0,0 +1,64 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeList() { + this(lldbJNI.new_SBTypeList(), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeList_IsValid(swigCPtr, this); + } + + public void Append(SBType type) { + lldbJNI.SBTypeList_Append(swigCPtr, this, SBType.getCPtr(type), type); + } + + public SBType GetTypeAtIndex(long index) { + return new SBType(lldbJNI.SBTypeList_GetTypeAtIndex(swigCPtr, this, index), true); + } + + public long GetSize() { + return lldbJNI.SBTypeList_GetSize(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMember.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMember.java new file mode 100644 index 0000000000..28353ce214 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMember.java @@ -0,0 +1,84 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeMember { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeMember(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeMember obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeMember(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeMember() { + this(lldbJNI.new_SBTypeMember__SWIG_0(), true); + } + + public SBTypeMember(SBTypeMember rhs) { + this(lldbJNI.new_SBTypeMember__SWIG_1(SBTypeMember.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeMember_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBTypeMember_GetName(swigCPtr, this); + } + + public SBType GetType() { + return new SBType(lldbJNI.SBTypeMember_GetType(swigCPtr, this), true); + } + + public java.math.BigInteger GetOffsetInBytes() { + return lldbJNI.SBTypeMember_GetOffsetInBytes(swigCPtr, this); + } + + public java.math.BigInteger GetOffsetInBits() { + return lldbJNI.SBTypeMember_GetOffsetInBits(swigCPtr, this); + } + + public boolean IsBitfield() { + return lldbJNI.SBTypeMember_IsBitfield(swigCPtr, this); + } + + public long GetBitfieldSizeInBits() { + return lldbJNI.SBTypeMember_GetBitfieldSizeInBits(swigCPtr, this); + } + + public String __str__() { + return lldbJNI.SBTypeMember___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMemberFunction.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMemberFunction.java new file mode 100644 index 0000000000..f41910b2ac --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeMemberFunction.java @@ -0,0 +1,96 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeMemberFunction { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeMemberFunction(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeMemberFunction obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeMemberFunction(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeMemberFunction() { + this(lldbJNI.new_SBTypeMemberFunction__SWIG_0(), true); + } + + public SBTypeMemberFunction(SBTypeMemberFunction rhs) { + this(lldbJNI.new_SBTypeMemberFunction__SWIG_1(SBTypeMemberFunction.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeMemberFunction_IsValid(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBTypeMemberFunction_GetName(swigCPtr, this); + } + + public String GetDemangledName() { + return lldbJNI.SBTypeMemberFunction_GetDemangledName(swigCPtr, this); + } + + public String GetMangledName() { + return lldbJNI.SBTypeMemberFunction_GetMangledName(swigCPtr, this); + } + + public SBType GetType() { + return new SBType(lldbJNI.SBTypeMemberFunction_GetType(swigCPtr, this), true); + } + + public SBType GetReturnType() { + return new SBType(lldbJNI.SBTypeMemberFunction_GetReturnType(swigCPtr, this), true); + } + + public long GetNumberOfArguments() { + return lldbJNI.SBTypeMemberFunction_GetNumberOfArguments(swigCPtr, this); + } + + public SBType GetArgumentTypeAtIndex(long arg0) { + return new SBType(lldbJNI.SBTypeMemberFunction_GetArgumentTypeAtIndex(swigCPtr, this, arg0), true); + } + + public MemberFunctionKind GetKind() { + return MemberFunctionKind.swigToEnum(lldbJNI.SBTypeMemberFunction_GetKind(swigCPtr, this)); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeMemberFunction_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeMemberFunction___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeNameSpecifier.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeNameSpecifier.java new file mode 100644 index 0000000000..0795757b74 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeNameSpecifier.java @@ -0,0 +1,92 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeNameSpecifier { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeNameSpecifier(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeNameSpecifier obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeNameSpecifier(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeNameSpecifier() { + this(lldbJNI.new_SBTypeNameSpecifier__SWIG_0(), true); + } + + public SBTypeNameSpecifier(String name, boolean is_regex) { + this(lldbJNI.new_SBTypeNameSpecifier__SWIG_1(name, is_regex), true); + } + + public SBTypeNameSpecifier(String name) { + this(lldbJNI.new_SBTypeNameSpecifier__SWIG_2(name), true); + } + + public SBTypeNameSpecifier(SBType type) { + this(lldbJNI.new_SBTypeNameSpecifier__SWIG_3(SBType.getCPtr(type), type), true); + } + + public SBTypeNameSpecifier(SBTypeNameSpecifier rhs) { + this(lldbJNI.new_SBTypeNameSpecifier__SWIG_4(SBTypeNameSpecifier.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeNameSpecifier_IsValid(swigCPtr, this); + } + + public boolean IsEqualTo(SBTypeNameSpecifier rhs) { + return lldbJNI.SBTypeNameSpecifier_IsEqualTo(swigCPtr, this, SBTypeNameSpecifier.getCPtr(rhs), rhs); + } + + public String GetName() { + return lldbJNI.SBTypeNameSpecifier_GetName(swigCPtr, this); + } + + public SBType GetType() { + return new SBType(lldbJNI.SBTypeNameSpecifier_GetType(swigCPtr, this), true); + } + + public boolean IsRegex() { + return lldbJNI.SBTypeNameSpecifier_IsRegex(swigCPtr, this); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeNameSpecifier_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeNameSpecifier___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummary.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummary.java new file mode 100644 index 0000000000..c686668b5e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummary.java @@ -0,0 +1,128 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeSummary { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeSummary(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeSummary obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeSummary(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeSummary() { + this(lldbJNI.new_SBTypeSummary__SWIG_0(), true); + } + + public static SBTypeSummary CreateWithSummaryString(String data, long options) { + return new SBTypeSummary(lldbJNI.SBTypeSummary_CreateWithSummaryString__SWIG_0(data, options), true); + } + + public static SBTypeSummary CreateWithSummaryString(String data) { + return new SBTypeSummary(lldbJNI.SBTypeSummary_CreateWithSummaryString__SWIG_1(data), true); + } + + public static SBTypeSummary CreateWithFunctionName(String data, long options) { + return new SBTypeSummary(lldbJNI.SBTypeSummary_CreateWithFunctionName__SWIG_0(data, options), true); + } + + public static SBTypeSummary CreateWithFunctionName(String data) { + return new SBTypeSummary(lldbJNI.SBTypeSummary_CreateWithFunctionName__SWIG_1(data), true); + } + + public static SBTypeSummary CreateWithScriptCode(String data, long options) { + return new SBTypeSummary(lldbJNI.SBTypeSummary_CreateWithScriptCode__SWIG_0(data, options), true); + } + + public static SBTypeSummary CreateWithScriptCode(String data) { + return new SBTypeSummary(lldbJNI.SBTypeSummary_CreateWithScriptCode__SWIG_1(data), true); + } + + public SBTypeSummary(SBTypeSummary rhs) { + this(lldbJNI.new_SBTypeSummary__SWIG_1(SBTypeSummary.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeSummary_IsValid(swigCPtr, this); + } + + public boolean IsEqualTo(SBTypeSummary rhs) { + return lldbJNI.SBTypeSummary_IsEqualTo(swigCPtr, this, SBTypeSummary.getCPtr(rhs), rhs); + } + + public boolean IsFunctionCode() { + return lldbJNI.SBTypeSummary_IsFunctionCode(swigCPtr, this); + } + + public boolean IsFunctionName() { + return lldbJNI.SBTypeSummary_IsFunctionName(swigCPtr, this); + } + + public boolean IsSummaryString() { + return lldbJNI.SBTypeSummary_IsSummaryString(swigCPtr, this); + } + + public String GetData() { + return lldbJNI.SBTypeSummary_GetData(swigCPtr, this); + } + + public void SetSummaryString(String data) { + lldbJNI.SBTypeSummary_SetSummaryString(swigCPtr, this, data); + } + + public void SetFunctionName(String data) { + lldbJNI.SBTypeSummary_SetFunctionName(swigCPtr, this, data); + } + + public void SetFunctionCode(String data) { + lldbJNI.SBTypeSummary_SetFunctionCode(swigCPtr, this, data); + } + + public long GetOptions() { + return lldbJNI.SBTypeSummary_GetOptions(swigCPtr, this); + } + + public void SetOptions(long arg0) { + lldbJNI.SBTypeSummary_SetOptions(swigCPtr, this, arg0); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeSummary_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeSummary___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummaryOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummaryOptions.java new file mode 100644 index 0000000000..318941db8b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSummaryOptions.java @@ -0,0 +1,72 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeSummaryOptions { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeSummaryOptions(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeSummaryOptions obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeSummaryOptions(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeSummaryOptions() { + this(lldbJNI.new_SBTypeSummaryOptions__SWIG_0(), true); + } + + public SBTypeSummaryOptions(SBTypeSummaryOptions rhs) { + this(lldbJNI.new_SBTypeSummaryOptions__SWIG_1(SBTypeSummaryOptions.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeSummaryOptions_IsValid(swigCPtr, this); + } + + public LanguageType GetLanguage() { + return LanguageType.swigToEnum(lldbJNI.SBTypeSummaryOptions_GetLanguage(swigCPtr, this)); + } + + public TypeSummaryCapping GetCapping() { + return TypeSummaryCapping.swigToEnum(lldbJNI.SBTypeSummaryOptions_GetCapping(swigCPtr, this)); + } + + public void SetLanguage(LanguageType arg0) { + lldbJNI.SBTypeSummaryOptions_SetLanguage(swigCPtr, this, arg0.swigValue()); + } + + public void SetCapping(TypeSummaryCapping arg0) { + lldbJNI.SBTypeSummaryOptions_SetCapping(swigCPtr, this, arg0.swigValue()); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSynthetic.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSynthetic.java new file mode 100644 index 0000000000..f51d46f56e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBTypeSynthetic.java @@ -0,0 +1,108 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBTypeSynthetic { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBTypeSynthetic(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBTypeSynthetic obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBTypeSynthetic(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBTypeSynthetic() { + this(lldbJNI.new_SBTypeSynthetic__SWIG_0(), true); + } + + public static SBTypeSynthetic CreateWithClassName(String data, long options) { + return new SBTypeSynthetic(lldbJNI.SBTypeSynthetic_CreateWithClassName__SWIG_0(data, options), true); + } + + public static SBTypeSynthetic CreateWithClassName(String data) { + return new SBTypeSynthetic(lldbJNI.SBTypeSynthetic_CreateWithClassName__SWIG_1(data), true); + } + + public static SBTypeSynthetic CreateWithScriptCode(String data, long options) { + return new SBTypeSynthetic(lldbJNI.SBTypeSynthetic_CreateWithScriptCode__SWIG_0(data, options), true); + } + + public static SBTypeSynthetic CreateWithScriptCode(String data) { + return new SBTypeSynthetic(lldbJNI.SBTypeSynthetic_CreateWithScriptCode__SWIG_1(data), true); + } + + public SBTypeSynthetic(SBTypeSynthetic rhs) { + this(lldbJNI.new_SBTypeSynthetic__SWIG_1(SBTypeSynthetic.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBTypeSynthetic_IsValid(swigCPtr, this); + } + + public boolean IsEqualTo(SBTypeSynthetic rhs) { + return lldbJNI.SBTypeSynthetic_IsEqualTo(swigCPtr, this, SBTypeSynthetic.getCPtr(rhs), rhs); + } + + public boolean IsClassCode() { + return lldbJNI.SBTypeSynthetic_IsClassCode(swigCPtr, this); + } + + public String GetData() { + return lldbJNI.SBTypeSynthetic_GetData(swigCPtr, this); + } + + public void SetClassName(String data) { + lldbJNI.SBTypeSynthetic_SetClassName(swigCPtr, this, data); + } + + public void SetClassCode(String data) { + lldbJNI.SBTypeSynthetic_SetClassCode(swigCPtr, this, data); + } + + public long GetOptions() { + return lldbJNI.SBTypeSynthetic_GetOptions(swigCPtr, this); + } + + public void SetOptions(long arg0) { + lldbJNI.SBTypeSynthetic_SetOptions(swigCPtr, this, arg0); + } + + public boolean GetDescription(SBStream description, DescriptionLevel description_level) { + return lldbJNI.SBTypeSynthetic_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, description_level.swigValue()); + } + + public String __str__() { + return lldbJNI.SBTypeSynthetic___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBUnixSignals.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBUnixSignals.java new file mode 100644 index 0000000000..54b45bace0 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBUnixSignals.java @@ -0,0 +1,100 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBUnixSignals { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBUnixSignals(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBUnixSignals obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBUnixSignals(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBUnixSignals() { + this(lldbJNI.new_SBUnixSignals__SWIG_0(), true); + } + + public SBUnixSignals(SBUnixSignals rhs) { + this(lldbJNI.new_SBUnixSignals__SWIG_1(SBUnixSignals.getCPtr(rhs), rhs), true); + } + + public void Clear() { + lldbJNI.SBUnixSignals_Clear(swigCPtr, this); + } + + public boolean IsValid() { + return lldbJNI.SBUnixSignals_IsValid(swigCPtr, this); + } + + public String GetSignalAsCString(int signo) { + return lldbJNI.SBUnixSignals_GetSignalAsCString(swigCPtr, this, signo); + } + + public int GetSignalNumberFromName(String name) { + return lldbJNI.SBUnixSignals_GetSignalNumberFromName(swigCPtr, this, name); + } + + public boolean GetShouldSuppress(int signo) { + return lldbJNI.SBUnixSignals_GetShouldSuppress(swigCPtr, this, signo); + } + + public boolean SetShouldSuppress(int signo, boolean value) { + return lldbJNI.SBUnixSignals_SetShouldSuppress(swigCPtr, this, signo, value); + } + + public boolean GetShouldStop(int signo) { + return lldbJNI.SBUnixSignals_GetShouldStop(swigCPtr, this, signo); + } + + public boolean SetShouldStop(int signo, boolean value) { + return lldbJNI.SBUnixSignals_SetShouldStop(swigCPtr, this, signo, value); + } + + public boolean GetShouldNotify(int signo) { + return lldbJNI.SBUnixSignals_GetShouldNotify(swigCPtr, this, signo); + } + + public boolean SetShouldNotify(int signo, boolean value) { + return lldbJNI.SBUnixSignals_SetShouldNotify(swigCPtr, this, signo, value); + } + + public int GetNumSignals() { + return lldbJNI.SBUnixSignals_GetNumSignals(swigCPtr, this); + } + + public int GetSignalAtIndex(int index) { + return lldbJNI.SBUnixSignals_GetSignalAtIndex(swigCPtr, this, index); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValue.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValue.java new file mode 100644 index 0000000000..fc23940d34 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValue.java @@ -0,0 +1,397 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBValue { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBValue(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBValue obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBValue(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBValue() { + this(lldbJNI.new_SBValue__SWIG_0(), true); + } + + public SBValue(SBValue rhs) { + this(lldbJNI.new_SBValue__SWIG_1(SBValue.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBValue_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBValue_Clear(swigCPtr, this); + } + + public SBError GetError() { + return new SBError(lldbJNI.SBValue_GetError(swigCPtr, this), true); + } + + public java.math.BigInteger GetID() { + return lldbJNI.SBValue_GetID(swigCPtr, this); + } + + public String GetName() { + return lldbJNI.SBValue_GetName(swigCPtr, this); + } + + public String GetTypeName() { + return lldbJNI.SBValue_GetTypeName(swigCPtr, this); + } + + public String GetDisplayTypeName() { + return lldbJNI.SBValue_GetDisplayTypeName(swigCPtr, this); + } + + public long GetByteSize() { + return lldbJNI.SBValue_GetByteSize(swigCPtr, this); + } + + public boolean IsInScope() { + return lldbJNI.SBValue_IsInScope(swigCPtr, this); + } + + public Format GetFormat() { + return Format.swigToEnum(lldbJNI.SBValue_GetFormat(swigCPtr, this)); + } + + public void SetFormat(Format format) { + lldbJNI.SBValue_SetFormat(swigCPtr, this, format.swigValue()); + } + + public String GetValue() { + return lldbJNI.SBValue_GetValue(swigCPtr, this); + } + + public long GetValueAsSigned(SBError error, long fail_value) { + return lldbJNI.SBValue_GetValueAsSigned__SWIG_0(swigCPtr, this, SBError.getCPtr(error), error, fail_value); + } + + public long GetValueAsSigned(SBError error) { + return lldbJNI.SBValue_GetValueAsSigned__SWIG_1(swigCPtr, this, SBError.getCPtr(error), error); + } + + public java.math.BigInteger GetValueAsUnsigned(SBError error, java.math.BigInteger fail_value) { + return lldbJNI.SBValue_GetValueAsUnsigned__SWIG_0(swigCPtr, this, SBError.getCPtr(error), error, fail_value); + } + + public java.math.BigInteger GetValueAsUnsigned(SBError error) { + return lldbJNI.SBValue_GetValueAsUnsigned__SWIG_1(swigCPtr, this, SBError.getCPtr(error), error); + } + + public long GetValueAsSigned(long fail_value) { + return lldbJNI.SBValue_GetValueAsSigned__SWIG_2(swigCPtr, this, fail_value); + } + + public long GetValueAsSigned() { + return lldbJNI.SBValue_GetValueAsSigned__SWIG_3(swigCPtr, this); + } + + public java.math.BigInteger GetValueAsUnsigned(java.math.BigInteger fail_value) { + return lldbJNI.SBValue_GetValueAsUnsigned__SWIG_2(swigCPtr, this, fail_value); + } + + public java.math.BigInteger GetValueAsUnsigned() { + return lldbJNI.SBValue_GetValueAsUnsigned__SWIG_3(swigCPtr, this); + } + + public ValueType GetValueType() { + return ValueType.swigToEnum(lldbJNI.SBValue_GetValueType(swigCPtr, this)); + } + + public boolean GetValueDidChange() { + return lldbJNI.SBValue_GetValueDidChange(swigCPtr, this); + } + + public String GetSummary() { + return lldbJNI.SBValue_GetSummary__SWIG_0(swigCPtr, this); + } + + public String GetSummary(SBStream stream, SBTypeSummaryOptions options) { + return lldbJNI.SBValue_GetSummary__SWIG_1(swigCPtr, this, SBStream.getCPtr(stream), stream, SBTypeSummaryOptions.getCPtr(options), options); + } + + public String GetObjectDescription() { + return lldbJNI.SBValue_GetObjectDescription(swigCPtr, this); + } + + public SBValue GetDynamicValue(DynamicValueType use_dynamic) { + return new SBValue(lldbJNI.SBValue_GetDynamicValue(swigCPtr, this, use_dynamic.swigValue()), true); + } + + public SBValue GetStaticValue() { + return new SBValue(lldbJNI.SBValue_GetStaticValue(swigCPtr, this), true); + } + + public SBValue GetNonSyntheticValue() { + return new SBValue(lldbJNI.SBValue_GetNonSyntheticValue(swigCPtr, this), true); + } + + public DynamicValueType GetPreferDynamicValue() { + return DynamicValueType.swigToEnum(lldbJNI.SBValue_GetPreferDynamicValue(swigCPtr, this)); + } + + public void SetPreferDynamicValue(DynamicValueType use_dynamic) { + lldbJNI.SBValue_SetPreferDynamicValue(swigCPtr, this, use_dynamic.swigValue()); + } + + public boolean GetPreferSyntheticValue() { + return lldbJNI.SBValue_GetPreferSyntheticValue(swigCPtr, this); + } + + public void SetPreferSyntheticValue(boolean use_synthetic) { + lldbJNI.SBValue_SetPreferSyntheticValue(swigCPtr, this, use_synthetic); + } + + public boolean IsDynamic() { + return lldbJNI.SBValue_IsDynamic(swigCPtr, this); + } + + public boolean IsSynthetic() { + return lldbJNI.SBValue_IsSynthetic(swigCPtr, this); + } + + public boolean IsSyntheticChildrenGenerated() { + return lldbJNI.SBValue_IsSyntheticChildrenGenerated(swigCPtr, this); + } + + public void SetSyntheticChildrenGenerated(boolean arg0) { + lldbJNI.SBValue_SetSyntheticChildrenGenerated(swigCPtr, this, arg0); + } + + public String GetLocation() { + return lldbJNI.SBValue_GetLocation(swigCPtr, this); + } + + public boolean SetValueFromCString(String value_str) { + return lldbJNI.SBValue_SetValueFromCString__SWIG_0(swigCPtr, this, value_str); + } + + public boolean SetValueFromCString(String value_str, SBError error) { + return lldbJNI.SBValue_SetValueFromCString__SWIG_1(swigCPtr, this, value_str, SBError.getCPtr(error), error); + } + + public SBTypeFormat GetTypeFormat() { + return new SBTypeFormat(lldbJNI.SBValue_GetTypeFormat(swigCPtr, this), true); + } + + public SBTypeSummary GetTypeSummary() { + return new SBTypeSummary(lldbJNI.SBValue_GetTypeSummary(swigCPtr, this), true); + } + + public SBTypeFilter GetTypeFilter() { + return new SBTypeFilter(lldbJNI.SBValue_GetTypeFilter(swigCPtr, this), true); + } + + public SBTypeSynthetic GetTypeSynthetic() { + return new SBTypeSynthetic(lldbJNI.SBValue_GetTypeSynthetic(swigCPtr, this), true); + } + + public SBValue GetChildAtIndex(long idx) { + return new SBValue(lldbJNI.SBValue_GetChildAtIndex__SWIG_0(swigCPtr, this, idx), true); + } + + public SBValue GetChildAtIndex(long idx, DynamicValueType use_dynamic, boolean can_create_synthetic) { + return new SBValue(lldbJNI.SBValue_GetChildAtIndex__SWIG_1(swigCPtr, this, idx, use_dynamic.swigValue(), can_create_synthetic), true); + } + + public SBValue CreateChildAtOffset(String name, long offset, SBType type) { + return new SBValue(lldbJNI.SBValue_CreateChildAtOffset(swigCPtr, this, name, offset, SBType.getCPtr(type), type), true); + } + + public SBValue Cast(SBType type) { + return new SBValue(lldbJNI.SBValue_Cast(swigCPtr, this, SBType.getCPtr(type), type), true); + } + + public SBValue CreateValueFromExpression(String name, String expression) { + return new SBValue(lldbJNI.SBValue_CreateValueFromExpression__SWIG_0(swigCPtr, this, name, expression), true); + } + + public SBValue CreateValueFromExpression(String name, String expression, SBExpressionOptions options) { + return new SBValue(lldbJNI.SBValue_CreateValueFromExpression__SWIG_1(swigCPtr, this, name, expression, SBExpressionOptions.getCPtr(options), options), true); + } + + public SBValue CreateValueFromAddress(String name, java.math.BigInteger address, SBType type) { + return new SBValue(lldbJNI.SBValue_CreateValueFromAddress(swigCPtr, this, name, address, SBType.getCPtr(type), type), true); + } + + public SBValue CreateValueFromData(String name, SBData data, SBType type) { + return new SBValue(lldbJNI.SBValue_CreateValueFromData(swigCPtr, this, name, SBData.getCPtr(data), data, SBType.getCPtr(type), type), true); + } + + public SBType GetType() { + return new SBType(lldbJNI.SBValue_GetType(swigCPtr, this), true); + } + + public long GetIndexOfChildWithName(String name) { + return lldbJNI.SBValue_GetIndexOfChildWithName(swigCPtr, this, name); + } + + public SBValue GetChildMemberWithName(String name) { + return new SBValue(lldbJNI.SBValue_GetChildMemberWithName__SWIG_0(swigCPtr, this, name), true); + } + + public SBValue GetChildMemberWithName(String name, DynamicValueType use_dynamic) { + return new SBValue(lldbJNI.SBValue_GetChildMemberWithName__SWIG_1(swigCPtr, this, name, use_dynamic.swigValue()), true); + } + + public SBValue GetValueForExpressionPath(String expr_path) { + return new SBValue(lldbJNI.SBValue_GetValueForExpressionPath(swigCPtr, this, expr_path), true); + } + + public SBDeclaration GetDeclaration() { + return new SBDeclaration(lldbJNI.SBValue_GetDeclaration(swigCPtr, this), true); + } + + public boolean MightHaveChildren() { + return lldbJNI.SBValue_MightHaveChildren(swigCPtr, this); + } + + public boolean IsRuntimeSupportValue() { + return lldbJNI.SBValue_IsRuntimeSupportValue(swigCPtr, this); + } + + public long GetNumChildren() { + return lldbJNI.SBValue_GetNumChildren__SWIG_0(swigCPtr, this); + } + + public long GetNumChildren(long max) { + return lldbJNI.SBValue_GetNumChildren__SWIG_1(swigCPtr, this, max); + } + + public SWIGTYPE_p_void GetOpaqueType() { + long cPtr = lldbJNI.SBValue_GetOpaqueType(swigCPtr, this); + return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false); + } + + public SBValue Dereference() { + return new SBValue(lldbJNI.SBValue_Dereference(swigCPtr, this), true); + } + + public SBValue AddressOf() { + return new SBValue(lldbJNI.SBValue_AddressOf(swigCPtr, this), true); + } + + public boolean TypeIsPointerType() { + return lldbJNI.SBValue_TypeIsPointerType(swigCPtr, this); + } + + public SBTarget GetTarget() { + return new SBTarget(lldbJNI.SBValue_GetTarget(swigCPtr, this), true); + } + + public SBProcess GetProcess() { + return new SBProcess(lldbJNI.SBValue_GetProcess(swigCPtr, this), true); + } + + public SBThread GetThread() { + return new SBThread(lldbJNI.SBValue_GetThread(swigCPtr, this), true); + } + + public SBFrame GetFrame() { + return new SBFrame(lldbJNI.SBValue_GetFrame(swigCPtr, this), true); + } + + public SBWatchpoint Watch(boolean resolve_location, boolean read, boolean write, SBError error) { + return new SBWatchpoint(lldbJNI.SBValue_Watch(swigCPtr, this, resolve_location, read, write, SBError.getCPtr(error), error), true); + } + + public SBWatchpoint WatchPointee(boolean resolve_location, boolean read, boolean write, SBError error) { + return new SBWatchpoint(lldbJNI.SBValue_WatchPointee(swigCPtr, this, resolve_location, read, write, SBError.getCPtr(error), error), true); + } + + public boolean GetDescription(SBStream description) { + return lldbJNI.SBValue_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public boolean GetExpressionPath(SBStream description) { + return lldbJNI.SBValue_GetExpressionPath__SWIG_0(swigCPtr, this, SBStream.getCPtr(description), description); + } + + public SBData GetPointeeData(long item_idx, long item_count) { + return new SBData(lldbJNI.SBValue_GetPointeeData__SWIG_0(swigCPtr, this, item_idx, item_count), true); + } + + public SBData GetPointeeData(long item_idx) { + return new SBData(lldbJNI.SBValue_GetPointeeData__SWIG_1(swigCPtr, this, item_idx), true); + } + + public SBData GetPointeeData() { + return new SBData(lldbJNI.SBValue_GetPointeeData__SWIG_2(swigCPtr, this), true); + } + + public SBData GetData() { + return new SBData(lldbJNI.SBValue_GetData(swigCPtr, this), true); + } + + public boolean SetData(SBData data, SBError error) { + return lldbJNI.SBValue_SetData(swigCPtr, this, SBData.getCPtr(data), data, SBError.getCPtr(error), error); + } + + public java.math.BigInteger GetLoadAddress() { + return lldbJNI.SBValue_GetLoadAddress(swigCPtr, this); + } + + public SBAddress GetAddress() { + return new SBAddress(lldbJNI.SBValue_GetAddress(swigCPtr, this), true); + } + + public SBValue Persist() { + return new SBValue(lldbJNI.SBValue_Persist(swigCPtr, this), true); + } + + public boolean GetExpressionPath(SBStream description, boolean qualify_cxx_base_classes) { + return lldbJNI.SBValue_GetExpressionPath__SWIG_1(swigCPtr, this, SBStream.getCPtr(description), description, qualify_cxx_base_classes); + } + + public SBValue EvaluateExpression(String expr) { + return new SBValue(lldbJNI.SBValue_EvaluateExpression__SWIG_0(swigCPtr, this, expr), true); + } + + public SBValue EvaluateExpression(String expr, SBExpressionOptions options) { + return new SBValue(lldbJNI.SBValue_EvaluateExpression__SWIG_1(swigCPtr, this, expr, SBExpressionOptions.getCPtr(options), options), true); + } + + public SBValue EvaluateExpression(String expr, SBExpressionOptions options, String name) { + return new SBValue(lldbJNI.SBValue_EvaluateExpression__SWIG_2(swigCPtr, this, expr, SBExpressionOptions.getCPtr(options), options, name), true); + } + + public String __str__() { + return lldbJNI.SBValue___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValueList.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValueList.java new file mode 100644 index 0000000000..abe86f9799 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBValueList.java @@ -0,0 +1,88 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBValueList { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBValueList(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBValueList obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBValueList(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBValueList() { + this(lldbJNI.new_SBValueList__SWIG_0(), true); + } + + public SBValueList(SBValueList rhs) { + this(lldbJNI.new_SBValueList__SWIG_1(SBValueList.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBValueList_IsValid(swigCPtr, this); + } + + public void Clear() { + lldbJNI.SBValueList_Clear(swigCPtr, this); + } + + public void Append(SBValue val_obj) { + lldbJNI.SBValueList_Append__SWIG_0(swigCPtr, this, SBValue.getCPtr(val_obj), val_obj); + } + + public void Append(SBValueList value_list) { + lldbJNI.SBValueList_Append__SWIG_1(swigCPtr, this, SBValueList.getCPtr(value_list), value_list); + } + + public long GetSize() { + return lldbJNI.SBValueList_GetSize(swigCPtr, this); + } + + public SBValue GetValueAtIndex(long idx) { + return new SBValue(lldbJNI.SBValueList_GetValueAtIndex(swigCPtr, this, idx), true); + } + + public SBValue FindValueObjectByUID(java.math.BigInteger uid) { + return new SBValue(lldbJNI.SBValueList_FindValueObjectByUID(swigCPtr, this, uid), true); + } + + public SBValue GetFirstValueByName(String name) { + return new SBValue(lldbJNI.SBValueList_GetFirstValueByName(swigCPtr, this, name), true); + } + + public String __str__() { + return lldbJNI.SBValueList___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBVariablesOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBVariablesOptions.java new file mode 100644 index 0000000000..5af860631a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBVariablesOptions.java @@ -0,0 +1,112 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBVariablesOptions { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBVariablesOptions(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBVariablesOptions obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBVariablesOptions(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBVariablesOptions() { + this(lldbJNI.new_SBVariablesOptions__SWIG_0(), true); + } + + public SBVariablesOptions(SBVariablesOptions options) { + this(lldbJNI.new_SBVariablesOptions__SWIG_1(SBVariablesOptions.getCPtr(options), options), true); + } + + public boolean IsValid() { + return lldbJNI.SBVariablesOptions_IsValid(swigCPtr, this); + } + + public boolean GetIncludeArguments() { + return lldbJNI.SBVariablesOptions_GetIncludeArguments(swigCPtr, this); + } + + public void SetIncludeArguments(boolean arg0) { + lldbJNI.SBVariablesOptions_SetIncludeArguments(swigCPtr, this, arg0); + } + + public boolean GetIncludeRecognizedArguments(SBTarget arg0) { + return lldbJNI.SBVariablesOptions_GetIncludeRecognizedArguments(swigCPtr, this, SBTarget.getCPtr(arg0), arg0); + } + + public void SetIncludeRecognizedArguments(boolean arg0) { + lldbJNI.SBVariablesOptions_SetIncludeRecognizedArguments(swigCPtr, this, arg0); + } + + public boolean GetIncludeLocals() { + return lldbJNI.SBVariablesOptions_GetIncludeLocals(swigCPtr, this); + } + + public void SetIncludeLocals(boolean arg0) { + lldbJNI.SBVariablesOptions_SetIncludeLocals(swigCPtr, this, arg0); + } + + public boolean GetIncludeStatics() { + return lldbJNI.SBVariablesOptions_GetIncludeStatics(swigCPtr, this); + } + + public void SetIncludeStatics(boolean arg0) { + lldbJNI.SBVariablesOptions_SetIncludeStatics(swigCPtr, this, arg0); + } + + public boolean GetInScopeOnly() { + return lldbJNI.SBVariablesOptions_GetInScopeOnly(swigCPtr, this); + } + + public void SetInScopeOnly(boolean arg0) { + lldbJNI.SBVariablesOptions_SetInScopeOnly(swigCPtr, this, arg0); + } + + public boolean GetIncludeRuntimeSupportValues() { + return lldbJNI.SBVariablesOptions_GetIncludeRuntimeSupportValues(swigCPtr, this); + } + + public void SetIncludeRuntimeSupportValues(boolean arg0) { + lldbJNI.SBVariablesOptions_SetIncludeRuntimeSupportValues(swigCPtr, this, arg0); + } + + public DynamicValueType GetUseDynamic() { + return DynamicValueType.swigToEnum(lldbJNI.SBVariablesOptions_GetUseDynamic(swigCPtr, this)); + } + + public void SetUseDynamic(DynamicValueType arg0) { + lldbJNI.SBVariablesOptions_SetUseDynamic(swigCPtr, this, arg0.swigValue()); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBWatchpoint.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBWatchpoint.java new file mode 100644 index 0000000000..0c7c8408a1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SBWatchpoint.java @@ -0,0 +1,124 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SBWatchpoint { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected SBWatchpoint(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(SBWatchpoint obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + lldbJNI.delete_SBWatchpoint(swigCPtr); + } + swigCPtr = 0; + } + } + + public SBWatchpoint() { + this(lldbJNI.new_SBWatchpoint__SWIG_0(), true); + } + + public SBWatchpoint(SBWatchpoint rhs) { + this(lldbJNI.new_SBWatchpoint__SWIG_1(SBWatchpoint.getCPtr(rhs), rhs), true); + } + + public boolean IsValid() { + return lldbJNI.SBWatchpoint_IsValid(swigCPtr, this); + } + + public SBError GetError() { + return new SBError(lldbJNI.SBWatchpoint_GetError(swigCPtr, this), true); + } + + public int GetID() { + return lldbJNI.SBWatchpoint_GetID(swigCPtr, this); + } + + public int GetHardwareIndex() { + return lldbJNI.SBWatchpoint_GetHardwareIndex(swigCPtr, this); + } + + public java.math.BigInteger GetWatchAddress() { + return lldbJNI.SBWatchpoint_GetWatchAddress(swigCPtr, this); + } + + public long GetWatchSize() { + return lldbJNI.SBWatchpoint_GetWatchSize(swigCPtr, this); + } + + public void SetEnabled(boolean enabled) { + lldbJNI.SBWatchpoint_SetEnabled(swigCPtr, this, enabled); + } + + public boolean IsEnabled() { + return lldbJNI.SBWatchpoint_IsEnabled(swigCPtr, this); + } + + public long GetHitCount() { + return lldbJNI.SBWatchpoint_GetHitCount(swigCPtr, this); + } + + public long GetIgnoreCount() { + return lldbJNI.SBWatchpoint_GetIgnoreCount(swigCPtr, this); + } + + public void SetIgnoreCount(long n) { + lldbJNI.SBWatchpoint_SetIgnoreCount(swigCPtr, this, n); + } + + public String GetCondition() { + return lldbJNI.SBWatchpoint_GetCondition(swigCPtr, this); + } + + public void SetCondition(String condition) { + lldbJNI.SBWatchpoint_SetCondition(swigCPtr, this, condition); + } + + public boolean GetDescription(SBStream description, DescriptionLevel level) { + return lldbJNI.SBWatchpoint_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description, level.swigValue()); + } + + public static boolean EventIsWatchpointEvent(SBEvent event) { + return lldbJNI.SBWatchpoint_EventIsWatchpointEvent(SBEvent.getCPtr(event), event); + } + + public static WatchpointEventType GetWatchpointEventTypeFromEvent(SBEvent event) { + return WatchpointEventType.swigToEnum(lldbJNI.SBWatchpoint_GetWatchpointEventTypeFromEvent(SBEvent.getCPtr(event), event)); + } + + public static SBWatchpoint GetWatchpointFromEvent(SBEvent event) { + return new SBWatchpoint(lldbJNI.SBWatchpoint_GetWatchpointFromEvent(SBEvent.getCPtr(event), event), true); + } + + public String __str__() { + return lldbJNI.SBWatchpoint___str__(swigCPtr, this); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_JNIEnv.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_JNIEnv.java new file mode 100644 index 0000000000..0218c36fd3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_JNIEnv.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_JNIEnv { + private transient long swigCPtr; + + protected SWIGTYPE_p_JNIEnv(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_JNIEnv() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_JNIEnv obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_bool.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_bool.java new file mode 100644 index 0000000000..abcca67e7d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_bool.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_bool { + private transient long swigCPtr; + + protected SWIGTYPE_p_bool(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_bool() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_bool obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_byte.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_byte.java new file mode 100644 index 0000000000..6f20b1f826 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_byte.java @@ -0,0 +1,30 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SWIGTYPE_p_byte { + private transient long swigCPtr; + + protected SWIGTYPE_p_byte(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_byte() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_byte obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_char.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_char.java new file mode 100644 index 0000000000..c23cd3eafb --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_char.java @@ -0,0 +1,30 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SWIGTYPE_p_char { + private transient long swigCPtr; + + protected SWIGTYPE_p_char(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_char() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_char obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_double.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_double.java new file mode 100644 index 0000000000..304d82e735 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_double.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_double { + private transient long swigCPtr; + + protected SWIGTYPE_p_double(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_double() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_double obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_q_const__char_p_void__void.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_q_const__char_p_void__void.java new file mode 100644 index 0000000000..c779bee3e4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_q_const__char_p_void__void.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_f_p_q_const__char_p_void__void { + private transient long swigCPtr; + + protected SWIGTYPE_p_f_p_q_const__char_p_void__void(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_f_p_q_const__char_p_void__void() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_f_p_q_const__char_p_void__void obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void__p_void.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void__p_void.java new file mode 100644 index 0000000000..6825247071 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void__p_void.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_f_p_void__p_void { + private transient long swigCPtr; + + protected SWIGTYPE_p_f_p_void__p_void(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_f_p_void__p_void() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_f_p_void__p_void obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void.java new file mode 100644 index 0000000000..b8aa65573a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void { + private transient long swigCPtr; + + protected SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_f_p_void_p_q_const__void_size_t__void obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_float.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_float.java new file mode 100644 index 0000000000..8f6412a6c8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_float.java @@ -0,0 +1,30 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SWIGTYPE_p_float { + private transient long swigCPtr; + + protected SWIGTYPE_p_float(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_float() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_float obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_int.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_int.java new file mode 100644 index 0000000000..fad3e3524a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_int.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_int { + private transient long swigCPtr; + + protected SWIGTYPE_p_int(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_int() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_int obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_jbyte.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_jbyte.java new file mode 100644 index 0000000000..f5e4e897f5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_jbyte.java @@ -0,0 +1,30 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +public class SWIGTYPE_p_jbyte { + private transient long swigCPtr; + + protected SWIGTYPE_p_jbyte(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_jbyte() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_jbyte obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_lldb__ConnectionStatus.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_lldb__ConnectionStatus.java new file mode 100644 index 0000000000..3b9b338a7c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_lldb__ConnectionStatus.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_lldb__ConnectionStatus { + private transient long swigCPtr; + + protected SWIGTYPE_p_lldb__ConnectionStatus(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_lldb__ConnectionStatus() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_lldb__ConnectionStatus obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_double.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_double.java new file mode 100644 index 0000000000..756d2c8067 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_double.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_long_double { + private transient long swigCPtr; + + protected SWIGTYPE_p_long_double(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_long_double() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_long_double obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_long.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_long.java new file mode 100644 index 0000000000..6d4d0ef5fe --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_long_long.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_long_long { + private transient long swigCPtr; + + protected SWIGTYPE_p_long_long(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_long_long() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_long_long obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_char.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_char.java new file mode 100644 index 0000000000..14408d4b95 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_char.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_p_char { + private transient long swigCPtr; + + protected SWIGTYPE_p_p_char(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_p_char() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_p_char obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_void.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_void.java new file mode 100644 index 0000000000..d876e06301 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_p_void.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_p_void { + private transient long swigCPtr; + + protected SWIGTYPE_p_p_void(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_p_void() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_p_void obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_pthread_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_pthread_t.java new file mode 100644 index 0000000000..f94664c250 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_pthread_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_pthread_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_pthread_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_pthread_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_pthread_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_size_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_size_t.java new file mode 100644 index 0000000000..65fff4bf1b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_size_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_size_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_size_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_size_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_size_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t.java new file mode 100644 index 0000000000..9e5b47f37b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_std__shared_ptrT_lldb_private__Event_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.java new file mode 100644 index 0000000000..1791d3273a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t.java new file mode 100644 index 0000000000..553af56885 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_std__shared_ptrT_lldb_private__QueueItem_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t.java new file mode 100644 index 0000000000..cddcb5d68b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_std__shared_ptrT_lldb_private__Queue_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t.java new file mode 100644 index 0000000000..bef7701f50 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t { + private transient long swigCPtr; + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_std__shared_ptrT_lldb_private__ThreadPlan_t obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_char.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_char.java new file mode 100644 index 0000000000..a7cd691975 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_char.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_unsigned_char { + private transient long swigCPtr; + + protected SWIGTYPE_p_unsigned_char(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_unsigned_char() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_unsigned_char obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_int.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_int.java new file mode 100644 index 0000000000..019ca46ab9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_int.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_unsigned_int { + private transient long swigCPtr; + + protected SWIGTYPE_p_unsigned_int(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_unsigned_int() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_unsigned_int obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_long_long.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_long_long.java new file mode 100644 index 0000000000..923b31f2ef --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_unsigned_long_long.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_unsigned_long_long { + private transient long swigCPtr; + + protected SWIGTYPE_p_unsigned_long_long(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_unsigned_long_long() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_unsigned_long_long obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_void.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_void.java new file mode 100644 index 0000000000..be59bb6aaf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SWIGTYPE_p_void.java @@ -0,0 +1,31 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public class SWIGTYPE_p_void { + private transient long swigCPtr; + + protected SWIGTYPE_p_void(long cPtr, @SuppressWarnings("unused") boolean futureUse) { + swigCPtr = cPtr; + } + + protected SWIGTYPE_p_void() { + swigCPtr = 0; + } + + protected static long getCPtr(SWIGTYPE_p_void obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ScriptLanguage.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ScriptLanguage.java new file mode 100644 index 0000000000..4a651975f9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ScriptLanguage.java @@ -0,0 +1,62 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ScriptLanguage { + public final static ScriptLanguage eScriptLanguageNone = new ScriptLanguage("eScriptLanguageNone", lldbJNI.eScriptLanguageNone_get()); + public final static ScriptLanguage eScriptLanguagePython = new ScriptLanguage("eScriptLanguagePython"); + public final static ScriptLanguage eScriptLanguageLua = new ScriptLanguage("eScriptLanguageLua"); + public final static ScriptLanguage eScriptLanguageUnknown = new ScriptLanguage("eScriptLanguageUnknown"); + public final static ScriptLanguage eScriptLanguageDefault = new ScriptLanguage("eScriptLanguageDefault", lldbJNI.eScriptLanguageDefault_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ScriptLanguage swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ScriptLanguage.class + " with value " + swigValue); + } + + private ScriptLanguage(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ScriptLanguage(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ScriptLanguage(String swigName, ScriptLanguage swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ScriptLanguage[] swigValues = { eScriptLanguageNone, eScriptLanguagePython, eScriptLanguageLua, eScriptLanguageUnknown, eScriptLanguageDefault }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SearchDepth.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SearchDepth.java new file mode 100644 index 0000000000..a1dab62c2a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SearchDepth.java @@ -0,0 +1,65 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class SearchDepth { + public final static SearchDepth eSearchDepthInvalid = new SearchDepth("eSearchDepthInvalid", lldbJNI.eSearchDepthInvalid_get()); + public final static SearchDepth eSearchDepthTarget = new SearchDepth("eSearchDepthTarget"); + public final static SearchDepth eSearchDepthModule = new SearchDepth("eSearchDepthModule"); + public final static SearchDepth eSearchDepthCompUnit = new SearchDepth("eSearchDepthCompUnit"); + public final static SearchDepth eSearchDepthFunction = new SearchDepth("eSearchDepthFunction"); + public final static SearchDepth eSearchDepthBlock = new SearchDepth("eSearchDepthBlock"); + public final static SearchDepth eSearchDepthAddress = new SearchDepth("eSearchDepthAddress"); + public final static SearchDepth kLastSearchDepthKind = new SearchDepth("kLastSearchDepthKind", lldbJNI.kLastSearchDepthKind_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static SearchDepth swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + SearchDepth.class + " with value " + swigValue); + } + + private SearchDepth(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private SearchDepth(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private SearchDepth(String swigName, SearchDepth swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static SearchDepth[] swigValues = { eSearchDepthInvalid, eSearchDepthTarget, eSearchDepthModule, eSearchDepthCompUnit, eSearchDepthFunction, eSearchDepthBlock, eSearchDepthAddress, kLastSearchDepthKind }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SectionType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SectionType.java new file mode 100644 index 0000000000..862bbab554 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SectionType.java @@ -0,0 +1,117 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class SectionType { + public final static SectionType eSectionTypeInvalid = new SectionType("eSectionTypeInvalid"); + public final static SectionType eSectionTypeCode = new SectionType("eSectionTypeCode"); + public final static SectionType eSectionTypeContainer = new SectionType("eSectionTypeContainer"); + public final static SectionType eSectionTypeData = new SectionType("eSectionTypeData"); + public final static SectionType eSectionTypeDataCString = new SectionType("eSectionTypeDataCString"); + public final static SectionType eSectionTypeDataCStringPointers = new SectionType("eSectionTypeDataCStringPointers"); + public final static SectionType eSectionTypeDataSymbolAddress = new SectionType("eSectionTypeDataSymbolAddress"); + public final static SectionType eSectionTypeData4 = new SectionType("eSectionTypeData4"); + public final static SectionType eSectionTypeData8 = new SectionType("eSectionTypeData8"); + public final static SectionType eSectionTypeData16 = new SectionType("eSectionTypeData16"); + public final static SectionType eSectionTypeDataPointers = new SectionType("eSectionTypeDataPointers"); + public final static SectionType eSectionTypeDebug = new SectionType("eSectionTypeDebug"); + public final static SectionType eSectionTypeZeroFill = new SectionType("eSectionTypeZeroFill"); + public final static SectionType eSectionTypeDataObjCMessageRefs = new SectionType("eSectionTypeDataObjCMessageRefs"); + public final static SectionType eSectionTypeDataObjCCFStrings = new SectionType("eSectionTypeDataObjCCFStrings"); + public final static SectionType eSectionTypeDWARFDebugAbbrev = new SectionType("eSectionTypeDWARFDebugAbbrev"); + public final static SectionType eSectionTypeDWARFDebugAddr = new SectionType("eSectionTypeDWARFDebugAddr"); + public final static SectionType eSectionTypeDWARFDebugAranges = new SectionType("eSectionTypeDWARFDebugAranges"); + public final static SectionType eSectionTypeDWARFDebugCuIndex = new SectionType("eSectionTypeDWARFDebugCuIndex"); + public final static SectionType eSectionTypeDWARFDebugFrame = new SectionType("eSectionTypeDWARFDebugFrame"); + public final static SectionType eSectionTypeDWARFDebugInfo = new SectionType("eSectionTypeDWARFDebugInfo"); + public final static SectionType eSectionTypeDWARFDebugLine = new SectionType("eSectionTypeDWARFDebugLine"); + public final static SectionType eSectionTypeDWARFDebugLoc = new SectionType("eSectionTypeDWARFDebugLoc"); + public final static SectionType eSectionTypeDWARFDebugMacInfo = new SectionType("eSectionTypeDWARFDebugMacInfo"); + public final static SectionType eSectionTypeDWARFDebugMacro = new SectionType("eSectionTypeDWARFDebugMacro"); + public final static SectionType eSectionTypeDWARFDebugPubNames = new SectionType("eSectionTypeDWARFDebugPubNames"); + public final static SectionType eSectionTypeDWARFDebugPubTypes = new SectionType("eSectionTypeDWARFDebugPubTypes"); + public final static SectionType eSectionTypeDWARFDebugRanges = new SectionType("eSectionTypeDWARFDebugRanges"); + public final static SectionType eSectionTypeDWARFDebugStr = new SectionType("eSectionTypeDWARFDebugStr"); + public final static SectionType eSectionTypeDWARFDebugStrOffsets = new SectionType("eSectionTypeDWARFDebugStrOffsets"); + public final static SectionType eSectionTypeDWARFAppleNames = new SectionType("eSectionTypeDWARFAppleNames"); + public final static SectionType eSectionTypeDWARFAppleTypes = new SectionType("eSectionTypeDWARFAppleTypes"); + public final static SectionType eSectionTypeDWARFAppleNamespaces = new SectionType("eSectionTypeDWARFAppleNamespaces"); + public final static SectionType eSectionTypeDWARFAppleObjC = new SectionType("eSectionTypeDWARFAppleObjC"); + public final static SectionType eSectionTypeELFSymbolTable = new SectionType("eSectionTypeELFSymbolTable"); + public final static SectionType eSectionTypeELFDynamicSymbols = new SectionType("eSectionTypeELFDynamicSymbols"); + public final static SectionType eSectionTypeELFRelocationEntries = new SectionType("eSectionTypeELFRelocationEntries"); + public final static SectionType eSectionTypeELFDynamicLinkInfo = new SectionType("eSectionTypeELFDynamicLinkInfo"); + public final static SectionType eSectionTypeEHFrame = new SectionType("eSectionTypeEHFrame"); + public final static SectionType eSectionTypeARMexidx = new SectionType("eSectionTypeARMexidx"); + public final static SectionType eSectionTypeARMextab = new SectionType("eSectionTypeARMextab"); + public final static SectionType eSectionTypeCompactUnwind = new SectionType("eSectionTypeCompactUnwind"); + public final static SectionType eSectionTypeGoSymtab = new SectionType("eSectionTypeGoSymtab"); + public final static SectionType eSectionTypeAbsoluteAddress = new SectionType("eSectionTypeAbsoluteAddress"); + public final static SectionType eSectionTypeDWARFGNUDebugAltLink = new SectionType("eSectionTypeDWARFGNUDebugAltLink"); + public final static SectionType eSectionTypeDWARFDebugTypes = new SectionType("eSectionTypeDWARFDebugTypes"); + public final static SectionType eSectionTypeDWARFDebugNames = new SectionType("eSectionTypeDWARFDebugNames"); + public final static SectionType eSectionTypeOther = new SectionType("eSectionTypeOther"); + public final static SectionType eSectionTypeDWARFDebugLineStr = new SectionType("eSectionTypeDWARFDebugLineStr"); + public final static SectionType eSectionTypeDWARFDebugRngLists = new SectionType("eSectionTypeDWARFDebugRngLists"); + public final static SectionType eSectionTypeDWARFDebugLocLists = new SectionType("eSectionTypeDWARFDebugLocLists"); + public final static SectionType eSectionTypeDWARFDebugAbbrevDwo = new SectionType("eSectionTypeDWARFDebugAbbrevDwo"); + public final static SectionType eSectionTypeDWARFDebugInfoDwo = new SectionType("eSectionTypeDWARFDebugInfoDwo"); + public final static SectionType eSectionTypeDWARFDebugStrDwo = new SectionType("eSectionTypeDWARFDebugStrDwo"); + public final static SectionType eSectionTypeDWARFDebugStrOffsetsDwo = new SectionType("eSectionTypeDWARFDebugStrOffsetsDwo"); + public final static SectionType eSectionTypeDWARFDebugTypesDwo = new SectionType("eSectionTypeDWARFDebugTypesDwo"); + public final static SectionType eSectionTypeDWARFDebugRngListsDwo = new SectionType("eSectionTypeDWARFDebugRngListsDwo"); + public final static SectionType eSectionTypeDWARFDebugLocDwo = new SectionType("eSectionTypeDWARFDebugLocDwo"); + public final static SectionType eSectionTypeDWARFDebugLocListsDwo = new SectionType("eSectionTypeDWARFDebugLocListsDwo"); + public final static SectionType eSectionTypeDWARFDebugTuIndex = new SectionType("eSectionTypeDWARFDebugTuIndex"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static SectionType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + SectionType.class + " with value " + swigValue); + } + + private SectionType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private SectionType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private SectionType(String swigName, SectionType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static SectionType[] swigValues = { eSectionTypeInvalid, eSectionTypeCode, eSectionTypeContainer, eSectionTypeData, eSectionTypeDataCString, eSectionTypeDataCStringPointers, eSectionTypeDataSymbolAddress, eSectionTypeData4, eSectionTypeData8, eSectionTypeData16, eSectionTypeDataPointers, eSectionTypeDebug, eSectionTypeZeroFill, eSectionTypeDataObjCMessageRefs, eSectionTypeDataObjCCFStrings, eSectionTypeDWARFDebugAbbrev, eSectionTypeDWARFDebugAddr, eSectionTypeDWARFDebugAranges, eSectionTypeDWARFDebugCuIndex, eSectionTypeDWARFDebugFrame, eSectionTypeDWARFDebugInfo, eSectionTypeDWARFDebugLine, eSectionTypeDWARFDebugLoc, eSectionTypeDWARFDebugMacInfo, eSectionTypeDWARFDebugMacro, eSectionTypeDWARFDebugPubNames, eSectionTypeDWARFDebugPubTypes, eSectionTypeDWARFDebugRanges, eSectionTypeDWARFDebugStr, eSectionTypeDWARFDebugStrOffsets, eSectionTypeDWARFAppleNames, eSectionTypeDWARFAppleTypes, eSectionTypeDWARFAppleNamespaces, eSectionTypeDWARFAppleObjC, eSectionTypeELFSymbolTable, eSectionTypeELFDynamicSymbols, eSectionTypeELFRelocationEntries, eSectionTypeELFDynamicLinkInfo, eSectionTypeEHFrame, eSectionTypeARMexidx, eSectionTypeARMextab, eSectionTypeCompactUnwind, eSectionTypeGoSymtab, eSectionTypeAbsoluteAddress, eSectionTypeDWARFGNUDebugAltLink, eSectionTypeDWARFDebugTypes, eSectionTypeDWARFDebugNames, eSectionTypeOther, eSectionTypeDWARFDebugLineStr, eSectionTypeDWARFDebugRngLists, eSectionTypeDWARFDebugLocLists, eSectionTypeDWARFDebugAbbrevDwo, eSectionTypeDWARFDebugInfoDwo, eSectionTypeDWARFDebugStrDwo, eSectionTypeDWARFDebugStrOffsetsDwo, eSectionTypeDWARFDebugTypesDwo, eSectionTypeDWARFDebugRngListsDwo, eSectionTypeDWARFDebugLocDwo, eSectionTypeDWARFDebugLocListsDwo, eSectionTypeDWARFDebugTuIndex }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StateType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StateType.java new file mode 100644 index 0000000000..3cca12d000 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StateType.java @@ -0,0 +1,70 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class StateType { + public final static StateType eStateInvalid = new StateType("eStateInvalid"); + public final static StateType eStateUnloaded = new StateType("eStateUnloaded"); + public final static StateType eStateConnected = new StateType("eStateConnected"); + public final static StateType eStateAttaching = new StateType("eStateAttaching"); + public final static StateType eStateLaunching = new StateType("eStateLaunching"); + public final static StateType eStateStopped = new StateType("eStateStopped"); + public final static StateType eStateRunning = new StateType("eStateRunning"); + public final static StateType eStateStepping = new StateType("eStateStepping"); + public final static StateType eStateCrashed = new StateType("eStateCrashed"); + public final static StateType eStateDetached = new StateType("eStateDetached"); + public final static StateType eStateExited = new StateType("eStateExited"); + public final static StateType eStateSuspended = new StateType("eStateSuspended"); + public final static StateType kLastStateType = new StateType("kLastStateType"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static StateType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + StateType.class + " with value " + swigValue); + } + + private StateType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private StateType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private StateType(String swigName, StateType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static StateType[] swigValues = { eStateInvalid, eStateUnloaded, eStateConnected, eStateAttaching, eStateLaunching, eStateStopped, eStateRunning, eStateStepping, eStateCrashed, eStateDetached, eStateExited, eStateSuspended, kLastStateType }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopReason.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopReason.java new file mode 100644 index 0000000000..745539d3b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopReason.java @@ -0,0 +1,68 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class StopReason { + public final static StopReason eStopReasonInvalid = new StopReason("eStopReasonInvalid", lldbJNI.eStopReasonInvalid_get()); + public final static StopReason eStopReasonNone = new StopReason("eStopReasonNone"); + public final static StopReason eStopReasonTrace = new StopReason("eStopReasonTrace"); + public final static StopReason eStopReasonBreakpoint = new StopReason("eStopReasonBreakpoint"); + public final static StopReason eStopReasonWatchpoint = new StopReason("eStopReasonWatchpoint"); + public final static StopReason eStopReasonSignal = new StopReason("eStopReasonSignal"); + public final static StopReason eStopReasonException = new StopReason("eStopReasonException"); + public final static StopReason eStopReasonExec = new StopReason("eStopReasonExec"); + public final static StopReason eStopReasonPlanComplete = new StopReason("eStopReasonPlanComplete"); + public final static StopReason eStopReasonThreadExiting = new StopReason("eStopReasonThreadExiting"); + public final static StopReason eStopReasonInstrumentation = new StopReason("eStopReasonInstrumentation"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static StopReason swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + StopReason.class + " with value " + swigValue); + } + + private StopReason(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private StopReason(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private StopReason(String swigName, StopReason swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static StopReason[] swigValues = { eStopReasonInvalid, eStopReasonNone, eStopReasonTrace, eStopReasonBreakpoint, eStopReasonWatchpoint, eStopReasonSignal, eStopReasonException, eStopReasonExec, eStopReasonPlanComplete, eStopReasonThreadExiting, eStopReasonInstrumentation }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopShowColumn.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopShowColumn.java new file mode 100644 index 0000000000..c8b0982712 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StopShowColumn.java @@ -0,0 +1,61 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class StopShowColumn { + public final static StopShowColumn eStopShowColumnAnsiOrCaret = new StopShowColumn("eStopShowColumnAnsiOrCaret", lldbJNI.eStopShowColumnAnsiOrCaret_get()); + public final static StopShowColumn eStopShowColumnAnsi = new StopShowColumn("eStopShowColumnAnsi", lldbJNI.eStopShowColumnAnsi_get()); + public final static StopShowColumn eStopShowColumnCaret = new StopShowColumn("eStopShowColumnCaret", lldbJNI.eStopShowColumnCaret_get()); + public final static StopShowColumn eStopShowColumnNone = new StopShowColumn("eStopShowColumnNone", lldbJNI.eStopShowColumnNone_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static StopShowColumn swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + StopShowColumn.class + " with value " + swigValue); + } + + private StopShowColumn(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private StopShowColumn(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private StopShowColumn(String swigName, StopShowColumn swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static StopShowColumn[] swigValues = { eStopShowColumnAnsiOrCaret, eStopShowColumnAnsi, eStopShowColumnCaret, eStopShowColumnNone }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StructuredDataType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StructuredDataType.java new file mode 100644 index 0000000000..b34f3bc29c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/StructuredDataType.java @@ -0,0 +1,66 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class StructuredDataType { + public final static StructuredDataType eStructuredDataTypeInvalid = new StructuredDataType("eStructuredDataTypeInvalid", lldbJNI.eStructuredDataTypeInvalid_get()); + public final static StructuredDataType eStructuredDataTypeNull = new StructuredDataType("eStructuredDataTypeNull", lldbJNI.eStructuredDataTypeNull_get()); + public final static StructuredDataType eStructuredDataTypeGeneric = new StructuredDataType("eStructuredDataTypeGeneric"); + public final static StructuredDataType eStructuredDataTypeArray = new StructuredDataType("eStructuredDataTypeArray"); + public final static StructuredDataType eStructuredDataTypeInteger = new StructuredDataType("eStructuredDataTypeInteger"); + public final static StructuredDataType eStructuredDataTypeFloat = new StructuredDataType("eStructuredDataTypeFloat"); + public final static StructuredDataType eStructuredDataTypeBoolean = new StructuredDataType("eStructuredDataTypeBoolean"); + public final static StructuredDataType eStructuredDataTypeString = new StructuredDataType("eStructuredDataTypeString"); + public final static StructuredDataType eStructuredDataTypeDictionary = new StructuredDataType("eStructuredDataTypeDictionary"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static StructuredDataType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + StructuredDataType.class + " with value " + swigValue); + } + + private StructuredDataType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private StructuredDataType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private StructuredDataType(String swigName, StructuredDataType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static StructuredDataType[] swigValues = { eStructuredDataTypeInvalid, eStructuredDataTypeNull, eStructuredDataTypeGeneric, eStructuredDataTypeArray, eStructuredDataTypeInteger, eStructuredDataTypeFloat, eStructuredDataTypeBoolean, eStructuredDataTypeString, eStructuredDataTypeDictionary }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolContextItem.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolContextItem.java new file mode 100644 index 0000000000..b44300035d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolContextItem.java @@ -0,0 +1,66 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class SymbolContextItem { + public final static SymbolContextItem eSymbolContextTarget = new SymbolContextItem("eSymbolContextTarget", lldbJNI.eSymbolContextTarget_get()); + public final static SymbolContextItem eSymbolContextModule = new SymbolContextItem("eSymbolContextModule", lldbJNI.eSymbolContextModule_get()); + public final static SymbolContextItem eSymbolContextCompUnit = new SymbolContextItem("eSymbolContextCompUnit", lldbJNI.eSymbolContextCompUnit_get()); + public final static SymbolContextItem eSymbolContextFunction = new SymbolContextItem("eSymbolContextFunction", lldbJNI.eSymbolContextFunction_get()); + public final static SymbolContextItem eSymbolContextBlock = new SymbolContextItem("eSymbolContextBlock", lldbJNI.eSymbolContextBlock_get()); + public final static SymbolContextItem eSymbolContextLineEntry = new SymbolContextItem("eSymbolContextLineEntry", lldbJNI.eSymbolContextLineEntry_get()); + public final static SymbolContextItem eSymbolContextSymbol = new SymbolContextItem("eSymbolContextSymbol", lldbJNI.eSymbolContextSymbol_get()); + public final static SymbolContextItem eSymbolContextEverything = new SymbolContextItem("eSymbolContextEverything", lldbJNI.eSymbolContextEverything_get()); + public final static SymbolContextItem eSymbolContextVariable = new SymbolContextItem("eSymbolContextVariable", lldbJNI.eSymbolContextVariable_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static SymbolContextItem swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + SymbolContextItem.class + " with value " + swigValue); + } + + private SymbolContextItem(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private SymbolContextItem(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private SymbolContextItem(String swigName, SymbolContextItem swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static SymbolContextItem[] swigValues = { eSymbolContextTarget, eSymbolContextModule, eSymbolContextCompUnit, eSymbolContextFunction, eSymbolContextBlock, eSymbolContextLineEntry, eSymbolContextSymbol, eSymbolContextEverything, eSymbolContextVariable }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolType.java new file mode 100644 index 0000000000..3dde5e23b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/SymbolType.java @@ -0,0 +1,87 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class SymbolType { + public final static SymbolType eSymbolTypeAny = new SymbolType("eSymbolTypeAny", lldbJNI.eSymbolTypeAny_get()); + public final static SymbolType eSymbolTypeInvalid = new SymbolType("eSymbolTypeInvalid", lldbJNI.eSymbolTypeInvalid_get()); + public final static SymbolType eSymbolTypeAbsolute = new SymbolType("eSymbolTypeAbsolute"); + public final static SymbolType eSymbolTypeCode = new SymbolType("eSymbolTypeCode"); + public final static SymbolType eSymbolTypeResolver = new SymbolType("eSymbolTypeResolver"); + public final static SymbolType eSymbolTypeData = new SymbolType("eSymbolTypeData"); + public final static SymbolType eSymbolTypeTrampoline = new SymbolType("eSymbolTypeTrampoline"); + public final static SymbolType eSymbolTypeRuntime = new SymbolType("eSymbolTypeRuntime"); + public final static SymbolType eSymbolTypeException = new SymbolType("eSymbolTypeException"); + public final static SymbolType eSymbolTypeSourceFile = new SymbolType("eSymbolTypeSourceFile"); + public final static SymbolType eSymbolTypeHeaderFile = new SymbolType("eSymbolTypeHeaderFile"); + public final static SymbolType eSymbolTypeObjectFile = new SymbolType("eSymbolTypeObjectFile"); + public final static SymbolType eSymbolTypeCommonBlock = new SymbolType("eSymbolTypeCommonBlock"); + public final static SymbolType eSymbolTypeBlock = new SymbolType("eSymbolTypeBlock"); + public final static SymbolType eSymbolTypeLocal = new SymbolType("eSymbolTypeLocal"); + public final static SymbolType eSymbolTypeParam = new SymbolType("eSymbolTypeParam"); + public final static SymbolType eSymbolTypeVariable = new SymbolType("eSymbolTypeVariable"); + public final static SymbolType eSymbolTypeVariableType = new SymbolType("eSymbolTypeVariableType"); + public final static SymbolType eSymbolTypeLineEntry = new SymbolType("eSymbolTypeLineEntry"); + public final static SymbolType eSymbolTypeLineHeader = new SymbolType("eSymbolTypeLineHeader"); + public final static SymbolType eSymbolTypeScopeBegin = new SymbolType("eSymbolTypeScopeBegin"); + public final static SymbolType eSymbolTypeScopeEnd = new SymbolType("eSymbolTypeScopeEnd"); + public final static SymbolType eSymbolTypeAdditional = new SymbolType("eSymbolTypeAdditional"); + public final static SymbolType eSymbolTypeCompiler = new SymbolType("eSymbolTypeCompiler"); + public final static SymbolType eSymbolTypeInstrumentation = new SymbolType("eSymbolTypeInstrumentation"); + public final static SymbolType eSymbolTypeUndefined = new SymbolType("eSymbolTypeUndefined"); + public final static SymbolType eSymbolTypeObjCClass = new SymbolType("eSymbolTypeObjCClass"); + public final static SymbolType eSymbolTypeObjCMetaClass = new SymbolType("eSymbolTypeObjCMetaClass"); + public final static SymbolType eSymbolTypeObjCIVar = new SymbolType("eSymbolTypeObjCIVar"); + public final static SymbolType eSymbolTypeReExported = new SymbolType("eSymbolTypeReExported"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static SymbolType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + SymbolType.class + " with value " + swigValue); + } + + private SymbolType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private SymbolType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private SymbolType(String swigName, SymbolType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static SymbolType[] swigValues = { eSymbolTypeAny, eSymbolTypeInvalid, eSymbolTypeAbsolute, eSymbolTypeCode, eSymbolTypeResolver, eSymbolTypeData, eSymbolTypeTrampoline, eSymbolTypeRuntime, eSymbolTypeException, eSymbolTypeSourceFile, eSymbolTypeHeaderFile, eSymbolTypeObjectFile, eSymbolTypeCommonBlock, eSymbolTypeBlock, eSymbolTypeLocal, eSymbolTypeParam, eSymbolTypeVariable, eSymbolTypeVariableType, eSymbolTypeLineEntry, eSymbolTypeLineHeader, eSymbolTypeScopeBegin, eSymbolTypeScopeEnd, eSymbolTypeAdditional, eSymbolTypeCompiler, eSymbolTypeInstrumentation, eSymbolTypeUndefined, eSymbolTypeObjCClass, eSymbolTypeObjCMetaClass, eSymbolTypeObjCIVar, eSymbolTypeReExported }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TemplateArgumentKind.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TemplateArgumentKind.java new file mode 100644 index 0000000000..41ee403245 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TemplateArgumentKind.java @@ -0,0 +1,67 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class TemplateArgumentKind { + public final static TemplateArgumentKind eTemplateArgumentKindNull = new TemplateArgumentKind("eTemplateArgumentKindNull", lldbJNI.eTemplateArgumentKindNull_get()); + public final static TemplateArgumentKind eTemplateArgumentKindType = new TemplateArgumentKind("eTemplateArgumentKindType"); + public final static TemplateArgumentKind eTemplateArgumentKindDeclaration = new TemplateArgumentKind("eTemplateArgumentKindDeclaration"); + public final static TemplateArgumentKind eTemplateArgumentKindIntegral = new TemplateArgumentKind("eTemplateArgumentKindIntegral"); + public final static TemplateArgumentKind eTemplateArgumentKindTemplate = new TemplateArgumentKind("eTemplateArgumentKindTemplate"); + public final static TemplateArgumentKind eTemplateArgumentKindTemplateExpansion = new TemplateArgumentKind("eTemplateArgumentKindTemplateExpansion"); + public final static TemplateArgumentKind eTemplateArgumentKindExpression = new TemplateArgumentKind("eTemplateArgumentKindExpression"); + public final static TemplateArgumentKind eTemplateArgumentKindPack = new TemplateArgumentKind("eTemplateArgumentKindPack"); + public final static TemplateArgumentKind eTemplateArgumentKindNullPtr = new TemplateArgumentKind("eTemplateArgumentKindNullPtr"); + public final static TemplateArgumentKind eTemplateArgumentKindUncommonValue = new TemplateArgumentKind("eTemplateArgumentKindUncommonValue"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static TemplateArgumentKind swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + TemplateArgumentKind.class + " with value " + swigValue); + } + + private TemplateArgumentKind(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private TemplateArgumentKind(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private TemplateArgumentKind(String swigName, TemplateArgumentKind swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static TemplateArgumentKind[] swigValues = { eTemplateArgumentKindNull, eTemplateArgumentKindType, eTemplateArgumentKindDeclaration, eTemplateArgumentKindIntegral, eTemplateArgumentKindTemplate, eTemplateArgumentKindTemplateExpansion, eTemplateArgumentKindExpression, eTemplateArgumentKindPack, eTemplateArgumentKindNullPtr, eTemplateArgumentKindUncommonValue }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TraceType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TraceType.java new file mode 100644 index 0000000000..38ffa39d9e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TraceType.java @@ -0,0 +1,59 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class TraceType { + public final static TraceType eTraceTypeNone = new TraceType("eTraceTypeNone", lldbJNI.eTraceTypeNone_get()); + public final static TraceType eTraceTypeProcessorTrace = new TraceType("eTraceTypeProcessorTrace"); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static TraceType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + TraceType.class + " with value " + swigValue); + } + + private TraceType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private TraceType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private TraceType(String swigName, TraceType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static TraceType[] swigValues = { eTraceTypeNone, eTraceTypeProcessorTrace }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeClass.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeClass.java new file mode 100644 index 0000000000..44cf2b983b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeClass.java @@ -0,0 +1,78 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class TypeClass { + public final static TypeClass eTypeClassInvalid = new TypeClass("eTypeClassInvalid", lldbJNI.eTypeClassInvalid_get()); + public final static TypeClass eTypeClassArray = new TypeClass("eTypeClassArray", lldbJNI.eTypeClassArray_get()); + public final static TypeClass eTypeClassBlockPointer = new TypeClass("eTypeClassBlockPointer", lldbJNI.eTypeClassBlockPointer_get()); + public final static TypeClass eTypeClassBuiltin = new TypeClass("eTypeClassBuiltin", lldbJNI.eTypeClassBuiltin_get()); + public final static TypeClass eTypeClassClass = new TypeClass("eTypeClassClass", lldbJNI.eTypeClassClass_get()); + public final static TypeClass eTypeClassComplexFloat = new TypeClass("eTypeClassComplexFloat", lldbJNI.eTypeClassComplexFloat_get()); + public final static TypeClass eTypeClassComplexInteger = new TypeClass("eTypeClassComplexInteger", lldbJNI.eTypeClassComplexInteger_get()); + public final static TypeClass eTypeClassEnumeration = new TypeClass("eTypeClassEnumeration", lldbJNI.eTypeClassEnumeration_get()); + public final static TypeClass eTypeClassFunction = new TypeClass("eTypeClassFunction", lldbJNI.eTypeClassFunction_get()); + public final static TypeClass eTypeClassMemberPointer = new TypeClass("eTypeClassMemberPointer", lldbJNI.eTypeClassMemberPointer_get()); + public final static TypeClass eTypeClassObjCObject = new TypeClass("eTypeClassObjCObject", lldbJNI.eTypeClassObjCObject_get()); + public final static TypeClass eTypeClassObjCInterface = new TypeClass("eTypeClassObjCInterface", lldbJNI.eTypeClassObjCInterface_get()); + public final static TypeClass eTypeClassObjCObjectPointer = new TypeClass("eTypeClassObjCObjectPointer", lldbJNI.eTypeClassObjCObjectPointer_get()); + public final static TypeClass eTypeClassPointer = new TypeClass("eTypeClassPointer", lldbJNI.eTypeClassPointer_get()); + public final static TypeClass eTypeClassReference = new TypeClass("eTypeClassReference", lldbJNI.eTypeClassReference_get()); + public final static TypeClass eTypeClassStruct = new TypeClass("eTypeClassStruct", lldbJNI.eTypeClassStruct_get()); + public final static TypeClass eTypeClassTypedef = new TypeClass("eTypeClassTypedef", lldbJNI.eTypeClassTypedef_get()); + public final static TypeClass eTypeClassUnion = new TypeClass("eTypeClassUnion", lldbJNI.eTypeClassUnion_get()); + public final static TypeClass eTypeClassVector = new TypeClass("eTypeClassVector", lldbJNI.eTypeClassVector_get()); + public final static TypeClass eTypeClassOther = new TypeClass("eTypeClassOther", lldbJNI.eTypeClassOther_get()); + public final static TypeClass eTypeClassAny = new TypeClass("eTypeClassAny", lldbJNI.eTypeClassAny_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static TypeClass swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + TypeClass.class + " with value " + swigValue); + } + + private TypeClass(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private TypeClass(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private TypeClass(String swigName, TypeClass swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static TypeClass[] swigValues = { eTypeClassInvalid, eTypeClassArray, eTypeClassBlockPointer, eTypeClassBuiltin, eTypeClassClass, eTypeClassComplexFloat, eTypeClassComplexInteger, eTypeClassEnumeration, eTypeClassFunction, eTypeClassMemberPointer, eTypeClassObjCObject, eTypeClassObjCInterface, eTypeClassObjCObjectPointer, eTypeClassPointer, eTypeClassReference, eTypeClassStruct, eTypeClassTypedef, eTypeClassUnion, eTypeClassVector, eTypeClassOther, eTypeClassAny }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeFlags.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeFlags.java new file mode 100644 index 0000000000..b4b46bbefe --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeFlags.java @@ -0,0 +1,80 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class TypeFlags { + public final static TypeFlags eTypeHasChildren = new TypeFlags("eTypeHasChildren", lldbJNI.eTypeHasChildren_get()); + public final static TypeFlags eTypeHasValue = new TypeFlags("eTypeHasValue", lldbJNI.eTypeHasValue_get()); + public final static TypeFlags eTypeIsArray = new TypeFlags("eTypeIsArray", lldbJNI.eTypeIsArray_get()); + public final static TypeFlags eTypeIsBlock = new TypeFlags("eTypeIsBlock", lldbJNI.eTypeIsBlock_get()); + public final static TypeFlags eTypeIsBuiltIn = new TypeFlags("eTypeIsBuiltIn", lldbJNI.eTypeIsBuiltIn_get()); + public final static TypeFlags eTypeIsClass = new TypeFlags("eTypeIsClass", lldbJNI.eTypeIsClass_get()); + public final static TypeFlags eTypeIsCPlusPlus = new TypeFlags("eTypeIsCPlusPlus", lldbJNI.eTypeIsCPlusPlus_get()); + public final static TypeFlags eTypeIsEnumeration = new TypeFlags("eTypeIsEnumeration", lldbJNI.eTypeIsEnumeration_get()); + public final static TypeFlags eTypeIsFuncPrototype = new TypeFlags("eTypeIsFuncPrototype", lldbJNI.eTypeIsFuncPrototype_get()); + public final static TypeFlags eTypeIsMember = new TypeFlags("eTypeIsMember", lldbJNI.eTypeIsMember_get()); + public final static TypeFlags eTypeIsObjC = new TypeFlags("eTypeIsObjC", lldbJNI.eTypeIsObjC_get()); + public final static TypeFlags eTypeIsPointer = new TypeFlags("eTypeIsPointer", lldbJNI.eTypeIsPointer_get()); + public final static TypeFlags eTypeIsReference = new TypeFlags("eTypeIsReference", lldbJNI.eTypeIsReference_get()); + public final static TypeFlags eTypeIsStructUnion = new TypeFlags("eTypeIsStructUnion", lldbJNI.eTypeIsStructUnion_get()); + public final static TypeFlags eTypeIsTemplate = new TypeFlags("eTypeIsTemplate", lldbJNI.eTypeIsTemplate_get()); + public final static TypeFlags eTypeIsTypedef = new TypeFlags("eTypeIsTypedef", lldbJNI.eTypeIsTypedef_get()); + public final static TypeFlags eTypeIsVector = new TypeFlags("eTypeIsVector", lldbJNI.eTypeIsVector_get()); + public final static TypeFlags eTypeIsScalar = new TypeFlags("eTypeIsScalar", lldbJNI.eTypeIsScalar_get()); + public final static TypeFlags eTypeIsInteger = new TypeFlags("eTypeIsInteger", lldbJNI.eTypeIsInteger_get()); + public final static TypeFlags eTypeIsFloat = new TypeFlags("eTypeIsFloat", lldbJNI.eTypeIsFloat_get()); + public final static TypeFlags eTypeIsComplex = new TypeFlags("eTypeIsComplex", lldbJNI.eTypeIsComplex_get()); + public final static TypeFlags eTypeIsSigned = new TypeFlags("eTypeIsSigned", lldbJNI.eTypeIsSigned_get()); + public final static TypeFlags eTypeInstanceIsPointer = new TypeFlags("eTypeInstanceIsPointer", lldbJNI.eTypeInstanceIsPointer_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static TypeFlags swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + TypeFlags.class + " with value " + swigValue); + } + + private TypeFlags(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private TypeFlags(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private TypeFlags(String swigName, TypeFlags swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static TypeFlags[] swigValues = { eTypeHasChildren, eTypeHasValue, eTypeIsArray, eTypeIsBlock, eTypeIsBuiltIn, eTypeIsClass, eTypeIsCPlusPlus, eTypeIsEnumeration, eTypeIsFuncPrototype, eTypeIsMember, eTypeIsObjC, eTypeIsPointer, eTypeIsReference, eTypeIsStructUnion, eTypeIsTemplate, eTypeIsTypedef, eTypeIsVector, eTypeIsScalar, eTypeIsInteger, eTypeIsFloat, eTypeIsComplex, eTypeIsSigned, eTypeInstanceIsPointer }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeOptions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeOptions.java new file mode 100644 index 0000000000..c5004ba2ab --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeOptions.java @@ -0,0 +1,68 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class TypeOptions { + public final static TypeOptions eTypeOptionNone = new TypeOptions("eTypeOptionNone", lldbJNI.eTypeOptionNone_get()); + public final static TypeOptions eTypeOptionCascade = new TypeOptions("eTypeOptionCascade", lldbJNI.eTypeOptionCascade_get()); + public final static TypeOptions eTypeOptionSkipPointers = new TypeOptions("eTypeOptionSkipPointers", lldbJNI.eTypeOptionSkipPointers_get()); + public final static TypeOptions eTypeOptionSkipReferences = new TypeOptions("eTypeOptionSkipReferences", lldbJNI.eTypeOptionSkipReferences_get()); + public final static TypeOptions eTypeOptionHideChildren = new TypeOptions("eTypeOptionHideChildren", lldbJNI.eTypeOptionHideChildren_get()); + public final static TypeOptions eTypeOptionHideValue = new TypeOptions("eTypeOptionHideValue", lldbJNI.eTypeOptionHideValue_get()); + public final static TypeOptions eTypeOptionShowOneLiner = new TypeOptions("eTypeOptionShowOneLiner", lldbJNI.eTypeOptionShowOneLiner_get()); + public final static TypeOptions eTypeOptionHideNames = new TypeOptions("eTypeOptionHideNames", lldbJNI.eTypeOptionHideNames_get()); + public final static TypeOptions eTypeOptionNonCacheable = new TypeOptions("eTypeOptionNonCacheable", lldbJNI.eTypeOptionNonCacheable_get()); + public final static TypeOptions eTypeOptionHideEmptyAggregates = new TypeOptions("eTypeOptionHideEmptyAggregates", lldbJNI.eTypeOptionHideEmptyAggregates_get()); + public final static TypeOptions eTypeOptionFrontEndWantsDereference = new TypeOptions("eTypeOptionFrontEndWantsDereference", lldbJNI.eTypeOptionFrontEndWantsDereference_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static TypeOptions swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + TypeOptions.class + " with value " + swigValue); + } + + private TypeOptions(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private TypeOptions(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private TypeOptions(String swigName, TypeOptions swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static TypeOptions[] swigValues = { eTypeOptionNone, eTypeOptionCascade, eTypeOptionSkipPointers, eTypeOptionSkipReferences, eTypeOptionHideChildren, eTypeOptionHideValue, eTypeOptionShowOneLiner, eTypeOptionHideNames, eTypeOptionNonCacheable, eTypeOptionHideEmptyAggregates, eTypeOptionFrontEndWantsDereference }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeSummaryCapping.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeSummaryCapping.java new file mode 100644 index 0000000000..cf342095a4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/TypeSummaryCapping.java @@ -0,0 +1,59 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class TypeSummaryCapping { + public final static TypeSummaryCapping eTypeSummaryCapped = new TypeSummaryCapping("eTypeSummaryCapped", lldbJNI.eTypeSummaryCapped_get()); + public final static TypeSummaryCapping eTypeSummaryUncapped = new TypeSummaryCapping("eTypeSummaryUncapped", lldbJNI.eTypeSummaryUncapped_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static TypeSummaryCapping swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + TypeSummaryCapping.class + " with value " + swigValue); + } + + private TypeSummaryCapping(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private TypeSummaryCapping(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private TypeSummaryCapping(String swigName, TypeSummaryCapping swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static TypeSummaryCapping[] swigValues = { eTypeSummaryCapped, eTypeSummaryUncapped }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ValueType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ValueType.java new file mode 100644 index 0000000000..25d6f7d809 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/ValueType.java @@ -0,0 +1,66 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class ValueType { + public final static ValueType eValueTypeInvalid = new ValueType("eValueTypeInvalid", lldbJNI.eValueTypeInvalid_get()); + public final static ValueType eValueTypeVariableGlobal = new ValueType("eValueTypeVariableGlobal", lldbJNI.eValueTypeVariableGlobal_get()); + public final static ValueType eValueTypeVariableStatic = new ValueType("eValueTypeVariableStatic", lldbJNI.eValueTypeVariableStatic_get()); + public final static ValueType eValueTypeVariableArgument = new ValueType("eValueTypeVariableArgument", lldbJNI.eValueTypeVariableArgument_get()); + public final static ValueType eValueTypeVariableLocal = new ValueType("eValueTypeVariableLocal", lldbJNI.eValueTypeVariableLocal_get()); + public final static ValueType eValueTypeRegister = new ValueType("eValueTypeRegister", lldbJNI.eValueTypeRegister_get()); + public final static ValueType eValueTypeRegisterSet = new ValueType("eValueTypeRegisterSet", lldbJNI.eValueTypeRegisterSet_get()); + public final static ValueType eValueTypeConstResult = new ValueType("eValueTypeConstResult", lldbJNI.eValueTypeConstResult_get()); + public final static ValueType eValueTypeVariableThreadLocal = new ValueType("eValueTypeVariableThreadLocal", lldbJNI.eValueTypeVariableThreadLocal_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static ValueType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + ValueType.class + " with value " + swigValue); + } + + private ValueType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private ValueType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private ValueType(String swigName, ValueType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static ValueType[] swigValues = { eValueTypeInvalid, eValueTypeVariableGlobal, eValueTypeVariableStatic, eValueTypeVariableArgument, eValueTypeVariableLocal, eValueTypeRegister, eValueTypeRegisterSet, eValueTypeConstResult, eValueTypeVariableThreadLocal }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointEventType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointEventType.java new file mode 100644 index 0000000000..92aa819640 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointEventType.java @@ -0,0 +1,67 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class WatchpointEventType { + public final static WatchpointEventType eWatchpointEventTypeInvalidType = new WatchpointEventType("eWatchpointEventTypeInvalidType", lldbJNI.eWatchpointEventTypeInvalidType_get()); + public final static WatchpointEventType eWatchpointEventTypeAdded = new WatchpointEventType("eWatchpointEventTypeAdded", lldbJNI.eWatchpointEventTypeAdded_get()); + public final static WatchpointEventType eWatchpointEventTypeRemoved = new WatchpointEventType("eWatchpointEventTypeRemoved", lldbJNI.eWatchpointEventTypeRemoved_get()); + public final static WatchpointEventType eWatchpointEventTypeEnabled = new WatchpointEventType("eWatchpointEventTypeEnabled", lldbJNI.eWatchpointEventTypeEnabled_get()); + public final static WatchpointEventType eWatchpointEventTypeDisabled = new WatchpointEventType("eWatchpointEventTypeDisabled", lldbJNI.eWatchpointEventTypeDisabled_get()); + public final static WatchpointEventType eWatchpointEventTypeCommandChanged = new WatchpointEventType("eWatchpointEventTypeCommandChanged", lldbJNI.eWatchpointEventTypeCommandChanged_get()); + public final static WatchpointEventType eWatchpointEventTypeConditionChanged = new WatchpointEventType("eWatchpointEventTypeConditionChanged", lldbJNI.eWatchpointEventTypeConditionChanged_get()); + public final static WatchpointEventType eWatchpointEventTypeIgnoreChanged = new WatchpointEventType("eWatchpointEventTypeIgnoreChanged", lldbJNI.eWatchpointEventTypeIgnoreChanged_get()); + public final static WatchpointEventType eWatchpointEventTypeThreadChanged = new WatchpointEventType("eWatchpointEventTypeThreadChanged", lldbJNI.eWatchpointEventTypeThreadChanged_get()); + public final static WatchpointEventType eWatchpointEventTypeTypeChanged = new WatchpointEventType("eWatchpointEventTypeTypeChanged", lldbJNI.eWatchpointEventTypeTypeChanged_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static WatchpointEventType swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + WatchpointEventType.class + " with value " + swigValue); + } + + private WatchpointEventType(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private WatchpointEventType(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private WatchpointEventType(String swigName, WatchpointEventType swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static WatchpointEventType[] swigValues = { eWatchpointEventTypeInvalidType, eWatchpointEventTypeAdded, eWatchpointEventTypeRemoved, eWatchpointEventTypeEnabled, eWatchpointEventTypeDisabled, eWatchpointEventTypeCommandChanged, eWatchpointEventTypeConditionChanged, eWatchpointEventTypeIgnoreChanged, eWatchpointEventTypeThreadChanged, eWatchpointEventTypeTypeChanged }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointKind.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointKind.java new file mode 100644 index 0000000000..3f423a052b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/WatchpointKind.java @@ -0,0 +1,59 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public final class WatchpointKind { + public final static WatchpointKind eWatchpointKindWrite = new WatchpointKind("eWatchpointKindWrite", lldbJNI.eWatchpointKindWrite_get()); + public final static WatchpointKind eWatchpointKindRead = new WatchpointKind("eWatchpointKindRead", lldbJNI.eWatchpointKindRead_get()); + + public final int swigValue() { + return swigValue; + } + + public String toString() { + return swigName; + } + + public static WatchpointKind swigToEnum(int swigValue) { + if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) + return swigValues[swigValue]; + for (int i = 0; i < swigValues.length; i++) + if (swigValues[i].swigValue == swigValue) + return swigValues[i]; + throw new IllegalArgumentException("No enum " + WatchpointKind.class + " with value " + swigValue); + } + + private WatchpointKind(String swigName) { + this.swigName = swigName; + this.swigValue = swigNext++; + } + + private WatchpointKind(String swigName, int swigValue) { + this.swigName = swigName; + this.swigValue = swigValue; + swigNext = swigValue+1; + } + + private WatchpointKind(String swigName, WatchpointKind swigEnum) { + this.swigName = swigName; + this.swigValue = swigEnum.swigValue; + swigNext = this.swigValue+1; + } + + private static WatchpointKind[] swigValues = { eWatchpointKindWrite, eWatchpointKindRead }; + private static int swigNext = 0; + private final int swigValue; + private final String swigName; +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldb.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldb.java new file mode 100644 index 0000000000..9d3d3598b7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldb.java @@ -0,0 +1,15 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package SWIG; + +public class lldb implements lldbConstants { +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbConstants.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbConstants.java new file mode 100644 index 0000000000..8b66dd27cd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbConstants.java @@ -0,0 +1,72 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +package SWIG; + + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + + +public interface lldbConstants { + public final static int INT32_MAX = lldbJNI.INT32_MAX_get(); + public final static long UINT32_MAX = lldbJNI.UINT32_MAX_get(); + public final static java.math.BigInteger UINT64_MAX = lldbJNI.UINT64_MAX_get(); + public final static long LLDB_GENERIC_ERROR = lldbJNI.LLDB_GENERIC_ERROR_get(); + public final static int LLDB_INVALID_BREAK_ID = lldbJNI.LLDB_INVALID_BREAK_ID_get(); + public final static int LLDB_DEFAULT_BREAK_SIZE = lldbJNI.LLDB_DEFAULT_BREAK_SIZE_get(); + public final static int LLDB_INVALID_WATCH_ID = lldbJNI.LLDB_INVALID_WATCH_ID_get(); + public final static long LLDB_WATCH_TYPE_READ = lldbJNI.LLDB_WATCH_TYPE_READ_get(); + public final static long LLDB_WATCH_TYPE_WRITE = lldbJNI.LLDB_WATCH_TYPE_WRITE_get(); + public final static int LLDB_REGNUM_GENERIC_PC = lldbJNI.LLDB_REGNUM_GENERIC_PC_get(); + public final static int LLDB_REGNUM_GENERIC_SP = lldbJNI.LLDB_REGNUM_GENERIC_SP_get(); + public final static int LLDB_REGNUM_GENERIC_FP = lldbJNI.LLDB_REGNUM_GENERIC_FP_get(); + public final static int LLDB_REGNUM_GENERIC_RA = lldbJNI.LLDB_REGNUM_GENERIC_RA_get(); + public final static int LLDB_REGNUM_GENERIC_FLAGS = lldbJNI.LLDB_REGNUM_GENERIC_FLAGS_get(); + public final static int LLDB_REGNUM_GENERIC_ARG1 = lldbJNI.LLDB_REGNUM_GENERIC_ARG1_get(); + public final static int LLDB_REGNUM_GENERIC_ARG2 = lldbJNI.LLDB_REGNUM_GENERIC_ARG2_get(); + public final static int LLDB_REGNUM_GENERIC_ARG3 = lldbJNI.LLDB_REGNUM_GENERIC_ARG3_get(); + public final static int LLDB_REGNUM_GENERIC_ARG4 = lldbJNI.LLDB_REGNUM_GENERIC_ARG4_get(); + public final static int LLDB_REGNUM_GENERIC_ARG5 = lldbJNI.LLDB_REGNUM_GENERIC_ARG5_get(); + public final static int LLDB_REGNUM_GENERIC_ARG6 = lldbJNI.LLDB_REGNUM_GENERIC_ARG6_get(); + public final static int LLDB_REGNUM_GENERIC_ARG7 = lldbJNI.LLDB_REGNUM_GENERIC_ARG7_get(); + public final static int LLDB_REGNUM_GENERIC_ARG8 = lldbJNI.LLDB_REGNUM_GENERIC_ARG8_get(); + public final static java.math.BigInteger LLDB_INVALID_ADDRESS = lldbJNI.LLDB_INVALID_ADDRESS_get(); + public final static long LLDB_INVALID_INDEX32 = lldbJNI.LLDB_INVALID_INDEX32_get(); + public final static long LLDB_INVALID_IVAR_OFFSET = lldbJNI.LLDB_INVALID_IVAR_OFFSET_get(); + public final static long LLDB_INVALID_IMAGE_TOKEN = lldbJNI.LLDB_INVALID_IMAGE_TOKEN_get(); + public final static long LLDB_INVALID_MODULE_VERSION = lldbJNI.LLDB_INVALID_MODULE_VERSION_get(); + public final static long LLDB_INVALID_REGNUM = lldbJNI.LLDB_INVALID_REGNUM_get(); + public final static java.math.BigInteger LLDB_INVALID_UID = lldbJNI.LLDB_INVALID_UID_get(); + public final static int LLDB_INVALID_PROCESS_ID = lldbJNI.LLDB_INVALID_PROCESS_ID_get(); + public final static int LLDB_INVALID_THREAD_ID = lldbJNI.LLDB_INVALID_THREAD_ID_get(); + public final static long LLDB_INVALID_FRAME_ID = lldbJNI.LLDB_INVALID_FRAME_ID_get(); + public final static int LLDB_INVALID_SIGNAL_NUMBER = lldbJNI.LLDB_INVALID_SIGNAL_NUMBER_get(); + public final static java.math.BigInteger LLDB_INVALID_OFFSET = lldbJNI.LLDB_INVALID_OFFSET_get(); + public final static long LLDB_INVALID_LINE_NUMBER = lldbJNI.LLDB_INVALID_LINE_NUMBER_get(); + public final static int LLDB_INVALID_COLUMN_NUMBER = lldbJNI.LLDB_INVALID_COLUMN_NUMBER_get(); + public final static int LLDB_INVALID_QUEUE_ID = lldbJNI.LLDB_INVALID_QUEUE_ID_get(); + public final static String LLDB_ARCH_DEFAULT = lldbJNI.LLDB_ARCH_DEFAULT_get(); + public final static String LLDB_ARCH_DEFAULT_32BIT = lldbJNI.LLDB_ARCH_DEFAULT_32BIT_get(); + public final static String LLDB_ARCH_DEFAULT_64BIT = lldbJNI.LLDB_ARCH_DEFAULT_64BIT_get(); + public final static long LLDB_INVALID_CPUTYPE = lldbJNI.LLDB_INVALID_CPUTYPE_get(); + public final static int LLDB_MAX_NUM_OPTION_SETS = lldbJNI.LLDB_MAX_NUM_OPTION_SETS_get(); + public final static long LLDB_OPT_SET_ALL = lldbJNI.LLDB_OPT_SET_ALL_get(); + public final static long LLDB_OPT_SET_1 = lldbJNI.LLDB_OPT_SET_1_get(); + public final static long LLDB_OPT_SET_2 = lldbJNI.LLDB_OPT_SET_2_get(); + public final static long LLDB_OPT_SET_3 = lldbJNI.LLDB_OPT_SET_3_get(); + public final static long LLDB_OPT_SET_4 = lldbJNI.LLDB_OPT_SET_4_get(); + public final static long LLDB_OPT_SET_5 = lldbJNI.LLDB_OPT_SET_5_get(); + public final static long LLDB_OPT_SET_6 = lldbJNI.LLDB_OPT_SET_6_get(); + public final static long LLDB_OPT_SET_7 = lldbJNI.LLDB_OPT_SET_7_get(); + public final static long LLDB_OPT_SET_8 = lldbJNI.LLDB_OPT_SET_8_get(); + public final static long LLDB_OPT_SET_9 = lldbJNI.LLDB_OPT_SET_9_get(); + public final static long LLDB_OPT_SET_10 = lldbJNI.LLDB_OPT_SET_10_get(); + public final static long LLDB_OPT_SET_11 = lldbJNI.LLDB_OPT_SET_11_get(); + public final static long LLDB_OPT_SET_12 = lldbJNI.LLDB_OPT_SET_12_get(); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbJNI.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbJNI.java new file mode 100644 index 0000000000..5aa2751b5a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/SWIG/lldbJNI.java @@ -0,0 +1,2221 @@ +/* ### + * IP: Apache License 2.0 with LLVM Exceptions + */ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package SWIG; + +public class lldbJNI { + public final static native long new_ByteArray(int jarg1); + public final static native void delete_ByteArray(long jarg1); + public final static native byte ByteArray_getitem(long jarg1, ByteArray jarg1_, int jarg2); + public final static native void ByteArray_setitem(long jarg1, ByteArray jarg1_, int jarg2, byte jarg3); + public final static native long ByteArray_cast(long jarg1, ByteArray jarg1_); + public final static native long ByteArray_frompointer(long jarg1); + public final static native int INT32_MAX_get(); + public final static native long UINT32_MAX_get(); + public final static native java.math.BigInteger UINT64_MAX_get(); + public final static native long LLDB_GENERIC_ERROR_get(); + public final static native int LLDB_INVALID_BREAK_ID_get(); + public final static native int LLDB_DEFAULT_BREAK_SIZE_get(); + public final static native int LLDB_INVALID_WATCH_ID_get(); + public final static native long LLDB_WATCH_TYPE_READ_get(); + public final static native long LLDB_WATCH_TYPE_WRITE_get(); + public final static native int LLDB_REGNUM_GENERIC_PC_get(); + public final static native int LLDB_REGNUM_GENERIC_SP_get(); + public final static native int LLDB_REGNUM_GENERIC_FP_get(); + public final static native int LLDB_REGNUM_GENERIC_RA_get(); + public final static native int LLDB_REGNUM_GENERIC_FLAGS_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG1_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG2_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG3_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG4_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG5_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG6_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG7_get(); + public final static native int LLDB_REGNUM_GENERIC_ARG8_get(); + public final static native java.math.BigInteger LLDB_INVALID_ADDRESS_get(); + public final static native long LLDB_INVALID_INDEX32_get(); + public final static native long LLDB_INVALID_IVAR_OFFSET_get(); + public final static native long LLDB_INVALID_IMAGE_TOKEN_get(); + public final static native long LLDB_INVALID_MODULE_VERSION_get(); + public final static native long LLDB_INVALID_REGNUM_get(); + public final static native java.math.BigInteger LLDB_INVALID_UID_get(); + public final static native int LLDB_INVALID_PROCESS_ID_get(); + public final static native int LLDB_INVALID_THREAD_ID_get(); + public final static native long LLDB_INVALID_FRAME_ID_get(); + public final static native int LLDB_INVALID_SIGNAL_NUMBER_get(); + public final static native java.math.BigInteger LLDB_INVALID_OFFSET_get(); + public final static native long LLDB_INVALID_LINE_NUMBER_get(); + public final static native int LLDB_INVALID_COLUMN_NUMBER_get(); + public final static native int LLDB_INVALID_QUEUE_ID_get(); + public final static native String LLDB_ARCH_DEFAULT_get(); + public final static native String LLDB_ARCH_DEFAULT_32BIT_get(); + public final static native String LLDB_ARCH_DEFAULT_64BIT_get(); + public final static native long LLDB_INVALID_CPUTYPE_get(); + public final static native int LLDB_MAX_NUM_OPTION_SETS_get(); + public final static native long LLDB_OPT_SET_ALL_get(); + public final static native long LLDB_OPT_SET_1_get(); + public final static native long LLDB_OPT_SET_2_get(); + public final static native long LLDB_OPT_SET_3_get(); + public final static native long LLDB_OPT_SET_4_get(); + public final static native long LLDB_OPT_SET_5_get(); + public final static native long LLDB_OPT_SET_6_get(); + public final static native long LLDB_OPT_SET_7_get(); + public final static native long LLDB_OPT_SET_8_get(); + public final static native long LLDB_OPT_SET_9_get(); + public final static native long LLDB_OPT_SET_10_get(); + public final static native long LLDB_OPT_SET_11_get(); + public final static native long LLDB_OPT_SET_12_get(); + public final static native int eStateInvalid_get(); + public final static native int kLastStateType_get(); + public final static native int eLaunchFlagNone_get(); + public final static native int eLaunchFlagExec_get(); + public final static native int eLaunchFlagDebug_get(); + public final static native int eLaunchFlagStopAtEntry_get(); + public final static native int eLaunchFlagDisableASLR_get(); + public final static native int eLaunchFlagDisableSTDIO_get(); + public final static native int eLaunchFlagLaunchInTTY_get(); + public final static native int eLaunchFlagLaunchInShell_get(); + public final static native int eLaunchFlagLaunchInSeparateProcessGroup_get(); + public final static native int eLaunchFlagDontSetExitStatus_get(); + public final static native int eLaunchFlagDetachOnError_get(); + public final static native int eLaunchFlagShellExpandArguments_get(); + public final static native int eLaunchFlagCloseTTYOnExit_get(); + public final static native int eLaunchFlagInheritTCCFromParent_get(); + public final static native int eByteOrderInvalid_get(); + public final static native int eByteOrderBig_get(); + public final static native int eByteOrderPDP_get(); + public final static native int eByteOrderLittle_get(); + public final static native int eEncodingInvalid_get(); + public final static native int eFormatDefault_get(); + public final static native int eFormatInvalid_get(); + public final static native int eFormatComplexFloat_get(); + public final static native int eDescriptionLevelBrief_get(); + public final static native int eScriptLanguageNone_get(); + public final static native int eScriptLanguageDefault_get(); + public final static native int eRegisterKindEHFrame_get(); + public final static native int eStopReasonInvalid_get(); + public final static native int eExpressionCompleted_get(); + public final static native int eSearchDepthInvalid_get(); + public final static native int kLastSearchDepthKind_get(); + public final static native int eValueTypeInvalid_get(); + public final static native int eValueTypeVariableGlobal_get(); + public final static native int eValueTypeVariableStatic_get(); + public final static native int eValueTypeVariableArgument_get(); + public final static native int eValueTypeVariableLocal_get(); + public final static native int eValueTypeRegister_get(); + public final static native int eValueTypeRegisterSet_get(); + public final static native int eValueTypeConstResult_get(); + public final static native int eValueTypeVariableThreadLocal_get(); + public final static native int eInputReaderGranularityInvalid_get(); + public final static native int eSymbolContextTarget_get(); + public final static native int eSymbolContextModule_get(); + public final static native int eSymbolContextCompUnit_get(); + public final static native int eSymbolContextFunction_get(); + public final static native int eSymbolContextBlock_get(); + public final static native int eSymbolContextLineEntry_get(); + public final static native int eSymbolContextSymbol_get(); + public final static native int eSymbolContextEverything_get(); + public final static native int eSymbolContextVariable_get(); + public final static native int ePermissionsWritable_get(); + public final static native int ePermissionsReadable_get(); + public final static native int ePermissionsExecutable_get(); + public final static native int eBreakpointEventTypeInvalidType_get(); + public final static native int eBreakpointEventTypeAdded_get(); + public final static native int eBreakpointEventTypeRemoved_get(); + public final static native int eBreakpointEventTypeLocationsAdded_get(); + public final static native int eBreakpointEventTypeLocationsRemoved_get(); + public final static native int eBreakpointEventTypeLocationsResolved_get(); + public final static native int eBreakpointEventTypeEnabled_get(); + public final static native int eBreakpointEventTypeDisabled_get(); + public final static native int eBreakpointEventTypeCommandChanged_get(); + public final static native int eBreakpointEventTypeConditionChanged_get(); + public final static native int eBreakpointEventTypeIgnoreChanged_get(); + public final static native int eBreakpointEventTypeThreadChanged_get(); + public final static native int eBreakpointEventTypeAutoContinueChanged_get(); + public final static native int eWatchpointEventTypeInvalidType_get(); + public final static native int eWatchpointEventTypeAdded_get(); + public final static native int eWatchpointEventTypeRemoved_get(); + public final static native int eWatchpointEventTypeEnabled_get(); + public final static native int eWatchpointEventTypeDisabled_get(); + public final static native int eWatchpointEventTypeCommandChanged_get(); + public final static native int eWatchpointEventTypeConditionChanged_get(); + public final static native int eWatchpointEventTypeIgnoreChanged_get(); + public final static native int eWatchpointEventTypeThreadChanged_get(); + public final static native int eWatchpointEventTypeTypeChanged_get(); + public final static native int eLanguageTypeUnknown_get(); + public final static native int eLanguageTypeC89_get(); + public final static native int eLanguageTypeC_get(); + public final static native int eLanguageTypeAda83_get(); + public final static native int eLanguageTypeC_plus_plus_get(); + public final static native int eLanguageTypeCobol74_get(); + public final static native int eLanguageTypeCobol85_get(); + public final static native int eLanguageTypeFortran77_get(); + public final static native int eLanguageTypeFortran90_get(); + public final static native int eLanguageTypePascal83_get(); + public final static native int eLanguageTypeModula2_get(); + public final static native int eLanguageTypeJava_get(); + public final static native int eLanguageTypeC99_get(); + public final static native int eLanguageTypeAda95_get(); + public final static native int eLanguageTypeFortran95_get(); + public final static native int eLanguageTypePLI_get(); + public final static native int eLanguageTypeObjC_get(); + public final static native int eLanguageTypeObjC_plus_plus_get(); + public final static native int eLanguageTypeUPC_get(); + public final static native int eLanguageTypeD_get(); + public final static native int eLanguageTypePython_get(); + public final static native int eLanguageTypeOpenCL_get(); + public final static native int eLanguageTypeGo_get(); + public final static native int eLanguageTypeModula3_get(); + public final static native int eLanguageTypeHaskell_get(); + public final static native int eLanguageTypeC_plus_plus_03_get(); + public final static native int eLanguageTypeC_plus_plus_11_get(); + public final static native int eLanguageTypeOCaml_get(); + public final static native int eLanguageTypeRust_get(); + public final static native int eLanguageTypeC11_get(); + public final static native int eLanguageTypeSwift_get(); + public final static native int eLanguageTypeJulia_get(); + public final static native int eLanguageTypeDylan_get(); + public final static native int eLanguageTypeC_plus_plus_14_get(); + public final static native int eLanguageTypeFortran03_get(); + public final static native int eLanguageTypeFortran08_get(); + public final static native int eLanguageTypeMipsAssembler_get(); + public final static native int eLanguageTypeExtRenderScript_get(); + public final static native int eInstrumentationRuntimeTypeAddressSanitizer_get(); + public final static native int eInstrumentationRuntimeTypeThreadSanitizer_get(); + public final static native int eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer_get(); + public final static native int eInstrumentationRuntimeTypeMainThreadChecker_get(); + public final static native int eInstrumentationRuntimeTypeSwiftRuntimeReporting_get(); + public final static native int eNoDynamicValues_get(); + public final static native int eDynamicCanRunTarget_get(); + public final static native int eDynamicDontRunTarget_get(); + public final static native int eStopShowColumnAnsiOrCaret_get(); + public final static native int eStopShowColumnAnsi_get(); + public final static native int eStopShowColumnCaret_get(); + public final static native int eStopShowColumnNone_get(); + public final static native int eArgTypeAddress_get(); + public final static native int eSymbolTypeAny_get(); + public final static native int eSymbolTypeInvalid_get(); + public final static native int eEmulateInstructionOptionNone_get(); + public final static native int eEmulateInstructionOptionAutoAdvancePC_get(); + public final static native int eEmulateInstructionOptionIgnoreConditions_get(); + public final static native int eFunctionNameTypeNone_get(); + public final static native int eFunctionNameTypeAuto_get(); + public final static native int eFunctionNameTypeFull_get(); + public final static native int eFunctionNameTypeBase_get(); + public final static native int eFunctionNameTypeMethod_get(); + public final static native int eFunctionNameTypeSelector_get(); + public final static native int eFunctionNameTypeAny_get(); + public final static native int eBasicTypeInvalid_get(); + public final static native int eBasicTypeVoid_get(); + public final static native int eTraceTypeNone_get(); + public final static native int eStructuredDataTypeInvalid_get(); + public final static native int eStructuredDataTypeNull_get(); + public final static native int eTypeClassInvalid_get(); + public final static native int eTypeClassArray_get(); + public final static native int eTypeClassBlockPointer_get(); + public final static native int eTypeClassBuiltin_get(); + public final static native int eTypeClassClass_get(); + public final static native int eTypeClassComplexFloat_get(); + public final static native int eTypeClassComplexInteger_get(); + public final static native int eTypeClassEnumeration_get(); + public final static native int eTypeClassFunction_get(); + public final static native int eTypeClassMemberPointer_get(); + public final static native int eTypeClassObjCObject_get(); + public final static native int eTypeClassObjCInterface_get(); + public final static native int eTypeClassObjCObjectPointer_get(); + public final static native int eTypeClassPointer_get(); + public final static native int eTypeClassReference_get(); + public final static native int eTypeClassStruct_get(); + public final static native int eTypeClassTypedef_get(); + public final static native int eTypeClassUnion_get(); + public final static native int eTypeClassVector_get(); + public final static native int eTypeClassOther_get(); + public final static native int eTypeClassAny_get(); + public final static native int eTemplateArgumentKindNull_get(); + public final static native int eTypeOptionNone_get(); + public final static native int eTypeOptionCascade_get(); + public final static native int eTypeOptionSkipPointers_get(); + public final static native int eTypeOptionSkipReferences_get(); + public final static native int eTypeOptionHideChildren_get(); + public final static native int eTypeOptionHideValue_get(); + public final static native int eTypeOptionShowOneLiner_get(); + public final static native int eTypeOptionHideNames_get(); + public final static native int eTypeOptionNonCacheable_get(); + public final static native int eTypeOptionHideEmptyAggregates_get(); + public final static native int eTypeOptionFrontEndWantsDereference_get(); + public final static native int eFilePermissionsUserRead_get(); + public final static native int eFilePermissionsUserWrite_get(); + public final static native int eFilePermissionsUserExecute_get(); + public final static native int eFilePermissionsGroupRead_get(); + public final static native int eFilePermissionsGroupWrite_get(); + public final static native int eFilePermissionsGroupExecute_get(); + public final static native int eFilePermissionsWorldRead_get(); + public final static native int eFilePermissionsWorldWrite_get(); + public final static native int eFilePermissionsWorldExecute_get(); + public final static native int eFilePermissionsUserRW_get(); + public final static native int eFileFilePermissionsUserRX_get(); + public final static native int eFilePermissionsUserRWX_get(); + public final static native int eFilePermissionsGroupRW_get(); + public final static native int eFilePermissionsGroupRX_get(); + public final static native int eFilePermissionsGroupRWX_get(); + public final static native int eFilePermissionsWorldRW_get(); + public final static native int eFilePermissionsWorldRX_get(); + public final static native int eFilePermissionsWorldRWX_get(); + public final static native int eFilePermissionsEveryoneR_get(); + public final static native int eFilePermissionsEveryoneW_get(); + public final static native int eFilePermissionsEveryoneX_get(); + public final static native int eFilePermissionsEveryoneRW_get(); + public final static native int eFilePermissionsEveryoneRX_get(); + public final static native int eFilePermissionsEveryoneRWX_get(); + public final static native int eFilePermissionsFileDefault_get(); + public final static native int eFilePermissionsDirectoryDefault_get(); + public final static native int eQueueItemKindUnknown_get(); + public final static native int eQueueKindUnknown_get(); + public final static native int eExpressionEvaluationParse_get(); + public final static native int eWatchpointKindWrite_get(); + public final static native int eWatchpointKindRead_get(); + public final static native int eGdbSignalBadAccess_get(); + public final static native int eGdbSignalBadInstruction_get(); + public final static native int eGdbSignalArithmetic_get(); + public final static native int eGdbSignalEmulation_get(); + public final static native int eGdbSignalSoftware_get(); + public final static native int eGdbSignalBreakpoint_get(); + public final static native int eMemberFunctionKindUnknown_get(); + public final static native int eTypeHasChildren_get(); + public final static native int eTypeHasValue_get(); + public final static native int eTypeIsArray_get(); + public final static native int eTypeIsBlock_get(); + public final static native int eTypeIsBuiltIn_get(); + public final static native int eTypeIsClass_get(); + public final static native int eTypeIsCPlusPlus_get(); + public final static native int eTypeIsEnumeration_get(); + public final static native int eTypeIsFuncPrototype_get(); + public final static native int eTypeIsMember_get(); + public final static native int eTypeIsObjC_get(); + public final static native int eTypeIsPointer_get(); + public final static native int eTypeIsReference_get(); + public final static native int eTypeIsStructUnion_get(); + public final static native int eTypeIsTemplate_get(); + public final static native int eTypeIsTypedef_get(); + public final static native int eTypeIsVector_get(); + public final static native int eTypeIsScalar_get(); + public final static native int eTypeIsInteger_get(); + public final static native int eTypeIsFloat_get(); + public final static native int eTypeIsComplex_get(); + public final static native int eTypeIsSigned_get(); + public final static native int eTypeInstanceIsPointer_get(); + public final static native int eCommandRequiresTarget_get(); + public final static native int eCommandRequiresProcess_get(); + public final static native int eCommandRequiresThread_get(); + public final static native int eCommandRequiresFrame_get(); + public final static native int eCommandRequiresRegContext_get(); + public final static native int eCommandTryTargetAPILock_get(); + public final static native int eCommandProcessMustBeLaunched_get(); + public final static native int eCommandProcessMustBePaused_get(); + public final static native int eCommandProcessMustBeTraced_get(); + public final static native int eTypeSummaryCapped_get(); + public final static native int eTypeSummaryUncapped_get(); + public final static native long new_SBAddress__SWIG_0(); + public final static native long new_SBAddress__SWIG_1(long jarg1, SBAddress jarg1_); + public final static native long new_SBAddress__SWIG_2(long jarg1, SBSection jarg1_, java.math.BigInteger jarg2); + public final static native long new_SBAddress__SWIG_3(java.math.BigInteger jarg1, long jarg2, SBTarget jarg2_); + public final static native void delete_SBAddress(long jarg1); + public final static native boolean SBAddress_IsValid(long jarg1, SBAddress jarg1_); + public final static native void SBAddress_Clear(long jarg1, SBAddress jarg1_); + public final static native java.math.BigInteger SBAddress_GetFileAddress(long jarg1, SBAddress jarg1_); + public final static native java.math.BigInteger SBAddress_GetLoadAddress(long jarg1, SBAddress jarg1_, long jarg2, SBTarget jarg2_); + public final static native void SBAddress_SetLoadAddress(long jarg1, SBAddress jarg1_, java.math.BigInteger jarg2, long jarg3, SBTarget jarg3_); + public final static native boolean SBAddress_OffsetAddress(long jarg1, SBAddress jarg1_, java.math.BigInteger jarg2); + public final static native boolean SBAddress_GetDescription(long jarg1, SBAddress jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBAddress_GetSection(long jarg1, SBAddress jarg1_); + public final static native java.math.BigInteger SBAddress_GetOffset(long jarg1, SBAddress jarg1_); + public final static native void SBAddress_SetAddress(long jarg1, SBAddress jarg1_, long jarg2, SBSection jarg2_, java.math.BigInteger jarg3); + public final static native long SBAddress_GetSymbolContext(long jarg1, SBAddress jarg1_, long jarg2); + public final static native long SBAddress_GetModule(long jarg1, SBAddress jarg1_); + public final static native long SBAddress_GetCompileUnit(long jarg1, SBAddress jarg1_); + public final static native long SBAddress_GetFunction(long jarg1, SBAddress jarg1_); + public final static native long SBAddress_GetBlock(long jarg1, SBAddress jarg1_); + public final static native long SBAddress_GetSymbol(long jarg1, SBAddress jarg1_); + public final static native long SBAddress_GetLineEntry(long jarg1, SBAddress jarg1_); + public final static native String SBAddress___str__(long jarg1, SBAddress jarg1_); + public final static native long new_SBAttachInfo__SWIG_0(); + public final static native long new_SBAttachInfo__SWIG_1(java.math.BigInteger jarg1); + public final static native long new_SBAttachInfo__SWIG_2(String jarg1, boolean jarg2); + public final static native long new_SBAttachInfo__SWIG_3(String jarg1, boolean jarg2, boolean jarg3); + public final static native long new_SBAttachInfo__SWIG_4(long jarg1, SBAttachInfo jarg1_); + public final static native java.math.BigInteger SBAttachInfo_GetProcessID(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetProcessID(long jarg1, SBAttachInfo jarg1_, java.math.BigInteger jarg2); + public final static native void SBAttachInfo_SetExecutable__SWIG_0(long jarg1, SBAttachInfo jarg1_, String jarg2); + public final static native void SBAttachInfo_SetExecutable__SWIG_1(long jarg1, SBAttachInfo jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native boolean SBAttachInfo_GetWaitForLaunch(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetWaitForLaunch__SWIG_0(long jarg1, SBAttachInfo jarg1_, boolean jarg2); + public final static native void SBAttachInfo_SetWaitForLaunch__SWIG_1(long jarg1, SBAttachInfo jarg1_, boolean jarg2, boolean jarg3); + public final static native boolean SBAttachInfo_GetIgnoreExisting(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetIgnoreExisting(long jarg1, SBAttachInfo jarg1_, boolean jarg2); + public final static native long SBAttachInfo_GetResumeCount(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetResumeCount(long jarg1, SBAttachInfo jarg1_, long jarg2); + public final static native String SBAttachInfo_GetProcessPluginName(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetProcessPluginName(long jarg1, SBAttachInfo jarg1_, String jarg2); + public final static native long SBAttachInfo_GetUserID(long jarg1, SBAttachInfo jarg1_); + public final static native long SBAttachInfo_GetGroupID(long jarg1, SBAttachInfo jarg1_); + public final static native boolean SBAttachInfo_UserIDIsValid(long jarg1, SBAttachInfo jarg1_); + public final static native boolean SBAttachInfo_GroupIDIsValid(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetUserID(long jarg1, SBAttachInfo jarg1_, long jarg2); + public final static native void SBAttachInfo_SetGroupID(long jarg1, SBAttachInfo jarg1_, long jarg2); + public final static native long SBAttachInfo_GetEffectiveUserID(long jarg1, SBAttachInfo jarg1_); + public final static native long SBAttachInfo_GetEffectiveGroupID(long jarg1, SBAttachInfo jarg1_); + public final static native boolean SBAttachInfo_EffectiveUserIDIsValid(long jarg1, SBAttachInfo jarg1_); + public final static native boolean SBAttachInfo_EffectiveGroupIDIsValid(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetEffectiveUserID(long jarg1, SBAttachInfo jarg1_, long jarg2); + public final static native void SBAttachInfo_SetEffectiveGroupID(long jarg1, SBAttachInfo jarg1_, long jarg2); + public final static native java.math.BigInteger SBAttachInfo_GetParentProcessID(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetParentProcessID(long jarg1, SBAttachInfo jarg1_, java.math.BigInteger jarg2); + public final static native boolean SBAttachInfo_ParentProcessIDIsValid(long jarg1, SBAttachInfo jarg1_); + public final static native long SBAttachInfo_GetListener(long jarg1, SBAttachInfo jarg1_); + public final static native void SBAttachInfo_SetListener(long jarg1, SBAttachInfo jarg1_, long jarg2, SBListener jarg2_); + public final static native void delete_SBAttachInfo(long jarg1); + public final static native long new_SBBlock__SWIG_0(); + public final static native long new_SBBlock__SWIG_1(long jarg1, SBBlock jarg1_); + public final static native void delete_SBBlock(long jarg1); + public final static native boolean SBBlock_IsInlined(long jarg1, SBBlock jarg1_); + public final static native boolean SBBlock_IsValid(long jarg1, SBBlock jarg1_); + public final static native String SBBlock_GetInlinedName(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetInlinedCallSiteFile(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetInlinedCallSiteLine(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetInlinedCallSiteColumn(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetParent(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetContainingInlinedBlock(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetSibling(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetFirstChild(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetNumRanges(long jarg1, SBBlock jarg1_); + public final static native long SBBlock_GetRangeStartAddress(long jarg1, SBBlock jarg1_, long jarg2); + public final static native long SBBlock_GetRangeEndAddress(long jarg1, SBBlock jarg1_, long jarg2); + public final static native long SBBlock_GetRangeIndexForBlockAddress(long jarg1, SBBlock jarg1_, long jarg2, SBAddress jarg2_); + public final static native boolean SBBlock_GetDescription(long jarg1, SBBlock jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBBlock_GetVariables__SWIG_0(long jarg1, SBBlock jarg1_, long jarg2, SBFrame jarg2_, boolean jarg3, boolean jarg4, boolean jarg5, int jarg6); + public final static native long SBBlock_GetVariables__SWIG_1(long jarg1, SBBlock jarg1_, long jarg2, SBTarget jarg2_, boolean jarg3, boolean jarg4, boolean jarg5); + public final static native String SBBlock___str__(long jarg1, SBBlock jarg1_); + public final static native long new_SBBreakpoint__SWIG_0(); + public final static native long new_SBBreakpoint__SWIG_1(long jarg1, SBBreakpoint jarg1_); + public final static native void delete_SBBreakpoint(long jarg1); + public final static native int SBBreakpoint_GetID(long jarg1, SBBreakpoint jarg1_); + public final static native boolean SBBreakpoint_IsValid(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_ClearAllBreakpointSites(long jarg1, SBBreakpoint jarg1_); + public final static native long SBBreakpoint_GetTarget(long jarg1, SBBreakpoint jarg1_); + public final static native long SBBreakpoint_FindLocationByAddress(long jarg1, SBBreakpoint jarg1_, java.math.BigInteger jarg2); + public final static native int SBBreakpoint_FindLocationIDByAddress(long jarg1, SBBreakpoint jarg1_, java.math.BigInteger jarg2); + public final static native long SBBreakpoint_FindLocationByID(long jarg1, SBBreakpoint jarg1_, int jarg2); + public final static native long SBBreakpoint_GetLocationAtIndex(long jarg1, SBBreakpoint jarg1_, long jarg2); + public final static native void SBBreakpoint_SetEnabled(long jarg1, SBBreakpoint jarg1_, boolean jarg2); + public final static native boolean SBBreakpoint_IsEnabled(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetOneShot(long jarg1, SBBreakpoint jarg1_, boolean jarg2); + public final static native boolean SBBreakpoint_IsOneShot(long jarg1, SBBreakpoint jarg1_); + public final static native boolean SBBreakpoint_IsInternal(long jarg1, SBBreakpoint jarg1_); + public final static native long SBBreakpoint_GetHitCount(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetIgnoreCount(long jarg1, SBBreakpoint jarg1_, long jarg2); + public final static native long SBBreakpoint_GetIgnoreCount(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetCondition(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native String SBBreakpoint_GetCondition(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetAutoContinue(long jarg1, SBBreakpoint jarg1_, boolean jarg2); + public final static native boolean SBBreakpoint_GetAutoContinue(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetThreadID(long jarg1, SBBreakpoint jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBBreakpoint_GetThreadID(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetThreadIndex(long jarg1, SBBreakpoint jarg1_, long jarg2); + public final static native long SBBreakpoint_GetThreadIndex(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetThreadName(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native String SBBreakpoint_GetThreadName(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetQueueName(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native String SBBreakpoint_GetQueueName(long jarg1, SBBreakpoint jarg1_); + public final static native void SBBreakpoint_SetScriptCallbackFunction__SWIG_0(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native long SBBreakpoint_SetScriptCallbackFunction__SWIG_1(long jarg1, SBBreakpoint jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_); + public final static native long SBBreakpoint_SetScriptCallbackBody(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native void SBBreakpoint_SetCommandLineCommands(long jarg1, SBBreakpoint jarg1_, long jarg2, SBStringList jarg2_); + public final static native boolean SBBreakpoint_GetCommandLineCommands(long jarg1, SBBreakpoint jarg1_, long jarg2, SBStringList jarg2_); + public final static native boolean SBBreakpoint_AddName(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native long SBBreakpoint_AddNameWithErrorHandling(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native void SBBreakpoint_RemoveName(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native boolean SBBreakpoint_MatchesName(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native void SBBreakpoint_GetNames(long jarg1, SBBreakpoint jarg1_, long jarg2, SBStringList jarg2_); + public final static native long SBBreakpoint_GetNumResolvedLocations(long jarg1, SBBreakpoint jarg1_); + public final static native long SBBreakpoint_GetNumLocations(long jarg1, SBBreakpoint jarg1_); + public final static native boolean SBBreakpoint_GetDescription__SWIG_0(long jarg1, SBBreakpoint jarg1_, long jarg2, SBStream jarg2_); + public final static native boolean SBBreakpoint_GetDescription__SWIG_1(long jarg1, SBBreakpoint jarg1_, long jarg2, SBStream jarg2_, boolean jarg3); + public final static native long SBBreakpoint_AddLocation(long jarg1, SBBreakpoint jarg1_, long jarg2, SBAddress jarg2_); + public final static native long SBBreakpoint_SerializeToStructuredData(long jarg1, SBBreakpoint jarg1_); + public final static native boolean SBBreakpoint_EventIsBreakpointEvent(long jarg1, SBEvent jarg1_); + public final static native int SBBreakpoint_GetBreakpointEventTypeFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBBreakpoint_GetBreakpointFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(long jarg1, SBEvent jarg1_, long jarg2); + public final static native long SBBreakpoint_GetNumBreakpointLocationsFromEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBBreakpoint_IsHardware(long jarg1, SBBreakpoint jarg1_); + public final static native String SBBreakpoint___str__(long jarg1, SBBreakpoint jarg1_); + public final static native long new_SBBreakpointList(long jarg1, SBTarget jarg1_); + public final static native void delete_SBBreakpointList(long jarg1); + public final static native long SBBreakpointList_GetSize(long jarg1, SBBreakpointList jarg1_); + public final static native long SBBreakpointList_GetBreakpointAtIndex(long jarg1, SBBreakpointList jarg1_, long jarg2); + public final static native long SBBreakpointList_FindBreakpointByID(long jarg1, SBBreakpointList jarg1_, int jarg2); + public final static native void SBBreakpointList_Append(long jarg1, SBBreakpointList jarg1_, long jarg2, SBBreakpoint jarg2_); + public final static native boolean SBBreakpointList_AppendIfUnique(long jarg1, SBBreakpointList jarg1_, long jarg2, SBBreakpoint jarg2_); + public final static native void SBBreakpointList_AppendByID(long jarg1, SBBreakpointList jarg1_, int jarg2); + public final static native void SBBreakpointList_Clear(long jarg1, SBBreakpointList jarg1_); + public final static native long new_SBBreakpointLocation__SWIG_0(); + public final static native long new_SBBreakpointLocation__SWIG_1(long jarg1, SBBreakpointLocation jarg1_); + public final static native void delete_SBBreakpointLocation(long jarg1); + public final static native int SBBreakpointLocation_GetID(long jarg1, SBBreakpointLocation jarg1_); + public final static native boolean SBBreakpointLocation_IsValid(long jarg1, SBBreakpointLocation jarg1_); + public final static native long SBBreakpointLocation_GetAddress(long jarg1, SBBreakpointLocation jarg1_); + public final static native java.math.BigInteger SBBreakpointLocation_GetLoadAddress(long jarg1, SBBreakpointLocation jarg1_); + public final static native void SBBreakpointLocation_SetEnabled(long jarg1, SBBreakpointLocation jarg1_, boolean jarg2); + public final static native boolean SBBreakpointLocation_IsEnabled(long jarg1, SBBreakpointLocation jarg1_); + public final static native long SBBreakpointLocation_GetHitCount(long jarg1, SBBreakpointLocation jarg1_); + public final static native long SBBreakpointLocation_GetIgnoreCount(long jarg1, SBBreakpointLocation jarg1_); + public final static native void SBBreakpointLocation_SetIgnoreCount(long jarg1, SBBreakpointLocation jarg1_, long jarg2); + public final static native void SBBreakpointLocation_SetCondition(long jarg1, SBBreakpointLocation jarg1_, String jarg2); + public final static native String SBBreakpointLocation_GetCondition(long jarg1, SBBreakpointLocation jarg1_); + public final static native boolean SBBreakpointLocation_GetAutoContinue(long jarg1, SBBreakpointLocation jarg1_); + public final static native void SBBreakpointLocation_SetAutoContinue(long jarg1, SBBreakpointLocation jarg1_, boolean jarg2); + public final static native void SBBreakpointLocation_SetScriptCallbackFunction__SWIG_0(long jarg1, SBBreakpointLocation jarg1_, String jarg2); + public final static native long SBBreakpointLocation_SetScriptCallbackFunction__SWIG_1(long jarg1, SBBreakpointLocation jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_); + public final static native long SBBreakpointLocation_SetScriptCallbackBody(long jarg1, SBBreakpointLocation jarg1_, String jarg2); + public final static native void SBBreakpointLocation_SetCommandLineCommands(long jarg1, SBBreakpointLocation jarg1_, long jarg2, SBStringList jarg2_); + public final static native boolean SBBreakpointLocation_GetCommandLineCommands(long jarg1, SBBreakpointLocation jarg1_, long jarg2, SBStringList jarg2_); + public final static native void SBBreakpointLocation_SetThreadID(long jarg1, SBBreakpointLocation jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBBreakpointLocation_GetThreadID(long jarg1, SBBreakpointLocation jarg1_); + public final static native void SBBreakpointLocation_SetThreadIndex(long jarg1, SBBreakpointLocation jarg1_, long jarg2); + public final static native long SBBreakpointLocation_GetThreadIndex(long jarg1, SBBreakpointLocation jarg1_); + public final static native void SBBreakpointLocation_SetThreadName(long jarg1, SBBreakpointLocation jarg1_, String jarg2); + public final static native String SBBreakpointLocation_GetThreadName(long jarg1, SBBreakpointLocation jarg1_); + public final static native void SBBreakpointLocation_SetQueueName(long jarg1, SBBreakpointLocation jarg1_, String jarg2); + public final static native String SBBreakpointLocation_GetQueueName(long jarg1, SBBreakpointLocation jarg1_); + public final static native boolean SBBreakpointLocation_IsResolved(long jarg1, SBBreakpointLocation jarg1_); + public final static native boolean SBBreakpointLocation_GetDescription(long jarg1, SBBreakpointLocation jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native long SBBreakpointLocation_GetBreakpoint(long jarg1, SBBreakpointLocation jarg1_); + public final static native String SBBreakpointLocation___str__(long jarg1, SBBreakpointLocation jarg1_); + public final static native long new_SBBreakpointName__SWIG_0(); + public final static native long new_SBBreakpointName__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long new_SBBreakpointName__SWIG_2(long jarg1, SBBreakpoint jarg1_, String jarg2); + public final static native long new_SBBreakpointName__SWIG_3(long jarg1, SBBreakpointName jarg1_); + public final static native void delete_SBBreakpointName(long jarg1); + public final static native boolean SBBreakpointName_IsValid(long jarg1, SBBreakpointName jarg1_); + public final static native String SBBreakpointName_GetName(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetEnabled(long jarg1, SBBreakpointName jarg1_, boolean jarg2); + public final static native boolean SBBreakpointName_IsEnabled(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetOneShot(long jarg1, SBBreakpointName jarg1_, boolean jarg2); + public final static native boolean SBBreakpointName_IsOneShot(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetIgnoreCount(long jarg1, SBBreakpointName jarg1_, long jarg2); + public final static native long SBBreakpointName_GetIgnoreCount(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetCondition(long jarg1, SBBreakpointName jarg1_, String jarg2); + public final static native String SBBreakpointName_GetCondition(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetAutoContinue(long jarg1, SBBreakpointName jarg1_, boolean jarg2); + public final static native boolean SBBreakpointName_GetAutoContinue(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetThreadID(long jarg1, SBBreakpointName jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBBreakpointName_GetThreadID(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetThreadIndex(long jarg1, SBBreakpointName jarg1_, long jarg2); + public final static native long SBBreakpointName_GetThreadIndex(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetThreadName(long jarg1, SBBreakpointName jarg1_, String jarg2); + public final static native String SBBreakpointName_GetThreadName(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetQueueName(long jarg1, SBBreakpointName jarg1_, String jarg2); + public final static native String SBBreakpointName_GetQueueName(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetScriptCallbackFunction__SWIG_0(long jarg1, SBBreakpointName jarg1_, String jarg2); + public final static native long SBBreakpointName_SetScriptCallbackFunction__SWIG_1(long jarg1, SBBreakpointName jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_); + public final static native void SBBreakpointName_SetCommandLineCommands(long jarg1, SBBreakpointName jarg1_, long jarg2, SBStringList jarg2_); + public final static native boolean SBBreakpointName_GetCommandLineCommands(long jarg1, SBBreakpointName jarg1_, long jarg2, SBStringList jarg2_); + public final static native long SBBreakpointName_SetScriptCallbackBody(long jarg1, SBBreakpointName jarg1_, String jarg2); + public final static native String SBBreakpointName_GetHelpString(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetHelpString(long jarg1, SBBreakpointName jarg1_, String jarg2); + public final static native boolean SBBreakpointName_GetAllowList(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetAllowList(long jarg1, SBBreakpointName jarg1_, boolean jarg2); + public final static native boolean SBBreakpointName_GetAllowDelete(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetAllowDelete(long jarg1, SBBreakpointName jarg1_, boolean jarg2); + public final static native boolean SBBreakpointName_GetAllowDisable(long jarg1, SBBreakpointName jarg1_); + public final static native void SBBreakpointName_SetAllowDisable(long jarg1, SBBreakpointName jarg1_, boolean jarg2); + public final static native boolean SBBreakpointName_GetDescription(long jarg1, SBBreakpointName jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBBreakpointName___str__(long jarg1, SBBreakpointName jarg1_); + public final static native long new_SBBroadcaster__SWIG_0(); + public final static native long new_SBBroadcaster__SWIG_1(String jarg1); + public final static native long new_SBBroadcaster__SWIG_2(long jarg1, SBBroadcaster jarg1_); + public final static native void delete_SBBroadcaster(long jarg1); + public final static native boolean SBBroadcaster_IsValid(long jarg1, SBBroadcaster jarg1_); + public final static native void SBBroadcaster_Clear(long jarg1, SBBroadcaster jarg1_); + public final static native void SBBroadcaster_BroadcastEventByType__SWIG_0(long jarg1, SBBroadcaster jarg1_, long jarg2, boolean jarg3); + public final static native void SBBroadcaster_BroadcastEventByType__SWIG_1(long jarg1, SBBroadcaster jarg1_, long jarg2); + public final static native void SBBroadcaster_BroadcastEvent__SWIG_0(long jarg1, SBBroadcaster jarg1_, long jarg2, SBEvent jarg2_, boolean jarg3); + public final static native void SBBroadcaster_BroadcastEvent__SWIG_1(long jarg1, SBBroadcaster jarg1_, long jarg2, SBEvent jarg2_); + public final static native void SBBroadcaster_AddInitialEventsToListener(long jarg1, SBBroadcaster jarg1_, long jarg2, SBListener jarg2_, long jarg3); + public final static native long SBBroadcaster_AddListener(long jarg1, SBBroadcaster jarg1_, long jarg2, SBListener jarg2_, long jarg3); + public final static native String SBBroadcaster_GetName(long jarg1, SBBroadcaster jarg1_); + public final static native boolean SBBroadcaster_EventTypeHasListeners(long jarg1, SBBroadcaster jarg1_, long jarg2); + public final static native boolean SBBroadcaster_RemoveListener__SWIG_0(long jarg1, SBBroadcaster jarg1_, long jarg2, SBListener jarg2_, long jarg3); + public final static native boolean SBBroadcaster_RemoveListener__SWIG_1(long jarg1, SBBroadcaster jarg1_, long jarg2, SBListener jarg2_); + public final static native int SBCommandInterpreter_eBroadcastBitThreadShouldExit_get(); + public final static native int SBCommandInterpreter_eBroadcastBitResetPrompt_get(); + public final static native int SBCommandInterpreter_eBroadcastBitQuitCommandReceived_get(); + public final static native int SBCommandInterpreter_eBroadcastBitAsynchronousOutputData_get(); + public final static native int SBCommandInterpreter_eBroadcastBitAsynchronousErrorData_get(); + public final static native long new_SBCommandInterpreter(long jarg1, SBCommandInterpreter jarg1_); + public final static native void delete_SBCommandInterpreter(long jarg1); + public final static native String SBCommandInterpreter_GetArgumentTypeAsCString(int jarg1); + public final static native String SBCommandInterpreter_GetArgumentDescriptionAsCString(int jarg1); + public final static native boolean SBCommandInterpreter_EventIsCommandInterpreterEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBCommandInterpreter_IsValid(long jarg1, SBCommandInterpreter jarg1_); + public final static native String SBCommandInterpreter_GetIOHandlerControlSequence(long jarg1, SBCommandInterpreter jarg1_, char jarg2); + public final static native boolean SBCommandInterpreter_GetPromptOnQuit(long jarg1, SBCommandInterpreter jarg1_); + public final static native void SBCommandInterpreter_SetPromptOnQuit(long jarg1, SBCommandInterpreter jarg1_, boolean jarg2); + public final static native void SBCommandInterpreter_AllowExitCodeOnQuit(long jarg1, SBCommandInterpreter jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreter_HasCustomQuitExitCode(long jarg1, SBCommandInterpreter jarg1_); + public final static native int SBCommandInterpreter_GetQuitStatus(long jarg1, SBCommandInterpreter jarg1_); + public final static native void SBCommandInterpreter_ResolveCommand(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, SBCommandReturnObject jarg3_); + public final static native boolean SBCommandInterpreter_CommandExists(long jarg1, SBCommandInterpreter jarg1_, String jarg2); + public final static native boolean SBCommandInterpreter_AliasExists(long jarg1, SBCommandInterpreter jarg1_, String jarg2); + public final static native long SBCommandInterpreter_GetBroadcaster(long jarg1, SBCommandInterpreter jarg1_); + public final static native String SBCommandInterpreter_GetBroadcasterClass(); + public final static native boolean SBCommandInterpreter_HasCommands(long jarg1, SBCommandInterpreter jarg1_); + public final static native boolean SBCommandInterpreter_HasAliases(long jarg1, SBCommandInterpreter jarg1_); + public final static native boolean SBCommandInterpreter_HasAliasOptions(long jarg1, SBCommandInterpreter jarg1_); + public final static native long SBCommandInterpreter_GetProcess(long jarg1, SBCommandInterpreter jarg1_); + public final static native long SBCommandInterpreter_GetDebugger(long jarg1, SBCommandInterpreter jarg1_); + public final static native void SBCommandInterpreter_SourceInitFileInHomeDirectory(long jarg1, SBCommandInterpreter jarg1_, long jarg2, SBCommandReturnObject jarg2_); + public final static native void SBCommandInterpreter_SourceInitFileInCurrentWorkingDirectory(long jarg1, SBCommandInterpreter jarg1_, long jarg2, SBCommandReturnObject jarg2_); + public final static native int SBCommandInterpreter_HandleCommand__SWIG_0(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, SBCommandReturnObject jarg3_, boolean jarg4); + public final static native int SBCommandInterpreter_HandleCommand__SWIG_1(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, SBCommandReturnObject jarg3_); + public final static native int SBCommandInterpreter_HandleCommand__SWIG_2(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, SBExecutionContext jarg3_, long jarg4, SBCommandReturnObject jarg4_, boolean jarg5); + public final static native int SBCommandInterpreter_HandleCommand__SWIG_3(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, SBExecutionContext jarg3_, long jarg4, SBCommandReturnObject jarg4_); + public final static native void SBCommandInterpreter_HandleCommandsFromFile(long jarg1, SBCommandInterpreter jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBExecutionContext jarg3_, long jarg4, SBCommandInterpreterRunOptions jarg4_, long jarg5, SBCommandReturnObject jarg5_); + public final static native int SBCommandInterpreter_HandleCompletion(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, int jarg4, int jarg5, long jarg6, SBStringList jarg6_); + public final static native int SBCommandInterpreter_HandleCompletionWithDescriptions(long jarg1, SBCommandInterpreter jarg1_, String jarg2, long jarg3, int jarg4, int jarg5, long jarg6, SBStringList jarg6_, long jarg7, SBStringList jarg7_); + public final static native boolean SBCommandInterpreter_IsActive(long jarg1, SBCommandInterpreter jarg1_); + public final static native boolean SBCommandInterpreter_WasInterrupted(long jarg1, SBCommandInterpreter jarg1_); + public final static native long new_SBCommandInterpreterRunOptions(); + public final static native void delete_SBCommandInterpreterRunOptions(long jarg1); + public final static native boolean SBCommandInterpreterRunOptions_GetStopOnContinue(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetStopOnContinue(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreterRunOptions_GetStopOnError(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetStopOnError(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreterRunOptions_GetStopOnCrash(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetStopOnCrash(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreterRunOptions_GetEchoCommands(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetEchoCommands(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreterRunOptions_GetPrintResults(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetPrintResults(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreterRunOptions_GetPrintErrors(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetPrintErrors(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native boolean SBCommandInterpreterRunOptions_GetAddToHistory(long jarg1, SBCommandInterpreterRunOptions jarg1_); + public final static native void SBCommandInterpreterRunOptions_SetAddToHistory(long jarg1, SBCommandInterpreterRunOptions jarg1_, boolean jarg2); + public final static native long new_SBCommandReturnObject__SWIG_0(); + public final static native long new_SBCommandReturnObject__SWIG_1(long jarg1, SBCommandReturnObject jarg1_); + public final static native void delete_SBCommandReturnObject(long jarg1); + public final static native boolean SBCommandReturnObject_IsValid(long jarg1, SBCommandReturnObject jarg1_); + public final static native String SBCommandReturnObject_GetOutput__SWIG_0(long jarg1, SBCommandReturnObject jarg1_); + public final static native String SBCommandReturnObject_GetError__SWIG_0(long jarg1, SBCommandReturnObject jarg1_); + public final static native long SBCommandReturnObject_GetOutputSize(long jarg1, SBCommandReturnObject jarg1_); + public final static native long SBCommandReturnObject_GetErrorSize(long jarg1, SBCommandReturnObject jarg1_); + public final static native String SBCommandReturnObject_GetOutput__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, boolean jarg2); + public final static native String SBCommandReturnObject_GetError__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, boolean jarg2); + public final static native long SBCommandReturnObject_PutOutput__SWIG_0(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBFile jarg2_); + public final static native long SBCommandReturnObject_PutError__SWIG_0(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBFile jarg2_); + public final static native long SBCommandReturnObject_PutOutput__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, long jarg2); + public final static native long SBCommandReturnObject_PutError__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, long jarg2); + public final static native void SBCommandReturnObject_Clear(long jarg1, SBCommandReturnObject jarg1_); + public final static native void SBCommandReturnObject_SetStatus(long jarg1, SBCommandReturnObject jarg1_, int jarg2); + public final static native void SBCommandReturnObject_SetError__SWIG_0(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBError jarg2_, String jarg3); + public final static native void SBCommandReturnObject_SetError__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBError jarg2_); + public final static native void SBCommandReturnObject_SetError__SWIG_2(long jarg1, SBCommandReturnObject jarg1_, String jarg2); + public final static native int SBCommandReturnObject_GetStatus(long jarg1, SBCommandReturnObject jarg1_); + public final static native boolean SBCommandReturnObject_Succeeded(long jarg1, SBCommandReturnObject jarg1_); + public final static native boolean SBCommandReturnObject_HasResult(long jarg1, SBCommandReturnObject jarg1_); + public final static native void SBCommandReturnObject_AppendMessage(long jarg1, SBCommandReturnObject jarg1_, String jarg2); + public final static native void SBCommandReturnObject_AppendWarning(long jarg1, SBCommandReturnObject jarg1_, String jarg2); + public final static native boolean SBCommandReturnObject_GetDescription(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBCommandReturnObject_SetImmediateOutputFile__SWIG_0(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBFile jarg2_); + public final static native void SBCommandReturnObject_SetImmediateErrorFile__SWIG_0(long jarg1, SBCommandReturnObject jarg1_, long jarg2, SBFile jarg2_); + public final static native void SBCommandReturnObject_SetImmediateOutputFile__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, long jarg2); + public final static native void SBCommandReturnObject_SetImmediateErrorFile__SWIG_1(long jarg1, SBCommandReturnObject jarg1_, long jarg2); + public final static native String SBCommandReturnObject___str__(long jarg1, SBCommandReturnObject jarg1_); + public final static native void SBCommandReturnObject_SetImmediateOutputFile__SWIG_2(long jarg1, SBCommandReturnObject jarg1_, long jarg2, boolean jarg3); + public final static native void SBCommandReturnObject_SetImmediateErrorFile__SWIG_2(long jarg1, SBCommandReturnObject jarg1_, long jarg2, boolean jarg3); + public final static native void SBCommandReturnObject_PutCString(long jarg1, SBCommandReturnObject jarg1_, String jarg2, int jarg3); + public final static native void SBCommandReturnObject_Print(long jarg1, SBCommandReturnObject jarg1_, String jarg2); + public final static native int SBCommunication_eBroadcastBitDisconnected_get(); + public final static native int SBCommunication_eBroadcastBitReadThreadGotBytes_get(); + public final static native int SBCommunication_eBroadcastBitReadThreadDidExit_get(); + public final static native int SBCommunication_eBroadcastBitReadThreadShouldExit_get(); + public final static native int SBCommunication_eBroadcastBitPacketAvailable_get(); + public final static native int SBCommunication_eAllEventBits_get(); + public final static native long new_SBCommunication__SWIG_0(); + public final static native long new_SBCommunication__SWIG_1(String jarg1); + public final static native void delete_SBCommunication(long jarg1); + public final static native boolean SBCommunication_IsValid(long jarg1, SBCommunication jarg1_); + public final static native long SBCommunication_GetBroadcaster(long jarg1, SBCommunication jarg1_); + public final static native String SBCommunication_GetBroadcasterClass(); + public final static native int SBCommunication_AdoptFileDesriptor(long jarg1, SBCommunication jarg1_, int jarg2, boolean jarg3); + public final static native int SBCommunication_Connect(long jarg1, SBCommunication jarg1_, String jarg2); + public final static native int SBCommunication_Disconnect(long jarg1, SBCommunication jarg1_); + public final static native boolean SBCommunication_IsConnected(long jarg1, SBCommunication jarg1_); + public final static native boolean SBCommunication_GetCloseOnEOF(long jarg1, SBCommunication jarg1_); + public final static native void SBCommunication_SetCloseOnEOF(long jarg1, SBCommunication jarg1_, boolean jarg2); + public final static native long SBCommunication_Read(long jarg1, SBCommunication jarg1_, long jarg2, long jarg3, long jarg4, long jarg5); + public final static native long SBCommunication_Write(long jarg1, SBCommunication jarg1_, long jarg2, long jarg3, long jarg4); + public final static native boolean SBCommunication_ReadThreadStart(long jarg1, SBCommunication jarg1_); + public final static native boolean SBCommunication_ReadThreadStop(long jarg1, SBCommunication jarg1_); + public final static native boolean SBCommunication_ReadThreadIsRunning(long jarg1, SBCommunication jarg1_); + public final static native boolean SBCommunication_SetReadThreadBytesReceivedCallback(long jarg1, SBCommunication jarg1_, long jarg2, long jarg3); + public final static native long new_SBCompileUnit__SWIG_0(); + public final static native long new_SBCompileUnit__SWIG_1(long jarg1, SBCompileUnit jarg1_); + public final static native void delete_SBCompileUnit(long jarg1); + public final static native boolean SBCompileUnit_IsValid(long jarg1, SBCompileUnit jarg1_); + public final static native long SBCompileUnit_GetFileSpec(long jarg1, SBCompileUnit jarg1_); + public final static native long SBCompileUnit_GetNumLineEntries(long jarg1, SBCompileUnit jarg1_); + public final static native long SBCompileUnit_GetLineEntryAtIndex(long jarg1, SBCompileUnit jarg1_, long jarg2); + public final static native long SBCompileUnit_FindLineEntryIndex__SWIG_0(long jarg1, SBCompileUnit jarg1_, long jarg2, long jarg3, long jarg4, SBFileSpec jarg4_); + public final static native long SBCompileUnit_FindLineEntryIndex__SWIG_1(long jarg1, SBCompileUnit jarg1_, long jarg2, long jarg3, long jarg4, SBFileSpec jarg4_, boolean jarg5); + public final static native long SBCompileUnit_GetSupportFileAtIndex(long jarg1, SBCompileUnit jarg1_, long jarg2); + public final static native long SBCompileUnit_GetNumSupportFiles(long jarg1, SBCompileUnit jarg1_); + public final static native long SBCompileUnit_FindSupportFileIndex(long jarg1, SBCompileUnit jarg1_, long jarg2, long jarg3, SBFileSpec jarg3_, boolean jarg4); + public final static native long SBCompileUnit_GetTypes__SWIG_0(long jarg1, SBCompileUnit jarg1_, long jarg2); + public final static native long SBCompileUnit_GetTypes__SWIG_1(long jarg1, SBCompileUnit jarg1_); + public final static native int SBCompileUnit_GetLanguage(long jarg1, SBCompileUnit jarg1_); + public final static native boolean SBCompileUnit_GetDescription(long jarg1, SBCompileUnit jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBCompileUnit___str__(long jarg1, SBCompileUnit jarg1_); + public final static native long new_SBData__SWIG_0(); + public final static native long new_SBData__SWIG_1(long jarg1, SBData jarg1_); + public final static native void delete_SBData(long jarg1); + public final static native short SBData_GetAddressByteSize(long jarg1, SBData jarg1_); + public final static native void SBData_SetAddressByteSize(long jarg1, SBData jarg1_, short jarg2); + public final static native void SBData_Clear(long jarg1, SBData jarg1_); + public final static native boolean SBData_IsValid(long jarg1, SBData jarg1_); + public final static native long SBData_GetByteSize(long jarg1, SBData jarg1_); + public final static native int SBData_GetByteOrder(long jarg1, SBData jarg1_); + public final static native void SBData_SetByteOrder(long jarg1, SBData jarg1_, int jarg2); + public final static native float SBData_GetFloat(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native double SBData_GetDouble(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native long SBData_GetLongDouble(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native java.math.BigInteger SBData_GetAddress(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native short SBData_GetUnsignedInt8(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native int SBData_GetUnsignedInt16(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native long SBData_GetUnsignedInt32(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native java.math.BigInteger SBData_GetUnsignedInt64(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native byte SBData_GetSignedInt8(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native short SBData_GetSignedInt16(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native int SBData_GetSignedInt32(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native long SBData_GetSignedInt64(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native String SBData_GetString(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native boolean SBData_GetDescription(long jarg1, SBData jarg1_, long jarg2, SBStream jarg2_, java.math.BigInteger jarg3); + public final static native long SBData_ReadRawData(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3, long jarg4, long jarg5); + public final static native void SBData_SetData(long jarg1, SBData jarg1_, long jarg2, SBError jarg2_, long jarg3, long jarg4, int jarg5, short jarg6); + public final static native boolean SBData_Append(long jarg1, SBData jarg1_, long jarg2, SBData jarg2_); + public final static native long SBData_CreateDataFromCString(int jarg1, long jarg2, String jarg3); + public final static native long SBData_CreateDataFromUInt64Array(int jarg1, long jarg2, long jarg3, long jarg4); + public final static native long SBData_CreateDataFromUInt32Array(int jarg1, long jarg2, long jarg3, long jarg4); + public final static native long SBData_CreateDataFromSInt64Array(int jarg1, long jarg2, long jarg3, long jarg4); + public final static native long SBData_CreateDataFromSInt32Array(int jarg1, long jarg2, long jarg3, long jarg4); + public final static native long SBData_CreateDataFromDoubleArray(int jarg1, long jarg2, long jarg3, long jarg4); + public final static native boolean SBData_SetDataFromCString(long jarg1, SBData jarg1_, String jarg2); + public final static native boolean SBData_SetDataFromUInt64Array(long jarg1, SBData jarg1_, long jarg2, long jarg3); + public final static native boolean SBData_SetDataFromUInt32Array(long jarg1, SBData jarg1_, long jarg2, long jarg3); + public final static native boolean SBData_SetDataFromSInt64Array(long jarg1, SBData jarg1_, long jarg2, long jarg3); + public final static native boolean SBData_SetDataFromSInt32Array(long jarg1, SBData jarg1_, long jarg2, long jarg3); + public final static native boolean SBData_SetDataFromDoubleArray(long jarg1, SBData jarg1_, long jarg2, long jarg3); + public final static native String SBData___str__(long jarg1, SBData jarg1_); + public final static native void SBDebugger_Initialize(); + public final static native long SBDebugger_InitializeWithErrorHandling(); + public final static native void SBDebugger_Terminate(); + public final static native long SBDebugger_Create__SWIG_0(); + public final static native long SBDebugger_Create__SWIG_1(boolean jarg1); + public final static native long SBDebugger_Create__SWIG_2(boolean jarg1, long jarg2, long jarg3); + public final static native void SBDebugger_Destroy(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_MemoryPressureDetected(); + public final static native long new_SBDebugger__SWIG_0(); + public final static native long new_SBDebugger__SWIG_1(long jarg1, SBDebugger jarg1_); + public final static native void delete_SBDebugger(long jarg1); + public final static native boolean SBDebugger_IsValid(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_Clear(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetAsync(long jarg1, SBDebugger jarg1_, boolean jarg2); + public final static native boolean SBDebugger_GetAsync(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SkipLLDBInitFiles(long jarg1, SBDebugger jarg1_, boolean jarg2); + public final static native long SBDebugger_GetInputFileHandle(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetOutputFileHandle(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetErrorFileHandle(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_SetInputFile__SWIG_0(long jarg1, SBDebugger jarg1_, long jarg2, SBFile jarg2_); + public final static native long SBDebugger_SetOutputFile__SWIG_0(long jarg1, SBDebugger jarg1_, long jarg2, SBFile jarg2_); + public final static native long SBDebugger_SetErrorFile__SWIG_0(long jarg1, SBDebugger jarg1_, long jarg2, SBFile jarg2_); + public final static native long SBDebugger_SetInputFile__SWIG_1(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_SetOutputFile__SWIG_1(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_SetErrorFile__SWIG_1(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_GetInputFile(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetOutputFile(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetErrorFile(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetCommandInterpreter(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_HandleCommand(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native long SBDebugger_GetListener(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_HandleProcessEvent__SWIG_0(long jarg1, SBDebugger jarg1_, long jarg2, SBProcess jarg2_, long jarg3, SBEvent jarg3_, long jarg4, SBFile jarg4_, long jarg5, SBFile jarg5_); + public final static native void SBDebugger_HandleProcessEvent__SWIG_1(long jarg1, SBDebugger jarg1_, long jarg2, SBProcess jarg2_, long jarg3, SBEvent jarg3_, long jarg4, long jarg5); + public final static native long SBDebugger_CreateTarget__SWIG_0(long jarg1, SBDebugger jarg1_, String jarg2, String jarg3, String jarg4, boolean jarg5, long jarg6, SBError jarg6_); + public final static native long SBDebugger_CreateTargetWithFileAndTargetTriple(long jarg1, SBDebugger jarg1_, String jarg2, String jarg3); + public final static native long SBDebugger_CreateTargetWithFileAndArch(long jarg1, SBDebugger jarg1_, String jarg2, String jarg3); + public final static native long SBDebugger_CreateTarget__SWIG_1(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native long SBDebugger_GetDummyTarget(long jarg1, SBDebugger jarg1_); + public final static native boolean SBDebugger_DeleteTarget(long jarg1, SBDebugger jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBDebugger_GetTargetAtIndex(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_GetIndexOfTarget(long jarg1, SBDebugger jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBDebugger_FindTargetWithProcessID(long jarg1, SBDebugger jarg1_, java.math.BigInteger jarg2); + public final static native long SBDebugger_FindTargetWithFileAndArch(long jarg1, SBDebugger jarg1_, String jarg2, String jarg3); + public final static native long SBDebugger_GetNumTargets(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetSelectedTarget(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetSelectedTarget(long jarg1, SBDebugger jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBDebugger_GetSelectedPlatform(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetSelectedPlatform(long jarg1, SBDebugger jarg1_, long jarg2, SBPlatform jarg2_); + public final static native long SBDebugger_GetNumPlatforms(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetPlatformAtIndex(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_GetNumAvailablePlatforms(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetAvailablePlatformInfoAtIndex(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_GetSourceManager(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_SetCurrentPlatform(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native boolean SBDebugger_SetCurrentPlatformSDKRoot(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native boolean SBDebugger_SetUseExternalEditor(long jarg1, SBDebugger jarg1_, boolean jarg2); + public final static native boolean SBDebugger_GetUseExternalEditor(long jarg1, SBDebugger jarg1_); + public final static native boolean SBDebugger_SetUseColor(long jarg1, SBDebugger jarg1_, boolean jarg2); + public final static native boolean SBDebugger_GetUseColor(long jarg1, SBDebugger jarg1_); + public final static native boolean SBDebugger_GetDefaultArchitecture(String jarg1, long jarg2); + public final static native boolean SBDebugger_SetDefaultArchitecture(String jarg1); + public final static native int SBDebugger_GetScriptingLanguage(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native String SBDebugger_GetVersionString(); + public final static native String SBDebugger_StateAsCString(int jarg1); + public final static native long SBDebugger_GetBuildConfiguration(); + public final static native boolean SBDebugger_StateIsRunningState(int jarg1); + public final static native boolean SBDebugger_StateIsStoppedState(int jarg1); + public final static native boolean SBDebugger_EnableLog(long jarg1, SBDebugger jarg1_, String jarg2, String[] jarg3); + public final static native void SBDebugger_SetLoggingCallback(long jarg1, SBDebugger jarg1_, long jarg2, long jarg3); + public final static native void SBDebugger_DispatchInput(long jarg1, SBDebugger jarg1_, long jarg2, long jarg3); + public final static native void SBDebugger_DispatchInputInterrupt(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_DispatchInputEndOfFile(long jarg1, SBDebugger jarg1_); + public final static native String SBDebugger_GetInstanceName(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_FindDebuggerWithID(int jarg1); + public final static native long SBDebugger_SetInternalVariable(String jarg1, String jarg2, String jarg3); + public final static native long SBDebugger_GetInternalVariableValue(String jarg1, String jarg2); + public final static native boolean SBDebugger_GetDescription(long jarg1, SBDebugger jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBDebugger_GetTerminalWidth(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetTerminalWidth(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native java.math.BigInteger SBDebugger_GetID(long jarg1, SBDebugger jarg1_); + public final static native String SBDebugger_GetPrompt(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetPrompt(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native String SBDebugger_GetReproducerPath(long jarg1, SBDebugger jarg1_); + public final static native int SBDebugger_GetScriptLanguage(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetScriptLanguage(long jarg1, SBDebugger jarg1_, int jarg2); + public final static native boolean SBDebugger_GetCloseInputOnEOF(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_SetCloseInputOnEOF(long jarg1, SBDebugger jarg1_, boolean jarg2); + public final static native long SBDebugger_GetCategory__SWIG_0(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native long SBDebugger_GetCategory__SWIG_1(long jarg1, SBDebugger jarg1_, int jarg2); + public final static native long SBDebugger_CreateCategory(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native boolean SBDebugger_DeleteCategory(long jarg1, SBDebugger jarg1_, String jarg2); + public final static native long SBDebugger_GetNumCategories(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetCategoryAtIndex(long jarg1, SBDebugger jarg1_, long jarg2); + public final static native long SBDebugger_GetDefaultCategory(long jarg1, SBDebugger jarg1_); + public final static native long SBDebugger_GetFormatForType(long jarg1, SBDebugger jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBDebugger_GetSummaryForType(long jarg1, SBDebugger jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBDebugger_GetFilterForType(long jarg1, SBDebugger jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBDebugger_GetSyntheticForType(long jarg1, SBDebugger jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native String SBDebugger___str__(long jarg1, SBDebugger jarg1_); + public final static native void SBDebugger_RunCommandInterpreter(long jarg1, SBDebugger jarg1_, boolean jarg2, boolean jarg3, long jarg4, SBCommandInterpreterRunOptions jarg4_, int[] jarg5, boolean[] jarg6, boolean[] jarg7); + public final static native long SBDebugger_RunREPL(long jarg1, SBDebugger jarg1_, int jarg2, String jarg3); + public final static native long new_SBDeclaration__SWIG_0(); + public final static native long new_SBDeclaration__SWIG_1(long jarg1, SBDeclaration jarg1_); + public final static native void delete_SBDeclaration(long jarg1); + public final static native boolean SBDeclaration_IsValid(long jarg1, SBDeclaration jarg1_); + public final static native long SBDeclaration_GetFileSpec(long jarg1, SBDeclaration jarg1_); + public final static native long SBDeclaration_GetLine(long jarg1, SBDeclaration jarg1_); + public final static native long SBDeclaration_GetColumn(long jarg1, SBDeclaration jarg1_); + public final static native boolean SBDeclaration_GetDescription(long jarg1, SBDeclaration jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBDeclaration_SetFileSpec(long jarg1, SBDeclaration jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native void SBDeclaration_SetLine(long jarg1, SBDeclaration jarg1_, long jarg2); + public final static native void SBDeclaration_SetColumn(long jarg1, SBDeclaration jarg1_, long jarg2); + public final static native String SBDeclaration___str__(long jarg1, SBDeclaration jarg1_); + public final static native long new_SBError__SWIG_0(); + public final static native long new_SBError__SWIG_1(long jarg1, SBError jarg1_); + public final static native void delete_SBError(long jarg1); + public final static native String SBError_GetCString(long jarg1, SBError jarg1_); + public final static native void SBError_Clear(long jarg1, SBError jarg1_); + public final static native boolean SBError_Fail(long jarg1, SBError jarg1_); + public final static native boolean SBError_Success(long jarg1, SBError jarg1_); + public final static native long SBError_GetError(long jarg1, SBError jarg1_); + public final static native int SBError_GetType(long jarg1, SBError jarg1_); + public final static native void SBError_SetError(long jarg1, SBError jarg1_, long jarg2, int jarg3); + public final static native void SBError_SetErrorToErrno(long jarg1, SBError jarg1_); + public final static native void SBError_SetErrorToGenericError(long jarg1, SBError jarg1_); + public final static native void SBError_SetErrorString(long jarg1, SBError jarg1_, String jarg2); + public final static native int SBError_SetErrorStringWithFormat__SWIG_0(long jarg1, SBError jarg1_, String jarg2, String jarg3, String jarg4, String jarg5); + public final static native int SBError_SetErrorStringWithFormat__SWIG_1(long jarg1, SBError jarg1_, String jarg2, String jarg3, String jarg4); + public final static native int SBError_SetErrorStringWithFormat__SWIG_2(long jarg1, SBError jarg1_, String jarg2, String jarg3); + public final static native int SBError_SetErrorStringWithFormat__SWIG_3(long jarg1, SBError jarg1_, String jarg2); + public final static native boolean SBError_IsValid(long jarg1, SBError jarg1_); + public final static native boolean SBError_GetDescription(long jarg1, SBError jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBError___str__(long jarg1, SBError jarg1_); + public final static native long new_SBEnvironment__SWIG_0(); + public final static native long new_SBEnvironment__SWIG_1(long jarg1, SBEnvironment jarg1_); + public final static native void delete_SBEnvironment(long jarg1); + public final static native long SBEnvironment_GetNumValues(long jarg1, SBEnvironment jarg1_); + public final static native String SBEnvironment_Get(long jarg1, SBEnvironment jarg1_, String jarg2); + public final static native String SBEnvironment_GetNameAtIndex(long jarg1, SBEnvironment jarg1_, long jarg2); + public final static native String SBEnvironment_GetValueAtIndex(long jarg1, SBEnvironment jarg1_, long jarg2); + public final static native long SBEnvironment_GetEntries(long jarg1, SBEnvironment jarg1_); + public final static native void SBEnvironment_PutEntry(long jarg1, SBEnvironment jarg1_, String jarg2); + public final static native void SBEnvironment_SetEntries(long jarg1, SBEnvironment jarg1_, long jarg2, SBStringList jarg2_, boolean jarg3); + public final static native boolean SBEnvironment_Set(long jarg1, SBEnvironment jarg1_, String jarg2, String jarg3, boolean jarg4); + public final static native boolean SBEnvironment_Unset(long jarg1, SBEnvironment jarg1_, String jarg2); + public final static native void SBEnvironment_Clear(long jarg1, SBEnvironment jarg1_); + public final static native long new_SBEvent__SWIG_0(); + public final static native long new_SBEvent__SWIG_1(long jarg1, SBEvent jarg1_); + public final static native long new_SBEvent__SWIG_2(long jarg1, String jarg2, long jarg3); + public final static native void delete_SBEvent(long jarg1); + public final static native boolean SBEvent_IsValid(long jarg1, SBEvent jarg1_); + public final static native String SBEvent_GetDataFlavor(long jarg1, SBEvent jarg1_); + public final static native long SBEvent_GetType(long jarg1, SBEvent jarg1_); + public final static native long SBEvent_GetBroadcaster(long jarg1, SBEvent jarg1_); + public final static native String SBEvent_GetBroadcasterClass(long jarg1, SBEvent jarg1_); + public final static native boolean SBEvent_BroadcasterMatchesRef(long jarg1, SBEvent jarg1_, long jarg2, SBBroadcaster jarg2_); + public final static native void SBEvent_Clear(long jarg1, SBEvent jarg1_); + public final static native String SBEvent_GetCStringFromEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBEvent_GetDescription(long jarg1, SBEvent jarg1_, long jarg2, SBStream jarg2_); + public final static native long new_SBExecutionContext__SWIG_0(); + public final static native long new_SBExecutionContext__SWIG_1(long jarg1, SBExecutionContext jarg1_); + public final static native long new_SBExecutionContext__SWIG_2(long jarg1, SBTarget jarg1_); + public final static native long new_SBExecutionContext__SWIG_3(long jarg1, SBProcess jarg1_); + public final static native long new_SBExecutionContext__SWIG_4(long jarg1, SBThread jarg1_); + public final static native long new_SBExecutionContext__SWIG_5(long jarg1, SBFrame jarg1_); + public final static native void delete_SBExecutionContext(long jarg1); + public final static native long SBExecutionContext_GetTarget(long jarg1, SBExecutionContext jarg1_); + public final static native long SBExecutionContext_GetProcess(long jarg1, SBExecutionContext jarg1_); + public final static native long SBExecutionContext_GetThread(long jarg1, SBExecutionContext jarg1_); + public final static native long SBExecutionContext_GetFrame(long jarg1, SBExecutionContext jarg1_); + public final static native long new_SBExpressionOptions__SWIG_0(); + public final static native long new_SBExpressionOptions__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native void delete_SBExpressionOptions(long jarg1); + public final static native boolean SBExpressionOptions_GetCoerceResultToId(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetCoerceResultToId__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetCoerceResultToId__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetUnwindOnError(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetUnwindOnError__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetUnwindOnError__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetIgnoreBreakpoints(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetIgnoreBreakpoints__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetIgnoreBreakpoints__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native int SBExpressionOptions_GetFetchDynamicValue(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetFetchDynamicValue__SWIG_0(long jarg1, SBExpressionOptions jarg1_, int jarg2); + public final static native void SBExpressionOptions_SetFetchDynamicValue__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native long SBExpressionOptions_GetTimeoutInMicroSeconds(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetTimeoutInMicroSeconds__SWIG_0(long jarg1, SBExpressionOptions jarg1_, long jarg2); + public final static native void SBExpressionOptions_SetTimeoutInMicroSeconds__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native long SBExpressionOptions_GetOneThreadTimeoutInMicroSeconds(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetOneThreadTimeoutInMicroSeconds__SWIG_0(long jarg1, SBExpressionOptions jarg1_, long jarg2); + public final static native void SBExpressionOptions_SetOneThreadTimeoutInMicroSeconds__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetTryAllThreads(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetTryAllThreads__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetTryAllThreads__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetStopOthers(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetStopOthers__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetStopOthers__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetTrapExceptions(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetTrapExceptions__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetTrapExceptions__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetLanguage(long jarg1, SBExpressionOptions jarg1_, int jarg2); + public final static native boolean SBExpressionOptions_GetGenerateDebugInfo(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetGenerateDebugInfo__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetGenerateDebugInfo__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetSuppressPersistentResult(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetSuppressPersistentResult__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetSuppressPersistentResult__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native String SBExpressionOptions_GetPrefix(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetPrefix(long jarg1, SBExpressionOptions jarg1_, String jarg2); + public final static native void SBExpressionOptions_SetAutoApplyFixIts__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetAutoApplyFixIts__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetAutoApplyFixIts(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetRetriesWithFixIts(long jarg1, SBExpressionOptions jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBExpressionOptions_GetRetriesWithFixIts(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetTopLevel(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetTopLevel__SWIG_0(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native void SBExpressionOptions_SetTopLevel__SWIG_1(long jarg1, SBExpressionOptions jarg1_); + public final static native boolean SBExpressionOptions_GetAllowJIT(long jarg1, SBExpressionOptions jarg1_); + public final static native void SBExpressionOptions_SetAllowJIT(long jarg1, SBExpressionOptions jarg1_, boolean jarg2); + public final static native long new_SBFile__SWIG_0(); + public final static native long new_SBFile__SWIG_1(int jarg1, String jarg2, boolean jarg3); + public final static native long new_SBFile__SWIG_2(long jarg1); + public final static native long SBFile_MakeBorrowed(long jarg1); + public final static native long SBFile_MakeForcingIOMethods(long jarg1); + public final static native long SBFile_MakeBorrowedForcingIOMethods(long jarg1); + public final static native void delete_SBFile(long jarg1); + public final static native long SBFile_Read(long jarg1, SBFile jarg1_, long jarg2, long jarg3, long jarg4); + public final static native long SBFile_Write(long jarg1, SBFile jarg1_, long jarg2, long jarg3, long jarg4); + public final static native void SBFile_Flush(long jarg1, SBFile jarg1_); + public final static native boolean SBFile_IsValid(long jarg1, SBFile jarg1_); + public final static native long SBFile_Close(long jarg1, SBFile jarg1_); + public final static native long SBFile_GetFile(long jarg1, SBFile jarg1_); + public final static native long new_SBFileSpec__SWIG_0(); + public final static native long new_SBFileSpec__SWIG_1(long jarg1, SBFileSpec jarg1_); + public final static native long new_SBFileSpec__SWIG_2(String jarg1); + public final static native long new_SBFileSpec__SWIG_3(String jarg1, boolean jarg2); + public final static native void delete_SBFileSpec(long jarg1); + public final static native boolean SBFileSpec_IsValid(long jarg1, SBFileSpec jarg1_); + public final static native boolean SBFileSpec_Exists(long jarg1, SBFileSpec jarg1_); + public final static native boolean SBFileSpec_ResolveExecutableLocation(long jarg1, SBFileSpec jarg1_); + public final static native String SBFileSpec_GetFilename(long jarg1, SBFileSpec jarg1_); + public final static native String SBFileSpec_GetDirectory(long jarg1, SBFileSpec jarg1_); + public final static native void SBFileSpec_SetFilename(long jarg1, SBFileSpec jarg1_, String jarg2); + public final static native void SBFileSpec_SetDirectory(long jarg1, SBFileSpec jarg1_, String jarg2); + public final static native long SBFileSpec_GetPath(long jarg1, SBFileSpec jarg1_, String jarg2, long jarg3); + public final static native int SBFileSpec_ResolvePath(String jarg1, String jarg2, long jarg3); + public final static native boolean SBFileSpec_GetDescription(long jarg1, SBFileSpec jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBFileSpec_AppendPathComponent(long jarg1, SBFileSpec jarg1_, String jarg2); + public final static native String SBFileSpec___str__(long jarg1, SBFileSpec jarg1_); + public final static native long new_SBFileSpecList__SWIG_0(); + public final static native long new_SBFileSpecList__SWIG_1(long jarg1, SBFileSpecList jarg1_); + public final static native void delete_SBFileSpecList(long jarg1); + public final static native long SBFileSpecList_GetSize(long jarg1, SBFileSpecList jarg1_); + public final static native boolean SBFileSpecList_GetDescription(long jarg1, SBFileSpecList jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBFileSpecList_Append(long jarg1, SBFileSpecList jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native boolean SBFileSpecList_AppendIfUnique(long jarg1, SBFileSpecList jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native void SBFileSpecList_Clear(long jarg1, SBFileSpecList jarg1_); + public final static native long SBFileSpecList_FindFileIndex(long jarg1, SBFileSpecList jarg1_, long jarg2, long jarg3, SBFileSpec jarg3_, boolean jarg4); + public final static native long SBFileSpecList_GetFileSpecAtIndex(long jarg1, SBFileSpecList jarg1_, long jarg2); + public final static native long new_SBFrame__SWIG_0(); + public final static native long new_SBFrame__SWIG_1(long jarg1, SBFrame jarg1_); + public final static native void delete_SBFrame(long jarg1); + public final static native boolean SBFrame_IsEqual(long jarg1, SBFrame jarg1_, long jarg2, SBFrame jarg2_); + public final static native boolean SBFrame_IsValid(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetFrameID(long jarg1, SBFrame jarg1_); + public final static native java.math.BigInteger SBFrame_GetCFA(long jarg1, SBFrame jarg1_); + public final static native java.math.BigInteger SBFrame_GetPC(long jarg1, SBFrame jarg1_); + public final static native boolean SBFrame_SetPC(long jarg1, SBFrame jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBFrame_GetSP(long jarg1, SBFrame jarg1_); + public final static native java.math.BigInteger SBFrame_GetFP(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetPCAddress(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetSymbolContext(long jarg1, SBFrame jarg1_, long jarg2); + public final static native long SBFrame_GetModule(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetCompileUnit(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetFunction(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetSymbol(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetBlock(long jarg1, SBFrame jarg1_); + public final static native String SBFrame_GetFunctionName__SWIG_0(long jarg1, SBFrame jarg1_); + public final static native String SBFrame_GetDisplayFunctionName(long jarg1, SBFrame jarg1_); + public final static native int SBFrame_GuessLanguage(long jarg1, SBFrame jarg1_); + public final static native boolean SBFrame_IsInlined__SWIG_0(long jarg1, SBFrame jarg1_); + public final static native boolean SBFrame_IsArtificial__SWIG_0(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_EvaluateExpression__SWIG_0(long jarg1, SBFrame jarg1_, String jarg2); + public final static native long SBFrame_EvaluateExpression__SWIG_1(long jarg1, SBFrame jarg1_, String jarg2, int jarg3); + public final static native long SBFrame_EvaluateExpression__SWIG_2(long jarg1, SBFrame jarg1_, String jarg2, int jarg3, boolean jarg4); + public final static native long SBFrame_EvaluateExpression__SWIG_3(long jarg1, SBFrame jarg1_, String jarg2, long jarg3, SBExpressionOptions jarg3_); + public final static native long SBFrame_GetFrameBlock(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetLineEntry(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetThread(long jarg1, SBFrame jarg1_); + public final static native String SBFrame_Disassemble(long jarg1, SBFrame jarg1_); + public final static native void SBFrame_Clear(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_GetVariables__SWIG_0(long jarg1, SBFrame jarg1_, boolean jarg2, boolean jarg3, boolean jarg4, boolean jarg5); + public final static native long SBFrame_GetVariables__SWIG_1(long jarg1, SBFrame jarg1_, boolean jarg2, boolean jarg3, boolean jarg4, boolean jarg5, int jarg6); + public final static native long SBFrame_GetVariables__SWIG_2(long jarg1, SBFrame jarg1_, long jarg2, SBVariablesOptions jarg2_); + public final static native long SBFrame_GetRegisters(long jarg1, SBFrame jarg1_); + public final static native long SBFrame_FindVariable__SWIG_0(long jarg1, SBFrame jarg1_, String jarg2); + public final static native long SBFrame_FindVariable__SWIG_1(long jarg1, SBFrame jarg1_, String jarg2, int jarg3); + public final static native long SBFrame_FindRegister(long jarg1, SBFrame jarg1_, String jarg2); + public final static native long SBFrame_GetValueForVariablePath__SWIG_0(long jarg1, SBFrame jarg1_, String jarg2); + public final static native long SBFrame_GetValueForVariablePath__SWIG_1(long jarg1, SBFrame jarg1_, String jarg2, int jarg3); + public final static native long SBFrame_FindValue__SWIG_0(long jarg1, SBFrame jarg1_, String jarg2, int jarg3); + public final static native long SBFrame_FindValue__SWIG_1(long jarg1, SBFrame jarg1_, String jarg2, int jarg3, int jarg4); + public final static native boolean SBFrame_GetDescription(long jarg1, SBFrame jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBFrame___str__(long jarg1, SBFrame jarg1_); + public final static native long new_SBFunction__SWIG_0(); + public final static native long new_SBFunction__SWIG_1(long jarg1, SBFunction jarg1_); + public final static native void delete_SBFunction(long jarg1); + public final static native boolean SBFunction_IsValid(long jarg1, SBFunction jarg1_); + public final static native String SBFunction_GetName(long jarg1, SBFunction jarg1_); + public final static native String SBFunction_GetDisplayName(long jarg1, SBFunction jarg1_); + public final static native String SBFunction_GetMangledName(long jarg1, SBFunction jarg1_); + public final static native long SBFunction_GetInstructions__SWIG_0(long jarg1, SBFunction jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBFunction_GetInstructions__SWIG_1(long jarg1, SBFunction jarg1_, long jarg2, SBTarget jarg2_, String jarg3); + public final static native long SBFunction_GetStartAddress(long jarg1, SBFunction jarg1_); + public final static native long SBFunction_GetEndAddress(long jarg1, SBFunction jarg1_); + public final static native String SBFunction_GetArgumentName(long jarg1, SBFunction jarg1_, long jarg2); + public final static native long SBFunction_GetPrologueByteSize(long jarg1, SBFunction jarg1_); + public final static native long SBFunction_GetType(long jarg1, SBFunction jarg1_); + public final static native long SBFunction_GetBlock(long jarg1, SBFunction jarg1_); + public final static native int SBFunction_GetLanguage(long jarg1, SBFunction jarg1_); + public final static native boolean SBFunction_GetIsOptimized(long jarg1, SBFunction jarg1_); + public final static native boolean SBFunction_GetDescription(long jarg1, SBFunction jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBFunction___str__(long jarg1, SBFunction jarg1_); + public final static native long SBHostOS_GetProgramFileSpec(); + public final static native long SBHostOS_GetLLDBPythonPath(); + public final static native long SBHostOS_GetLLDBPath(int jarg1); + public final static native long SBHostOS_GetUserHomeDirectory(); + public final static native void SBHostOS_ThreadCreated(String jarg1); + public final static native long SBHostOS_ThreadCreate(String jarg1, long jarg2, long jarg3, long jarg4, SBError jarg4_); + public final static native boolean SBHostOS_ThreadCancel(long jarg1, long jarg2, SBError jarg2_); + public final static native boolean SBHostOS_ThreadDetach(long jarg1, long jarg2, SBError jarg2_); + public final static native boolean SBHostOS_ThreadJoin(long jarg1, long jarg2, long jarg3, SBError jarg3_); + public final static native long new_SBHostOS(); + public final static native void delete_SBHostOS(long jarg1); + public final static native long new_SBInstruction__SWIG_0(); + public final static native long new_SBInstruction__SWIG_1(long jarg1, SBInstruction jarg1_); + public final static native void delete_SBInstruction(long jarg1); + public final static native boolean SBInstruction_IsValid(long jarg1, SBInstruction jarg1_); + public final static native long SBInstruction_GetAddress(long jarg1, SBInstruction jarg1_); + public final static native String SBInstruction_GetMnemonic(long jarg1, SBInstruction jarg1_, long jarg2, SBTarget jarg2_); + public final static native String SBInstruction_GetOperands(long jarg1, SBInstruction jarg1_, long jarg2, SBTarget jarg2_); + public final static native String SBInstruction_GetComment(long jarg1, SBInstruction jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBInstruction_GetData(long jarg1, SBInstruction jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBInstruction_GetByteSize(long jarg1, SBInstruction jarg1_); + public final static native boolean SBInstruction_DoesBranch(long jarg1, SBInstruction jarg1_); + public final static native boolean SBInstruction_HasDelaySlot(long jarg1, SBInstruction jarg1_); + public final static native boolean SBInstruction_CanSetBreakpoint(long jarg1, SBInstruction jarg1_); + public final static native void SBInstruction_Print__SWIG_0(long jarg1, SBInstruction jarg1_, long jarg2, SBFile jarg2_); + public final static native void SBInstruction_Print__SWIG_1(long jarg1, SBInstruction jarg1_, long jarg2); + public final static native boolean SBInstruction_GetDescription(long jarg1, SBInstruction jarg1_, long jarg2, SBStream jarg2_); + public final static native boolean SBInstruction_EmulateWithFrame(long jarg1, SBInstruction jarg1_, long jarg2, SBFrame jarg2_, long jarg3); + public final static native boolean SBInstruction_DumpEmulation(long jarg1, SBInstruction jarg1_, String jarg2); + public final static native boolean SBInstruction_TestEmulation(long jarg1, SBInstruction jarg1_, long jarg2, SBStream jarg2_, String jarg3); + public final static native String SBInstruction___str__(long jarg1, SBInstruction jarg1_); + public final static native long new_SBInstructionList__SWIG_0(); + public final static native long new_SBInstructionList__SWIG_1(long jarg1, SBInstructionList jarg1_); + public final static native void delete_SBInstructionList(long jarg1); + public final static native boolean SBInstructionList_IsValid(long jarg1, SBInstructionList jarg1_); + public final static native long SBInstructionList_GetSize(long jarg1, SBInstructionList jarg1_); + public final static native long SBInstructionList_GetInstructionAtIndex(long jarg1, SBInstructionList jarg1_, long jarg2); + public final static native long SBInstructionList_GetInstructionsCount(long jarg1, SBInstructionList jarg1_, long jarg2, SBAddress jarg2_, long jarg3, SBAddress jarg3_, boolean jarg4); + public final static native void SBInstructionList_Clear(long jarg1, SBInstructionList jarg1_); + public final static native void SBInstructionList_AppendInstruction(long jarg1, SBInstructionList jarg1_, long jarg2, SBInstruction jarg2_); + public final static native void SBInstructionList_Print__SWIG_0(long jarg1, SBInstructionList jarg1_, long jarg2, SBFile jarg2_); + public final static native void SBInstructionList_Print__SWIG_1(long jarg1, SBInstructionList jarg1_, long jarg2); + public final static native boolean SBInstructionList_GetDescription(long jarg1, SBInstructionList jarg1_, long jarg2, SBStream jarg2_); + public final static native boolean SBInstructionList_DumpEmulationForAllInstructions(long jarg1, SBInstructionList jarg1_, String jarg2); + public final static native String SBInstructionList___str__(long jarg1, SBInstructionList jarg1_); + public final static native int SBLanguageRuntime_GetLanguageTypeFromString(String jarg1); + public final static native String SBLanguageRuntime_GetNameForLanguageType(int jarg1); + public final static native long new_SBLanguageRuntime(); + public final static native void delete_SBLanguageRuntime(long jarg1); + public final static native long new_SBLaunchInfo(String[] jarg1); + public final static native java.math.BigInteger SBLaunchInfo_GetProcessID(long jarg1, SBLaunchInfo jarg1_); + public final static native long SBLaunchInfo_GetUserID(long jarg1, SBLaunchInfo jarg1_); + public final static native long SBLaunchInfo_GetGroupID(long jarg1, SBLaunchInfo jarg1_); + public final static native boolean SBLaunchInfo_UserIDIsValid(long jarg1, SBLaunchInfo jarg1_); + public final static native boolean SBLaunchInfo_GroupIDIsValid(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetUserID(long jarg1, SBLaunchInfo jarg1_, long jarg2); + public final static native void SBLaunchInfo_SetGroupID(long jarg1, SBLaunchInfo jarg1_, long jarg2); + public final static native long SBLaunchInfo_GetExecutableFile(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetExecutableFile(long jarg1, SBLaunchInfo jarg1_, long jarg2, SBFileSpec jarg2_, boolean jarg3); + public final static native long SBLaunchInfo_GetListener(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetListener(long jarg1, SBLaunchInfo jarg1_, long jarg2, SBListener jarg2_); + public final static native long SBLaunchInfo_GetNumArguments(long jarg1, SBLaunchInfo jarg1_); + public final static native String SBLaunchInfo_GetArgumentAtIndex(long jarg1, SBLaunchInfo jarg1_, long jarg2); + public final static native void SBLaunchInfo_SetArguments(long jarg1, SBLaunchInfo jarg1_, String[] jarg2, boolean jarg3); + public final static native long SBLaunchInfo_GetNumEnvironmentEntries(long jarg1, SBLaunchInfo jarg1_); + public final static native String SBLaunchInfo_GetEnvironmentEntryAtIndex(long jarg1, SBLaunchInfo jarg1_, long jarg2); + public final static native void SBLaunchInfo_SetEnvironmentEntries(long jarg1, SBLaunchInfo jarg1_, String[] jarg2, boolean jarg3); + public final static native void SBLaunchInfo_SetEnvironment(long jarg1, SBLaunchInfo jarg1_, long jarg2, SBEnvironment jarg2_, boolean jarg3); + public final static native long SBLaunchInfo_GetEnvironment(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_Clear(long jarg1, SBLaunchInfo jarg1_); + public final static native String SBLaunchInfo_GetWorkingDirectory(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetWorkingDirectory(long jarg1, SBLaunchInfo jarg1_, String jarg2); + public final static native long SBLaunchInfo_GetLaunchFlags(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetLaunchFlags(long jarg1, SBLaunchInfo jarg1_, long jarg2); + public final static native String SBLaunchInfo_GetProcessPluginName(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetProcessPluginName(long jarg1, SBLaunchInfo jarg1_, String jarg2); + public final static native String SBLaunchInfo_GetShell(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetShell(long jarg1, SBLaunchInfo jarg1_, String jarg2); + public final static native boolean SBLaunchInfo_GetShellExpandArguments(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetShellExpandArguments(long jarg1, SBLaunchInfo jarg1_, boolean jarg2); + public final static native long SBLaunchInfo_GetResumeCount(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetResumeCount(long jarg1, SBLaunchInfo jarg1_, long jarg2); + public final static native boolean SBLaunchInfo_AddCloseFileAction(long jarg1, SBLaunchInfo jarg1_, int jarg2); + public final static native boolean SBLaunchInfo_AddDuplicateFileAction(long jarg1, SBLaunchInfo jarg1_, int jarg2, int jarg3); + public final static native boolean SBLaunchInfo_AddOpenFileAction(long jarg1, SBLaunchInfo jarg1_, int jarg2, String jarg3, boolean jarg4, boolean jarg5); + public final static native boolean SBLaunchInfo_AddSuppressFileAction(long jarg1, SBLaunchInfo jarg1_, int jarg2, boolean jarg3, boolean jarg4); + public final static native void SBLaunchInfo_SetLaunchEventData(long jarg1, SBLaunchInfo jarg1_, String jarg2); + public final static native String SBLaunchInfo_GetLaunchEventData(long jarg1, SBLaunchInfo jarg1_); + public final static native boolean SBLaunchInfo_GetDetachOnError(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetDetachOnError(long jarg1, SBLaunchInfo jarg1_, boolean jarg2); + public final static native String SBLaunchInfo_GetScriptedProcessClassName(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetScriptedProcessClassName(long jarg1, SBLaunchInfo jarg1_, String jarg2); + public final static native long SBLaunchInfo_GetScriptedProcessDictionary(long jarg1, SBLaunchInfo jarg1_); + public final static native void SBLaunchInfo_SetScriptedProcessDictionary(long jarg1, SBLaunchInfo jarg1_, long jarg2, SBStructuredData jarg2_); + public final static native void delete_SBLaunchInfo(long jarg1); + public final static native long new_SBLineEntry__SWIG_0(); + public final static native long new_SBLineEntry__SWIG_1(long jarg1, SBLineEntry jarg1_); + public final static native void delete_SBLineEntry(long jarg1); + public final static native long SBLineEntry_GetStartAddress(long jarg1, SBLineEntry jarg1_); + public final static native long SBLineEntry_GetEndAddress(long jarg1, SBLineEntry jarg1_); + public final static native boolean SBLineEntry_IsValid(long jarg1, SBLineEntry jarg1_); + public final static native long SBLineEntry_GetFileSpec(long jarg1, SBLineEntry jarg1_); + public final static native long SBLineEntry_GetLine(long jarg1, SBLineEntry jarg1_); + public final static native long SBLineEntry_GetColumn(long jarg1, SBLineEntry jarg1_); + public final static native boolean SBLineEntry_GetDescription(long jarg1, SBLineEntry jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBLineEntry_SetFileSpec(long jarg1, SBLineEntry jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native void SBLineEntry_SetLine(long jarg1, SBLineEntry jarg1_, long jarg2); + public final static native void SBLineEntry_SetColumn(long jarg1, SBLineEntry jarg1_, long jarg2); + public final static native String SBLineEntry___str__(long jarg1, SBLineEntry jarg1_); + public final static native long new_SBListener__SWIG_0(); + public final static native long new_SBListener__SWIG_1(String jarg1); + public final static native long new_SBListener__SWIG_2(long jarg1, SBListener jarg1_); + public final static native void delete_SBListener(long jarg1); + public final static native void SBListener_AddEvent(long jarg1, SBListener jarg1_, long jarg2, SBEvent jarg2_); + public final static native void SBListener_Clear(long jarg1, SBListener jarg1_); + public final static native boolean SBListener_IsValid(long jarg1, SBListener jarg1_); + public final static native long SBListener_StartListeningForEventClass(long jarg1, SBListener jarg1_, long jarg2, SBDebugger jarg2_, String jarg3, long jarg4); + public final static native long SBListener_StopListeningForEventClass(long jarg1, SBListener jarg1_, long jarg2, SBDebugger jarg2_, String jarg3, long jarg4); + public final static native long SBListener_StartListeningForEvents(long jarg1, SBListener jarg1_, long jarg2, SBBroadcaster jarg2_, long jarg3); + public final static native boolean SBListener_StopListeningForEvents(long jarg1, SBListener jarg1_, long jarg2, SBBroadcaster jarg2_, long jarg3); + public final static native boolean SBListener_WaitForEvent(long jarg1, SBListener jarg1_, long jarg2, long jarg3, SBEvent jarg3_); + public final static native boolean SBListener_WaitForEventForBroadcaster(long jarg1, SBListener jarg1_, long jarg2, long jarg3, SBBroadcaster jarg3_, long jarg4, SBEvent jarg4_); + public final static native boolean SBListener_WaitForEventForBroadcasterWithType(long jarg1, SBListener jarg1_, long jarg2, long jarg3, SBBroadcaster jarg3_, long jarg4, long jarg5, SBEvent jarg5_); + public final static native boolean SBListener_PeekAtNextEvent(long jarg1, SBListener jarg1_, long jarg2, SBEvent jarg2_); + public final static native boolean SBListener_PeekAtNextEventForBroadcaster(long jarg1, SBListener jarg1_, long jarg2, SBBroadcaster jarg2_, long jarg3, SBEvent jarg3_); + public final static native boolean SBListener_PeekAtNextEventForBroadcasterWithType(long jarg1, SBListener jarg1_, long jarg2, SBBroadcaster jarg2_, long jarg3, long jarg4, SBEvent jarg4_); + public final static native boolean SBListener_GetNextEvent(long jarg1, SBListener jarg1_, long jarg2, SBEvent jarg2_); + public final static native boolean SBListener_GetNextEventForBroadcaster(long jarg1, SBListener jarg1_, long jarg2, SBBroadcaster jarg2_, long jarg3, SBEvent jarg3_); + public final static native boolean SBListener_GetNextEventForBroadcasterWithType(long jarg1, SBListener jarg1_, long jarg2, SBBroadcaster jarg2_, long jarg3, long jarg4, SBEvent jarg4_); + public final static native boolean SBListener_HandleBroadcastEvent(long jarg1, SBListener jarg1_, long jarg2, SBEvent jarg2_); + public final static native long new_SBMemoryRegionInfo__SWIG_0(); + public final static native long new_SBMemoryRegionInfo__SWIG_1(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native void delete_SBMemoryRegionInfo(long jarg1); + public final static native void SBMemoryRegionInfo_Clear(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native java.math.BigInteger SBMemoryRegionInfo_GetRegionBase(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native java.math.BigInteger SBMemoryRegionInfo_GetRegionEnd(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native boolean SBMemoryRegionInfo_IsReadable(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native boolean SBMemoryRegionInfo_IsWritable(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native boolean SBMemoryRegionInfo_IsExecutable(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native boolean SBMemoryRegionInfo_IsMapped(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native String SBMemoryRegionInfo_GetName(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native boolean SBMemoryRegionInfo_GetDescription(long jarg1, SBMemoryRegionInfo jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBMemoryRegionInfo___str__(long jarg1, SBMemoryRegionInfo jarg1_); + public final static native long new_SBMemoryRegionInfoList__SWIG_0(); + public final static native long new_SBMemoryRegionInfoList__SWIG_1(long jarg1, SBMemoryRegionInfoList jarg1_); + public final static native void delete_SBMemoryRegionInfoList(long jarg1); + public final static native long SBMemoryRegionInfoList_GetSize(long jarg1, SBMemoryRegionInfoList jarg1_); + public final static native boolean SBMemoryRegionInfoList_GetMemoryRegionAtIndex(long jarg1, SBMemoryRegionInfoList jarg1_, long jarg2, long jarg3, SBMemoryRegionInfo jarg3_); + public final static native void SBMemoryRegionInfoList_Append__SWIG_0(long jarg1, SBMemoryRegionInfoList jarg1_, long jarg2, SBMemoryRegionInfo jarg2_); + public final static native void SBMemoryRegionInfoList_Append__SWIG_1(long jarg1, SBMemoryRegionInfoList jarg1_, long jarg2, SBMemoryRegionInfoList jarg2_); + public final static native void SBMemoryRegionInfoList_Clear(long jarg1, SBMemoryRegionInfoList jarg1_); + public final static native long new_SBModule__SWIG_0(); + public final static native long new_SBModule__SWIG_1(long jarg1, SBModule jarg1_); + public final static native long new_SBModule__SWIG_2(long jarg1, SBModuleSpec jarg1_); + public final static native long new_SBModule__SWIG_3(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2); + public final static native void delete_SBModule(long jarg1); + public final static native boolean SBModule_IsValid(long jarg1, SBModule jarg1_); + public final static native void SBModule_Clear(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetFileSpec(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetPlatformFileSpec(long jarg1, SBModule jarg1_); + public final static native boolean SBModule_SetPlatformFileSpec(long jarg1, SBModule jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native long SBModule_GetRemoteInstallFileSpec(long jarg1, SBModule jarg1_); + public final static native boolean SBModule_SetRemoteInstallFileSpec(long jarg1, SBModule jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native String SBModule_GetUUIDString(long jarg1, SBModule jarg1_); + public final static native long SBModule_FindSection(long jarg1, SBModule jarg1_, String jarg2); + public final static native long SBModule_ResolveFileAddress(long jarg1, SBModule jarg1_, java.math.BigInteger jarg2); + public final static native long SBModule_ResolveSymbolContextForAddress(long jarg1, SBModule jarg1_, long jarg2, SBAddress jarg2_, long jarg3); + public final static native boolean SBModule_GetDescription(long jarg1, SBModule jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBModule_GetNumCompileUnits(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetCompileUnitAtIndex(long jarg1, SBModule jarg1_, long jarg2); + public final static native long SBModule_FindCompileUnits(long jarg1, SBModule jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native long SBModule_GetNumSymbols(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetSymbolAtIndex(long jarg1, SBModule jarg1_, long jarg2); + public final static native long SBModule_FindSymbol__SWIG_0(long jarg1, SBModule jarg1_, String jarg2, int jarg3); + public final static native long SBModule_FindSymbol__SWIG_1(long jarg1, SBModule jarg1_, String jarg2); + public final static native long SBModule_FindSymbols__SWIG_0(long jarg1, SBModule jarg1_, String jarg2, int jarg3); + public final static native long SBModule_FindSymbols__SWIG_1(long jarg1, SBModule jarg1_, String jarg2); + public final static native long SBModule_GetNumSections(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetSectionAtIndex(long jarg1, SBModule jarg1_, long jarg2); + public final static native long SBModule_FindFunctions__SWIG_0(long jarg1, SBModule jarg1_, String jarg2, long jarg3); + public final static native long SBModule_FindFunctions__SWIG_1(long jarg1, SBModule jarg1_, String jarg2); + public final static native long SBModule_FindFirstType(long jarg1, SBModule jarg1_, String jarg2); + public final static native long SBModule_FindTypes(long jarg1, SBModule jarg1_, String jarg2); + public final static native long SBModule_GetTypeByID(long jarg1, SBModule jarg1_, java.math.BigInteger jarg2); + public final static native long SBModule_GetBasicType(long jarg1, SBModule jarg1_, int jarg2); + public final static native long SBModule_GetTypes__SWIG_0(long jarg1, SBModule jarg1_, long jarg2); + public final static native long SBModule_GetTypes__SWIG_1(long jarg1, SBModule jarg1_); + public final static native long SBModule_FindGlobalVariables(long jarg1, SBModule jarg1_, long jarg2, SBTarget jarg2_, String jarg3, long jarg4); + public final static native long SBModule_FindFirstGlobalVariable(long jarg1, SBModule jarg1_, long jarg2, SBTarget jarg2_, String jarg3); + public final static native int SBModule_GetByteOrder(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetAddressByteSize(long jarg1, SBModule jarg1_); + public final static native String SBModule_GetTriple(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetVersion(long jarg1, SBModule jarg1_, long jarg2, long jarg3); + public final static native long SBModule_GetSymbolFileSpec(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetObjectFileHeaderAddress(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetObjectFileEntryPointAddress(long jarg1, SBModule jarg1_); + public final static native long SBModule_GetNumberAllocatedModules(); + public final static native void SBModule_GarbageCollectAllocatedModules(); + public final static native String SBModule___str__(long jarg1, SBModule jarg1_); + public final static native long new_SBModuleSpec__SWIG_0(); + public final static native long new_SBModuleSpec__SWIG_1(long jarg1, SBModuleSpec jarg1_); + public final static native void delete_SBModuleSpec(long jarg1); + public final static native boolean SBModuleSpec_IsValid(long jarg1, SBModuleSpec jarg1_); + public final static native void SBModuleSpec_Clear(long jarg1, SBModuleSpec jarg1_); + public final static native long SBModuleSpec_GetFileSpec(long jarg1, SBModuleSpec jarg1_); + public final static native void SBModuleSpec_SetFileSpec(long jarg1, SBModuleSpec jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native long SBModuleSpec_GetPlatformFileSpec(long jarg1, SBModuleSpec jarg1_); + public final static native void SBModuleSpec_SetPlatformFileSpec(long jarg1, SBModuleSpec jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native long SBModuleSpec_GetSymbolFileSpec(long jarg1, SBModuleSpec jarg1_); + public final static native void SBModuleSpec_SetSymbolFileSpec(long jarg1, SBModuleSpec jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native String SBModuleSpec_GetObjectName(long jarg1, SBModuleSpec jarg1_); + public final static native void SBModuleSpec_SetObjectName(long jarg1, SBModuleSpec jarg1_, String jarg2); + public final static native String SBModuleSpec_GetTriple(long jarg1, SBModuleSpec jarg1_); + public final static native void SBModuleSpec_SetTriple(long jarg1, SBModuleSpec jarg1_, String jarg2); + public final static native long SBModuleSpec_GetUUIDBytes(long jarg1, SBModuleSpec jarg1_); + public final static native long SBModuleSpec_GetUUIDLength(long jarg1, SBModuleSpec jarg1_); + public final static native boolean SBModuleSpec_SetUUIDBytes(long jarg1, SBModuleSpec jarg1_, long jarg2, long jarg3); + public final static native boolean SBModuleSpec_GetDescription(long jarg1, SBModuleSpec jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBModuleSpec___str__(long jarg1, SBModuleSpec jarg1_); + public final static native long new_SBModuleSpecList__SWIG_0(); + public final static native long new_SBModuleSpecList__SWIG_1(long jarg1, SBModuleSpecList jarg1_); + public final static native void delete_SBModuleSpecList(long jarg1); + public final static native long SBModuleSpecList_GetModuleSpecifications(String jarg1); + public final static native void SBModuleSpecList_Append__SWIG_0(long jarg1, SBModuleSpecList jarg1_, long jarg2, SBModuleSpec jarg2_); + public final static native void SBModuleSpecList_Append__SWIG_1(long jarg1, SBModuleSpecList jarg1_, long jarg2, SBModuleSpecList jarg2_); + public final static native long SBModuleSpecList_FindFirstMatchingSpec(long jarg1, SBModuleSpecList jarg1_, long jarg2, SBModuleSpec jarg2_); + public final static native long SBModuleSpecList_FindMatchingSpecs(long jarg1, SBModuleSpecList jarg1_, long jarg2, SBModuleSpec jarg2_); + public final static native long SBModuleSpecList_GetSize(long jarg1, SBModuleSpecList jarg1_); + public final static native long SBModuleSpecList_GetSpecAtIndex(long jarg1, SBModuleSpecList jarg1_, long jarg2); + public final static native boolean SBModuleSpecList_GetDescription(long jarg1, SBModuleSpecList jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBModuleSpecList___str__(long jarg1, SBModuleSpecList jarg1_); + public final static native long new_SBPlatformConnectOptions__SWIG_0(String jarg1); + public final static native long new_SBPlatformConnectOptions__SWIG_1(long jarg1, SBPlatformConnectOptions jarg1_); + public final static native void delete_SBPlatformConnectOptions(long jarg1); + public final static native String SBPlatformConnectOptions_GetURL(long jarg1, SBPlatformConnectOptions jarg1_); + public final static native void SBPlatformConnectOptions_SetURL(long jarg1, SBPlatformConnectOptions jarg1_, String jarg2); + public final static native boolean SBPlatformConnectOptions_GetRsyncEnabled(long jarg1, SBPlatformConnectOptions jarg1_); + public final static native void SBPlatformConnectOptions_EnableRsync(long jarg1, SBPlatformConnectOptions jarg1_, String jarg2, String jarg3, boolean jarg4); + public final static native void SBPlatformConnectOptions_DisableRsync(long jarg1, SBPlatformConnectOptions jarg1_); + public final static native String SBPlatformConnectOptions_GetLocalCacheDirectory(long jarg1, SBPlatformConnectOptions jarg1_); + public final static native void SBPlatformConnectOptions_SetLocalCacheDirectory(long jarg1, SBPlatformConnectOptions jarg1_, String jarg2); + public final static native long new_SBPlatformShellCommand__SWIG_0(String jarg1, String jarg2); + public final static native long new_SBPlatformShellCommand__SWIG_1(String jarg1); + public final static native long new_SBPlatformShellCommand__SWIG_2(long jarg1, SBPlatformShellCommand jarg1_); + public final static native void delete_SBPlatformShellCommand(long jarg1); + public final static native void SBPlatformShellCommand_Clear(long jarg1, SBPlatformShellCommand jarg1_); + public final static native String SBPlatformShellCommand_GetShell(long jarg1, SBPlatformShellCommand jarg1_); + public final static native void SBPlatformShellCommand_SetShell(long jarg1, SBPlatformShellCommand jarg1_, String jarg2); + public final static native String SBPlatformShellCommand_GetCommand(long jarg1, SBPlatformShellCommand jarg1_); + public final static native void SBPlatformShellCommand_SetCommand(long jarg1, SBPlatformShellCommand jarg1_, String jarg2); + public final static native String SBPlatformShellCommand_GetWorkingDirectory(long jarg1, SBPlatformShellCommand jarg1_); + public final static native void SBPlatformShellCommand_SetWorkingDirectory(long jarg1, SBPlatformShellCommand jarg1_, String jarg2); + public final static native long SBPlatformShellCommand_GetTimeoutSeconds(long jarg1, SBPlatformShellCommand jarg1_); + public final static native void SBPlatformShellCommand_SetTimeoutSeconds(long jarg1, SBPlatformShellCommand jarg1_, long jarg2); + public final static native int SBPlatformShellCommand_GetSignal(long jarg1, SBPlatformShellCommand jarg1_); + public final static native int SBPlatformShellCommand_GetStatus(long jarg1, SBPlatformShellCommand jarg1_); + public final static native String SBPlatformShellCommand_GetOutput(long jarg1, SBPlatformShellCommand jarg1_); + public final static native long new_SBPlatform__SWIG_0(); + public final static native long new_SBPlatform__SWIG_1(String jarg1); + public final static native void delete_SBPlatform(long jarg1); + public final static native long SBPlatform_GetHostPlatform(); + public final static native boolean SBPlatform_IsValid(long jarg1, SBPlatform jarg1_); + public final static native void SBPlatform_Clear(long jarg1, SBPlatform jarg1_); + public final static native String SBPlatform_GetWorkingDirectory(long jarg1, SBPlatform jarg1_); + public final static native boolean SBPlatform_SetWorkingDirectory(long jarg1, SBPlatform jarg1_, String jarg2); + public final static native String SBPlatform_GetName(long jarg1, SBPlatform jarg1_); + public final static native long SBPlatform_ConnectRemote(long jarg1, SBPlatform jarg1_, long jarg2, SBPlatformConnectOptions jarg2_); + public final static native void SBPlatform_DisconnectRemote(long jarg1, SBPlatform jarg1_); + public final static native boolean SBPlatform_IsConnected(long jarg1, SBPlatform jarg1_); + public final static native String SBPlatform_GetTriple(long jarg1, SBPlatform jarg1_); + public final static native String SBPlatform_GetHostname(long jarg1, SBPlatform jarg1_); + public final static native String SBPlatform_GetOSBuild(long jarg1, SBPlatform jarg1_); + public final static native String SBPlatform_GetOSDescription(long jarg1, SBPlatform jarg1_); + public final static native long SBPlatform_GetOSMajorVersion(long jarg1, SBPlatform jarg1_); + public final static native long SBPlatform_GetOSMinorVersion(long jarg1, SBPlatform jarg1_); + public final static native long SBPlatform_GetOSUpdateVersion(long jarg1, SBPlatform jarg1_); + public final static native long SBPlatform_Get(long jarg1, SBPlatform jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBFileSpec jarg3_); + public final static native long SBPlatform_Put(long jarg1, SBPlatform jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBFileSpec jarg3_); + public final static native long SBPlatform_Install(long jarg1, SBPlatform jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBFileSpec jarg3_); + public final static native long SBPlatform_Run(long jarg1, SBPlatform jarg1_, long jarg2, SBPlatformShellCommand jarg2_); + public final static native long SBPlatform_Launch(long jarg1, SBPlatform jarg1_, long jarg2, SBLaunchInfo jarg2_); + public final static native long SBPlatform_Kill(long jarg1, SBPlatform jarg1_, java.math.BigInteger jarg2); + public final static native long SBPlatform_MakeDirectory__SWIG_0(long jarg1, SBPlatform jarg1_, String jarg2, long jarg3); + public final static native long SBPlatform_MakeDirectory__SWIG_1(long jarg1, SBPlatform jarg1_, String jarg2); + public final static native long SBPlatform_GetFilePermissions(long jarg1, SBPlatform jarg1_, String jarg2); + public final static native long SBPlatform_SetFilePermissions(long jarg1, SBPlatform jarg1_, String jarg2, long jarg3); + public final static native long SBPlatform_GetUnixSignals(long jarg1, SBPlatform jarg1_); + public final static native long SBPlatform_GetEnvironment(long jarg1, SBPlatform jarg1_); + public final static native int SBProcess_eBroadcastBitStateChanged_get(); + public final static native int SBProcess_eBroadcastBitInterrupt_get(); + public final static native int SBProcess_eBroadcastBitSTDOUT_get(); + public final static native int SBProcess_eBroadcastBitSTDERR_get(); + public final static native int SBProcess_eBroadcastBitProfileData_get(); + public final static native int SBProcess_eBroadcastBitStructuredData_get(); + public final static native long new_SBProcess__SWIG_0(); + public final static native long new_SBProcess__SWIG_1(long jarg1, SBProcess jarg1_); + public final static native void delete_SBProcess(long jarg1); + public final static native String SBProcess_GetBroadcasterClassName(); + public final static native String SBProcess_GetPluginName(long jarg1, SBProcess jarg1_); + public final static native String SBProcess_GetShortPluginName(long jarg1, SBProcess jarg1_); + public final static native void SBProcess_Clear(long jarg1, SBProcess jarg1_); + public final static native boolean SBProcess_IsValid(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetTarget(long jarg1, SBProcess jarg1_); + public final static native int SBProcess_GetByteOrder(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_PutSTDIN(long jarg1, SBProcess jarg1_, String jarg2, long jarg3); + public final static native long SBProcess_GetSTDOUT(long jarg1, SBProcess jarg1_, String jarg2, long jarg3); + public final static native long SBProcess_GetSTDERR(long jarg1, SBProcess jarg1_, String jarg2, long jarg3); + public final static native long SBProcess_GetAsyncProfileData(long jarg1, SBProcess jarg1_, String jarg2, long jarg3); + public final static native void SBProcess_ReportEventState__SWIG_0(long jarg1, SBProcess jarg1_, long jarg2, SBEvent jarg2_, long jarg3, SBFile jarg3_); + public final static native void SBProcess_ReportEventState__SWIG_1(long jarg1, SBProcess jarg1_, long jarg2, SBEvent jarg2_, long jarg3); + public final static native void SBProcess_AppendEventStateReport(long jarg1, SBProcess jarg1_, long jarg2, SBEvent jarg2_, long jarg3, SBCommandReturnObject jarg3_); + public final static native boolean SBProcess_RemoteAttachToProcessWithID(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, SBError jarg3_); + public final static native boolean SBProcess_RemoteLaunch(long jarg1, SBProcess jarg1_, String[] jarg2, String[] jarg3, String jarg4, String jarg5, String jarg6, String jarg7, long jarg8, boolean jarg9, long jarg10, SBError jarg10_); + public final static native long SBProcess_GetNumThreads(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetThreadAtIndex(long jarg1, SBProcess jarg1_, long jarg2); + public final static native long SBProcess_GetThreadByID(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2); + public final static native long SBProcess_GetThreadByIndexID(long jarg1, SBProcess jarg1_, long jarg2); + public final static native long SBProcess_GetSelectedThread(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_CreateOSPluginThread(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, java.math.BigInteger jarg3); + public final static native boolean SBProcess_SetSelectedThread(long jarg1, SBProcess jarg1_, long jarg2, SBThread jarg2_); + public final static native boolean SBProcess_SetSelectedThreadByID(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2); + public final static native boolean SBProcess_SetSelectedThreadByIndexID(long jarg1, SBProcess jarg1_, long jarg2); + public final static native long SBProcess_GetNumQueues(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetQueueAtIndex(long jarg1, SBProcess jarg1_, long jarg2); + public final static native int SBProcess_GetState(long jarg1, SBProcess jarg1_); + public final static native int SBProcess_GetExitStatus(long jarg1, SBProcess jarg1_); + public final static native String SBProcess_GetExitDescription(long jarg1, SBProcess jarg1_); + public final static native java.math.BigInteger SBProcess_GetProcessID(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetUniqueID(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetAddressByteSize(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_Destroy(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_Continue(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_Stop(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_Kill(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_Detach(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_Signal(long jarg1, SBProcess jarg1_, int jarg2); + public final static native long SBProcess_GetUnixSignals(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetStopID__SWIG_0(long jarg1, SBProcess jarg1_, boolean jarg2); + public final static native long SBProcess_GetStopID__SWIG_1(long jarg1, SBProcess jarg1_); + public final static native void SBProcess_SendAsyncInterrupt(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_ReadMemory(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, long jarg4, long jarg5, SBError jarg5_); + public final static native long SBProcess_WriteMemory(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, long jarg4, long jarg5, SBError jarg5_); + public final static native long SBProcess_ReadCStringFromMemory(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, long jarg4, long jarg5, SBError jarg5_); + public final static native java.math.BigInteger SBProcess_ReadUnsignedFromMemory(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, long jarg4, SBError jarg4_); + public final static native java.math.BigInteger SBProcess_ReadPointerFromMemory(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, SBError jarg3_); + public final static native int SBProcess_GetStateFromEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBProcess_GetRestartedFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBProcess_GetNumRestartedReasonsFromEvent(long jarg1, SBEvent jarg1_); + public final static native String SBProcess_GetRestartedReasonAtIndexFromEvent(long jarg1, SBEvent jarg1_, long jarg2); + public final static native long SBProcess_GetProcessFromEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBProcess_GetInterruptedFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBProcess_GetStructuredDataFromEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBProcess_EventIsProcessEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBProcess_EventIsStructuredDataEvent(long jarg1, SBEvent jarg1_); + public final static native long SBProcess_GetBroadcaster(long jarg1, SBProcess jarg1_); + public final static native boolean SBProcess_GetDescription(long jarg1, SBProcess jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBProcess_GetExtendedCrashInformation(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetNumSupportedHardwareWatchpoints(long jarg1, SBProcess jarg1_, long jarg2, SBError jarg2_); + public final static native long SBProcess_LoadImage(long jarg1, SBProcess jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBError jarg3_); + public final static native long SBProcess_LoadImageUsingPaths(long jarg1, SBProcess jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBStringList jarg3_, long jarg4, SBFileSpec jarg4_, long jarg5, SBError jarg5_); + public final static native long SBProcess_UnloadImage(long jarg1, SBProcess jarg1_, long jarg2); + public final static native long SBProcess_SendEventData(long jarg1, SBProcess jarg1_, String jarg2); + public final static native long SBProcess_GetNumExtendedBacktraceTypes(long jarg1, SBProcess jarg1_); + public final static native String SBProcess_GetExtendedBacktraceTypeAtIndex(long jarg1, SBProcess jarg1_, long jarg2); + public final static native long SBProcess_GetHistoryThreads(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2); + public final static native boolean SBProcess_IsInstrumentationRuntimePresent(long jarg1, SBProcess jarg1_, int jarg2); + public final static native long SBProcess_SaveCore(long jarg1, SBProcess jarg1_, String jarg2); + public final static native long SBProcess_StartTrace(long jarg1, SBProcess jarg1_, long jarg2, SBTraceOptions jarg2_, long jarg3, SBError jarg3_); + public final static native long SBProcess_GetMemoryRegionInfo(long jarg1, SBProcess jarg1_, java.math.BigInteger jarg2, long jarg3, SBMemoryRegionInfo jarg3_); + public final static native long SBProcess_GetMemoryRegions(long jarg1, SBProcess jarg1_); + public final static native long SBProcess_GetProcessInfo(long jarg1, SBProcess jarg1_); + public final static native String SBProcess___str__(long jarg1, SBProcess jarg1_); + public final static native long new_SBProcessInfo__SWIG_0(); + public final static native long new_SBProcessInfo__SWIG_1(long jarg1, SBProcessInfo jarg1_); + public final static native void delete_SBProcessInfo(long jarg1); + public final static native boolean SBProcessInfo_IsValid(long jarg1, SBProcessInfo jarg1_); + public final static native String SBProcessInfo_GetName(long jarg1, SBProcessInfo jarg1_); + public final static native long SBProcessInfo_GetExecutableFile(long jarg1, SBProcessInfo jarg1_); + public final static native java.math.BigInteger SBProcessInfo_GetProcessID(long jarg1, SBProcessInfo jarg1_); + public final static native long SBProcessInfo_GetUserID(long jarg1, SBProcessInfo jarg1_); + public final static native long SBProcessInfo_GetGroupID(long jarg1, SBProcessInfo jarg1_); + public final static native boolean SBProcessInfo_UserIDIsValid(long jarg1, SBProcessInfo jarg1_); + public final static native boolean SBProcessInfo_GroupIDIsValid(long jarg1, SBProcessInfo jarg1_); + public final static native long SBProcessInfo_GetEffectiveUserID(long jarg1, SBProcessInfo jarg1_); + public final static native long SBProcessInfo_GetEffectiveGroupID(long jarg1, SBProcessInfo jarg1_); + public final static native boolean SBProcessInfo_EffectiveUserIDIsValid(long jarg1, SBProcessInfo jarg1_); + public final static native boolean SBProcessInfo_EffectiveGroupIDIsValid(long jarg1, SBProcessInfo jarg1_); + public final static native java.math.BigInteger SBProcessInfo_GetParentProcessID(long jarg1, SBProcessInfo jarg1_); + public final static native long new_SBQueue__SWIG_0(); + public final static native long new_SBQueue__SWIG_1(long jarg1); + public final static native void delete_SBQueue(long jarg1); + public final static native boolean SBQueue_IsValid(long jarg1, SBQueue jarg1_); + public final static native void SBQueue_Clear(long jarg1, SBQueue jarg1_); + public final static native long SBQueue_GetProcess(long jarg1, SBQueue jarg1_); + public final static native java.math.BigInteger SBQueue_GetQueueID(long jarg1, SBQueue jarg1_); + public final static native String SBQueue_GetName(long jarg1, SBQueue jarg1_); + public final static native int SBQueue_GetKind(long jarg1, SBQueue jarg1_); + public final static native long SBQueue_GetIndexID(long jarg1, SBQueue jarg1_); + public final static native long SBQueue_GetNumThreads(long jarg1, SBQueue jarg1_); + public final static native long SBQueue_GetThreadAtIndex(long jarg1, SBQueue jarg1_, long jarg2); + public final static native long SBQueue_GetNumPendingItems(long jarg1, SBQueue jarg1_); + public final static native long SBQueue_GetPendingItemAtIndex(long jarg1, SBQueue jarg1_, long jarg2); + public final static native long SBQueue_GetNumRunningItems(long jarg1, SBQueue jarg1_); + public final static native long new_SBQueueItem__SWIG_0(); + public final static native long new_SBQueueItem__SWIG_1(long jarg1); + public final static native void delete_SBQueueItem(long jarg1); + public final static native boolean SBQueueItem_IsValid(long jarg1, SBQueueItem jarg1_); + public final static native void SBQueueItem_Clear(long jarg1, SBQueueItem jarg1_); + public final static native int SBQueueItem_GetKind(long jarg1, SBQueueItem jarg1_); + public final static native void SBQueueItem_SetKind(long jarg1, SBQueueItem jarg1_, int jarg2); + public final static native long SBQueueItem_GetAddress(long jarg1, SBQueueItem jarg1_); + public final static native void SBQueueItem_SetAddress(long jarg1, SBQueueItem jarg1_, long jarg2, SBAddress jarg2_); + public final static native void SBQueueItem_SetQueueItem(long jarg1, SBQueueItem jarg1_, long jarg2); + public final static native long SBQueueItem_GetExtendedBacktraceThread(long jarg1, SBQueueItem jarg1_, String jarg2); + public final static native String SBReproducer_Capture(String jarg1); + public final static native String SBReproducer_PassiveReplay(String jarg1); + public final static native boolean SBReproducer_SetAutoGenerate(boolean jarg1); + public final static native void SBReproducer_SetWorkingDirectory(String jarg1); + public final static native long new_SBReproducer(); + public final static native void delete_SBReproducer(long jarg1); + public final static native long new_SBSection__SWIG_0(); + public final static native long new_SBSection__SWIG_1(long jarg1, SBSection jarg1_); + public final static native void delete_SBSection(long jarg1); + public final static native boolean SBSection_IsValid(long jarg1, SBSection jarg1_); + public final static native String SBSection_GetName(long jarg1, SBSection jarg1_); + public final static native long SBSection_GetParent(long jarg1, SBSection jarg1_); + public final static native long SBSection_FindSubSection(long jarg1, SBSection jarg1_, String jarg2); + public final static native long SBSection_GetNumSubSections(long jarg1, SBSection jarg1_); + public final static native long SBSection_GetSubSectionAtIndex(long jarg1, SBSection jarg1_, long jarg2); + public final static native java.math.BigInteger SBSection_GetFileAddress(long jarg1, SBSection jarg1_); + public final static native java.math.BigInteger SBSection_GetLoadAddress(long jarg1, SBSection jarg1_, long jarg2, SBTarget jarg2_); + public final static native java.math.BigInteger SBSection_GetByteSize(long jarg1, SBSection jarg1_); + public final static native java.math.BigInteger SBSection_GetFileOffset(long jarg1, SBSection jarg1_); + public final static native java.math.BigInteger SBSection_GetFileByteSize(long jarg1, SBSection jarg1_); + public final static native long SBSection_GetSectionData__SWIG_0(long jarg1, SBSection jarg1_); + public final static native long SBSection_GetSectionData__SWIG_1(long jarg1, SBSection jarg1_, java.math.BigInteger jarg2, java.math.BigInteger jarg3); + public final static native int SBSection_GetSectionType(long jarg1, SBSection jarg1_); + public final static native long SBSection_GetPermissions(long jarg1, SBSection jarg1_); + public final static native long SBSection_GetTargetByteSize(long jarg1, SBSection jarg1_); + public final static native boolean SBSection_GetDescription(long jarg1, SBSection jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBSection___str__(long jarg1, SBSection jarg1_); + public final static native long new_SBSourceManager(long jarg1, SBSourceManager jarg1_); + public final static native void delete_SBSourceManager(long jarg1); + public final static native long SBSourceManager_DisplaySourceLinesWithLineNumbers(long jarg1, SBSourceManager jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, long jarg4, long jarg5, String jarg6, long jarg7, SBStream jarg7_); + public final static native long SBSourceManager_DisplaySourceLinesWithLineNumbersAndColumn(long jarg1, SBSourceManager jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, long jarg4, long jarg5, long jarg6, String jarg7, long jarg8, SBStream jarg8_); + public final static native long new_SBStream(); + public final static native void delete_SBStream(long jarg1); + public final static native boolean SBStream_IsValid(long jarg1, SBStream jarg1_); + public final static native String SBStream_GetData(long jarg1, SBStream jarg1_); + public final static native long SBStream_GetSize(long jarg1, SBStream jarg1_); + public final static native void SBStream_Print(long jarg1, SBStream jarg1_, String jarg2); + public final static native void SBStream_RedirectToFile__SWIG_0(long jarg1, SBStream jarg1_, String jarg2, boolean jarg3); + public final static native void SBStream_RedirectToFile__SWIG_1(long jarg1, SBStream jarg1_, long jarg2, SBFile jarg2_); + public final static native void SBStream_RedirectToFile__SWIG_2(long jarg1, SBStream jarg1_, long jarg2); + public final static native void SBStream_RedirectToFileHandle(long jarg1, SBStream jarg1_, long jarg2, boolean jarg3); + public final static native void SBStream_RedirectToFileDescriptor(long jarg1, SBStream jarg1_, int jarg2, boolean jarg3); + public final static native void SBStream_Clear(long jarg1, SBStream jarg1_); + public final static native long new_SBStringList__SWIG_0(); + public final static native long new_SBStringList__SWIG_1(long jarg1, SBStringList jarg1_); + public final static native void delete_SBStringList(long jarg1); + public final static native boolean SBStringList_IsValid(long jarg1, SBStringList jarg1_); + public final static native void SBStringList_AppendString(long jarg1, SBStringList jarg1_, String jarg2); + public final static native void SBStringList_AppendList__SWIG_0(long jarg1, SBStringList jarg1_, String[] jarg2, int jarg3); + public final static native void SBStringList_AppendList__SWIG_1(long jarg1, SBStringList jarg1_, long jarg2, SBStringList jarg2_); + public final static native long SBStringList_GetSize(long jarg1, SBStringList jarg1_); + public final static native String SBStringList_GetStringAtIndex(long jarg1, SBStringList jarg1_, long jarg2); + public final static native void SBStringList_Clear(long jarg1, SBStringList jarg1_); + public final static native long new_SBStructuredData__SWIG_0(); + public final static native long new_SBStructuredData__SWIG_1(long jarg1, SBStructuredData jarg1_); + public final static native long new_SBStructuredData__SWIG_2(long jarg1); + public final static native void delete_SBStructuredData(long jarg1); + public final static native boolean SBStructuredData_IsValid(long jarg1, SBStructuredData jarg1_); + public final static native void SBStructuredData_Clear(long jarg1, SBStructuredData jarg1_); + public final static native int SBStructuredData_GetType(long jarg1, SBStructuredData jarg1_); + public final static native long SBStructuredData_GetSize(long jarg1, SBStructuredData jarg1_); + public final static native boolean SBStructuredData_GetKeys(long jarg1, SBStructuredData jarg1_, long jarg2, SBStringList jarg2_); + public final static native long SBStructuredData_GetValueForKey(long jarg1, SBStructuredData jarg1_, String jarg2); + public final static native long SBStructuredData_GetItemAtIndex(long jarg1, SBStructuredData jarg1_, long jarg2); + public final static native java.math.BigInteger SBStructuredData_GetIntegerValue__SWIG_0(long jarg1, SBStructuredData jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBStructuredData_GetIntegerValue__SWIG_1(long jarg1, SBStructuredData jarg1_); + public final static native double SBStructuredData_GetFloatValue__SWIG_0(long jarg1, SBStructuredData jarg1_, double jarg2); + public final static native double SBStructuredData_GetFloatValue__SWIG_1(long jarg1, SBStructuredData jarg1_); + public final static native boolean SBStructuredData_GetBooleanValue__SWIG_0(long jarg1, SBStructuredData jarg1_, boolean jarg2); + public final static native boolean SBStructuredData_GetBooleanValue__SWIG_1(long jarg1, SBStructuredData jarg1_); + public final static native long SBStructuredData_GetStringValue(long jarg1, SBStructuredData jarg1_, String jarg2, long jarg3); + public final static native long SBStructuredData_GetAsJSON(long jarg1, SBStructuredData jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBStructuredData_GetDescription(long jarg1, SBStructuredData jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBStructuredData_SetFromJSON(long jarg1, SBStructuredData jarg1_, long jarg2, SBStream jarg2_); + public final static native long new_SBSymbol__SWIG_0(); + public final static native void delete_SBSymbol(long jarg1); + public final static native long new_SBSymbol__SWIG_1(long jarg1, SBSymbol jarg1_); + public final static native boolean SBSymbol_IsValid(long jarg1, SBSymbol jarg1_); + public final static native String SBSymbol_GetName(long jarg1, SBSymbol jarg1_); + public final static native String SBSymbol_GetDisplayName(long jarg1, SBSymbol jarg1_); + public final static native String SBSymbol_GetMangledName(long jarg1, SBSymbol jarg1_); + public final static native long SBSymbol_GetInstructions__SWIG_0(long jarg1, SBSymbol jarg1_, long jarg2, SBTarget jarg2_); + public final static native long SBSymbol_GetInstructions__SWIG_1(long jarg1, SBSymbol jarg1_, long jarg2, SBTarget jarg2_, String jarg3); + public final static native long SBSymbol_GetStartAddress(long jarg1, SBSymbol jarg1_); + public final static native long SBSymbol_GetEndAddress(long jarg1, SBSymbol jarg1_); + public final static native long SBSymbol_GetPrologueByteSize(long jarg1, SBSymbol jarg1_); + public final static native int SBSymbol_GetType(long jarg1, SBSymbol jarg1_); + public final static native boolean SBSymbol_GetDescription(long jarg1, SBSymbol jarg1_, long jarg2, SBStream jarg2_); + public final static native boolean SBSymbol_IsExternal(long jarg1, SBSymbol jarg1_); + public final static native boolean SBSymbol_IsSynthetic(long jarg1, SBSymbol jarg1_); + public final static native String SBSymbol___str__(long jarg1, SBSymbol jarg1_); + public final static native long new_SBSymbolContext__SWIG_0(); + public final static native long new_SBSymbolContext__SWIG_1(long jarg1, SBSymbolContext jarg1_); + public final static native void delete_SBSymbolContext(long jarg1); + public final static native boolean SBSymbolContext_IsValid(long jarg1, SBSymbolContext jarg1_); + public final static native long SBSymbolContext_GetModule(long jarg1, SBSymbolContext jarg1_); + public final static native long SBSymbolContext_GetCompileUnit(long jarg1, SBSymbolContext jarg1_); + public final static native long SBSymbolContext_GetFunction(long jarg1, SBSymbolContext jarg1_); + public final static native long SBSymbolContext_GetBlock(long jarg1, SBSymbolContext jarg1_); + public final static native long SBSymbolContext_GetLineEntry(long jarg1, SBSymbolContext jarg1_); + public final static native long SBSymbolContext_GetSymbol(long jarg1, SBSymbolContext jarg1_); + public final static native void SBSymbolContext_SetModule(long jarg1, SBSymbolContext jarg1_, long jarg2, SBModule jarg2_); + public final static native void SBSymbolContext_SetCompileUnit(long jarg1, SBSymbolContext jarg1_, long jarg2, SBCompileUnit jarg2_); + public final static native void SBSymbolContext_SetFunction(long jarg1, SBSymbolContext jarg1_, long jarg2, SBFunction jarg2_); + public final static native void SBSymbolContext_SetBlock(long jarg1, SBSymbolContext jarg1_, long jarg2, SBBlock jarg2_); + public final static native void SBSymbolContext_SetLineEntry(long jarg1, SBSymbolContext jarg1_, long jarg2, SBLineEntry jarg2_); + public final static native void SBSymbolContext_SetSymbol(long jarg1, SBSymbolContext jarg1_, long jarg2, SBSymbol jarg2_); + public final static native long SBSymbolContext_GetParentOfInlinedScope(long jarg1, SBSymbolContext jarg1_, long jarg2, SBAddress jarg2_, long jarg3, SBAddress jarg3_); + public final static native boolean SBSymbolContext_GetDescription(long jarg1, SBSymbolContext jarg1_, long jarg2, SBStream jarg2_); + public final static native String SBSymbolContext___str__(long jarg1, SBSymbolContext jarg1_); + public final static native long new_SBSymbolContextList__SWIG_0(); + public final static native long new_SBSymbolContextList__SWIG_1(long jarg1, SBSymbolContextList jarg1_); + public final static native void delete_SBSymbolContextList(long jarg1); + public final static native boolean SBSymbolContextList_IsValid(long jarg1, SBSymbolContextList jarg1_); + public final static native long SBSymbolContextList_GetSize(long jarg1, SBSymbolContextList jarg1_); + public final static native long SBSymbolContextList_GetContextAtIndex(long jarg1, SBSymbolContextList jarg1_, long jarg2); + public final static native void SBSymbolContextList_Append__SWIG_0(long jarg1, SBSymbolContextList jarg1_, long jarg2, SBSymbolContext jarg2_); + public final static native void SBSymbolContextList_Append__SWIG_1(long jarg1, SBSymbolContextList jarg1_, long jarg2, SBSymbolContextList jarg2_); + public final static native boolean SBSymbolContextList_GetDescription(long jarg1, SBSymbolContextList jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBSymbolContextList_Clear(long jarg1, SBSymbolContextList jarg1_); + public final static native String SBSymbolContextList___str__(long jarg1, SBSymbolContextList jarg1_); + public final static native int SBTarget_eBroadcastBitBreakpointChanged_get(); + public final static native int SBTarget_eBroadcastBitModulesLoaded_get(); + public final static native int SBTarget_eBroadcastBitModulesUnloaded_get(); + public final static native int SBTarget_eBroadcastBitWatchpointChanged_get(); + public final static native int SBTarget_eBroadcastBitSymbolsLoaded_get(); + public final static native long new_SBTarget__SWIG_0(); + public final static native long new_SBTarget__SWIG_1(long jarg1, SBTarget jarg1_); + public final static native void delete_SBTarget(long jarg1); + public final static native String SBTarget_GetBroadcasterClassName(); + public final static native boolean SBTarget_IsValid(long jarg1, SBTarget jarg1_); + public final static native boolean SBTarget_EventIsTargetEvent(long jarg1, SBEvent jarg1_); + public final static native long SBTarget_GetTargetFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBTarget_GetNumModulesFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBTarget_GetModuleAtIndexFromEvent(long jarg1, long jarg2, SBEvent jarg2_); + public final static native long SBTarget_GetProcess(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetPlatform(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_Install(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_Launch__SWIG_0(long jarg1, SBTarget jarg1_, long jarg2, SBListener jarg2_, String[] jarg3, String[] jarg4, String jarg5, String jarg6, String jarg7, String jarg8, long jarg9, boolean jarg10, long jarg11, SBError jarg11_); + public final static native long SBTarget_LaunchSimple(long jarg1, SBTarget jarg1_, String[] jarg2, String[] jarg3, String jarg4); + public final static native long SBTarget_Launch__SWIG_1(long jarg1, SBTarget jarg1_, long jarg2, SBLaunchInfo jarg2_, long jarg3, SBError jarg3_); + public final static native long SBTarget_LoadCore__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_LoadCore__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBError jarg3_); + public final static native long SBTarget_Attach(long jarg1, SBTarget jarg1_, long jarg2, SBAttachInfo jarg2_, long jarg3, SBError jarg3_); + public final static native long SBTarget_AttachToProcessWithID(long jarg1, SBTarget jarg1_, long jarg2, SBListener jarg2_, java.math.BigInteger jarg3, long jarg4, SBError jarg4_); + public final static native long SBTarget_AttachToProcessWithName(long jarg1, SBTarget jarg1_, long jarg2, SBListener jarg2_, String jarg3, boolean jarg4, long jarg5, SBError jarg5_); + public final static native long SBTarget_ConnectRemote(long jarg1, SBTarget jarg1_, long jarg2, SBListener jarg2_, String jarg3, String jarg4, long jarg5, SBError jarg5_); + public final static native long SBTarget_GetExecutable(long jarg1, SBTarget jarg1_); + public final static native void SBTarget_AppendImageSearchPath(long jarg1, SBTarget jarg1_, String jarg2, String jarg3, long jarg4, SBError jarg4_); + public final static native boolean SBTarget_AddModule__SWIG_0(long jarg1, SBTarget jarg1_, long jarg2, SBModule jarg2_); + public final static native long SBTarget_AddModule__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2, String jarg3, String jarg4); + public final static native long SBTarget_AddModule__SWIG_2(long jarg1, SBTarget jarg1_, String jarg2, String jarg3, String jarg4, String jarg5); + public final static native long SBTarget_AddModule__SWIG_3(long jarg1, SBTarget jarg1_, long jarg2, SBModuleSpec jarg2_); + public final static native long SBTarget_GetNumModules(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetModuleAtIndex(long jarg1, SBTarget jarg1_, long jarg2); + public final static native boolean SBTarget_RemoveModule(long jarg1, SBTarget jarg1_, long jarg2, SBModule jarg2_); + public final static native long SBTarget_GetDebugger(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_FindModule(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native long SBTarget_FindCompileUnits(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native int SBTarget_GetByteOrder(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetAddressByteSize(long jarg1, SBTarget jarg1_); + public final static native String SBTarget_GetTriple(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetDataByteSize(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetCodeByteSize(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_SetSectionLoadAddress(long jarg1, SBTarget jarg1_, long jarg2, SBSection jarg2_, java.math.BigInteger jarg3); + public final static native long SBTarget_ClearSectionLoadAddress(long jarg1, SBTarget jarg1_, long jarg2, SBSection jarg2_); + public final static native long SBTarget_SetModuleLoadAddress(long jarg1, SBTarget jarg1_, long jarg2, SBModule jarg2_, long jarg3); + public final static native long SBTarget_ClearModuleLoadAddress(long jarg1, SBTarget jarg1_, long jarg2, SBModule jarg2_); + public final static native long SBTarget_FindFunctions__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, long jarg3); + public final static native long SBTarget_FindFunctions__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_FindFirstType(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_FindTypes(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_GetBasicType(long jarg1, SBTarget jarg1_, int jarg2); + public final static native long SBTarget_GetSourceManager(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_FindGlobalVariables__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, long jarg3); + public final static native long SBTarget_FindFirstGlobalVariable(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_FindGlobalVariables__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, int jarg4); + public final static native long SBTarget_FindGlobalFunctions(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, int jarg4); + public final static native void SBTarget_Clear(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_ResolveFileAddress(long jarg1, SBTarget jarg1_, java.math.BigInteger jarg2); + public final static native long SBTarget_ResolveLoadAddress(long jarg1, SBTarget jarg1_, java.math.BigInteger jarg2); + public final static native long SBTarget_ResolvePastLoadAddress(long jarg1, SBTarget jarg1_, long jarg2, java.math.BigInteger jarg3); + public final static native long SBTarget_ResolveSymbolContextForAddress(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_, long jarg3); + public final static native long SBTarget_ReadMemory(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_, long jarg3, long jarg4, long jarg5, SBError jarg5_); + public final static native long SBTarget_BreakpointCreateByLocation__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, long jarg3); + public final static native long SBTarget_BreakpointCreateByLocation__SWIG_1(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3); + public final static native long SBTarget_BreakpointCreateByLocation__SWIG_2(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, java.math.BigInteger jarg4); + public final static native long SBTarget_BreakpointCreateByLocation__SWIG_3(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, java.math.BigInteger jarg4, long jarg5, SBFileSpecList jarg5_); + public final static native long SBTarget_BreakpointCreateByLocation__SWIG_4(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, long jarg4, java.math.BigInteger jarg5, long jarg6, SBFileSpecList jarg6_); + public final static native long SBTarget_BreakpointCreateByLocation__SWIG_5(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, long jarg4, java.math.BigInteger jarg5, long jarg6, SBFileSpecList jarg6_, boolean jarg7); + public final static native long SBTarget_BreakpointCreateByName__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, String jarg3); + public final static native long SBTarget_BreakpointCreateByName__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_BreakpointCreateByName__SWIG_2(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, long jarg4, SBFileSpecList jarg4_, long jarg5, SBFileSpecList jarg5_); + public final static native long SBTarget_BreakpointCreateByName__SWIG_3(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, int jarg4, long jarg5, SBFileSpecList jarg5_, long jarg6, SBFileSpecList jarg6_); + public final static native long SBTarget_BreakpointCreateByNames__SWIG_0(long jarg1, SBTarget jarg1_, String[] jarg2, long jarg3, long jarg4, long jarg5, SBFileSpecList jarg5_, long jarg6, SBFileSpecList jarg6_); + public final static native long SBTarget_BreakpointCreateByNames__SWIG_1(long jarg1, SBTarget jarg1_, String[] jarg2, long jarg3, long jarg4, int jarg5, long jarg6, SBFileSpecList jarg6_, long jarg7, SBFileSpecList jarg7_); + public final static native long SBTarget_BreakpointCreateByNames__SWIG_2(long jarg1, SBTarget jarg1_, String[] jarg2, long jarg3, long jarg4, int jarg5, java.math.BigInteger jarg6, long jarg7, SBFileSpecList jarg7_, long jarg8, SBFileSpecList jarg8_); + public final static native long SBTarget_BreakpointCreateByRegex__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, String jarg3); + public final static native long SBTarget_BreakpointCreateByRegex__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_BreakpointCreateByRegex__SWIG_2(long jarg1, SBTarget jarg1_, String jarg2, int jarg3, long jarg4, SBFileSpecList jarg4_, long jarg5, SBFileSpecList jarg5_); + public final static native long SBTarget_BreakpointCreateBySourceRegex__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBFileSpec jarg3_, String jarg4); + public final static native long SBTarget_BreakpointCreateBySourceRegex__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBFileSpec jarg3_); + public final static native long SBTarget_BreakpointCreateBySourceRegex__SWIG_2(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBFileSpecList jarg3_, long jarg4, SBFileSpecList jarg4_); + public final static native long SBTarget_BreakpointCreateBySourceRegex__SWIG_3(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBFileSpecList jarg3_, long jarg4, SBFileSpecList jarg4_, long jarg5, SBStringList jarg5_); + public final static native long SBTarget_BreakpointCreateForException(long jarg1, SBTarget jarg1_, int jarg2, boolean jarg3, boolean jarg4); + public final static native long SBTarget_BreakpointCreateByAddress(long jarg1, SBTarget jarg1_, java.math.BigInteger jarg2); + public final static native long SBTarget_GetEnvironment(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_BreakpointCreateBySBAddress(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_); + public final static native long SBTarget_BreakpointCreateFromScript__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_, long jarg4, SBFileSpecList jarg4_, long jarg5, SBFileSpecList jarg5_, boolean jarg6); + public final static native long SBTarget_BreakpointCreateFromScript__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_, long jarg4, SBFileSpecList jarg4_, long jarg5, SBFileSpecList jarg5_); + public final static native long SBTarget_GetNumBreakpoints(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetBreakpointAtIndex(long jarg1, SBTarget jarg1_, long jarg2); + public final static native boolean SBTarget_BreakpointDelete(long jarg1, SBTarget jarg1_, int jarg2); + public final static native long SBTarget_FindBreakpointByID(long jarg1, SBTarget jarg1_, int jarg2); + public final static native boolean SBTarget_FindBreakpointsByName(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBBreakpointList jarg3_); + public final static native void SBTarget_DeleteBreakpointName(long jarg1, SBTarget jarg1_, String jarg2); + public final static native void SBTarget_GetBreakpointNames(long jarg1, SBTarget jarg1_, long jarg2, SBStringList jarg2_); + public final static native boolean SBTarget_EnableAllBreakpoints(long jarg1, SBTarget jarg1_); + public final static native boolean SBTarget_DisableAllBreakpoints(long jarg1, SBTarget jarg1_); + public final static native boolean SBTarget_DeleteAllBreakpoints(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_BreakpointsCreateFromFile__SWIG_0(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBBreakpointList jarg3_); + public final static native long SBTarget_BreakpointsCreateFromFile__SWIG_1(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBStringList jarg3_, long jarg4, SBBreakpointList jarg4_); + public final static native long SBTarget_BreakpointsWriteToFile__SWIG_0(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_); + public final static native long SBTarget_BreakpointsWriteToFile__SWIG_1(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBBreakpointList jarg3_, boolean jarg4); + public final static native long SBTarget_BreakpointsWriteToFile__SWIG_2(long jarg1, SBTarget jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3, SBBreakpointList jarg3_); + public final static native long SBTarget_GetNumWatchpoints(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetWatchpointAtIndex(long jarg1, SBTarget jarg1_, long jarg2); + public final static native boolean SBTarget_DeleteWatchpoint(long jarg1, SBTarget jarg1_, int jarg2); + public final static native long SBTarget_FindWatchpointByID(long jarg1, SBTarget jarg1_, int jarg2); + public final static native boolean SBTarget_EnableAllWatchpoints(long jarg1, SBTarget jarg1_); + public final static native boolean SBTarget_DisableAllWatchpoints(long jarg1, SBTarget jarg1_); + public final static native boolean SBTarget_DeleteAllWatchpoints(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_WatchAddress(long jarg1, SBTarget jarg1_, java.math.BigInteger jarg2, long jarg3, boolean jarg4, boolean jarg5, long jarg6, SBError jarg6_); + public final static native long SBTarget_GetBroadcaster(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_CreateValueFromAddress(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBAddress jarg3_, long jarg4, SBType jarg4_); + public final static native long SBTarget_CreateValueFromData(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBData jarg3_, long jarg4, SBType jarg4_); + public final static native long SBTarget_CreateValueFromExpression(long jarg1, SBTarget jarg1_, String jarg2, String jarg3); + public final static native long SBTarget_ReadInstructions__SWIG_0(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_, long jarg3); + public final static native long SBTarget_ReadInstructions__SWIG_1(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_, long jarg3, String jarg4); + public final static native long SBTarget_GetInstructions(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_, long jarg3, long jarg4); + public final static native long SBTarget_GetInstructionsWithFlavor(long jarg1, SBTarget jarg1_, long jarg2, SBAddress jarg2_, String jarg3, long jarg4, long jarg5); + public final static native long SBTarget_FindSymbols__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2, int jarg3); + public final static native long SBTarget_FindSymbols__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2); + public final static native boolean SBTarget_GetDescription(long jarg1, SBTarget jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native java.math.BigInteger SBTarget_GetStackRedZoneSize(long jarg1, SBTarget jarg1_); + public final static native boolean SBTarget_IsLoaded(long jarg1, SBTarget jarg1_, long jarg2, SBModule jarg2_); + public final static native long SBTarget_GetLaunchInfo(long jarg1, SBTarget jarg1_); + public final static native void SBTarget_SetLaunchInfo(long jarg1, SBTarget jarg1_, long jarg2, SBLaunchInfo jarg2_); + public final static native void SBTarget_SetCollectingStats(long jarg1, SBTarget jarg1_, boolean jarg2); + public final static native boolean SBTarget_GetCollectingStats(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_GetStatistics(long jarg1, SBTarget jarg1_); + public final static native long SBTarget_EvaluateExpression__SWIG_0(long jarg1, SBTarget jarg1_, String jarg2); + public final static native long SBTarget_EvaluateExpression__SWIG_1(long jarg1, SBTarget jarg1_, String jarg2, long jarg3, SBExpressionOptions jarg3_); + public final static native String SBTarget___str__(long jarg1, SBTarget jarg1_); + public final static native int SBThread_eBroadcastBitStackChanged_get(); + public final static native int SBThread_eBroadcastBitThreadSuspended_get(); + public final static native int SBThread_eBroadcastBitThreadResumed_get(); + public final static native int SBThread_eBroadcastBitSelectedFrameChanged_get(); + public final static native int SBThread_eBroadcastBitThreadSelected_get(); + public final static native long new_SBThread__SWIG_0(); + public final static native long new_SBThread__SWIG_1(long jarg1, SBThread jarg1_); + public final static native void delete_SBThread(long jarg1); + public final static native String SBThread_GetBroadcasterClassName(); + public final static native boolean SBThread_EventIsThreadEvent(long jarg1, SBEvent jarg1_); + public final static native long SBThread_GetStackFrameFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBThread_GetThreadFromEvent(long jarg1, SBEvent jarg1_); + public final static native boolean SBThread_IsValid(long jarg1, SBThread jarg1_); + public final static native void SBThread_Clear(long jarg1, SBThread jarg1_); + public final static native int SBThread_GetStopReason(long jarg1, SBThread jarg1_); + public final static native long SBThread_GetStopReasonDataCount(long jarg1, SBThread jarg1_); + public final static native java.math.BigInteger SBThread_GetStopReasonDataAtIndex(long jarg1, SBThread jarg1_, long jarg2); + public final static native boolean SBThread_GetStopReasonExtendedInfoAsJSON(long jarg1, SBThread jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBThread_GetStopReasonExtendedBacktraces(long jarg1, SBThread jarg1_, int jarg2); + public final static native long SBThread_GetStopDescription(long jarg1, SBThread jarg1_, String jarg2, long jarg3); + public final static native long SBThread_GetStopReturnValue(long jarg1, SBThread jarg1_); + public final static native java.math.BigInteger SBThread_GetThreadID(long jarg1, SBThread jarg1_); + public final static native long SBThread_GetIndexID(long jarg1, SBThread jarg1_); + public final static native String SBThread_GetName(long jarg1, SBThread jarg1_); + public final static native String SBThread_GetQueueName(long jarg1, SBThread jarg1_); + public final static native java.math.BigInteger SBThread_GetQueueID(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_GetInfoItemByPathAsString(long jarg1, SBThread jarg1_, String jarg2, long jarg3, SBStream jarg3_); + public final static native long SBThread_GetQueue(long jarg1, SBThread jarg1_); + public final static native void SBThread_StepOver__SWIG_0(long jarg1, SBThread jarg1_, int jarg2); + public final static native void SBThread_StepOver__SWIG_1(long jarg1, SBThread jarg1_); + public final static native void SBThread_StepOver__SWIG_2(long jarg1, SBThread jarg1_, int jarg2, long jarg3, SBError jarg3_); + public final static native void SBThread_StepInto__SWIG_0(long jarg1, SBThread jarg1_, int jarg2); + public final static native void SBThread_StepInto__SWIG_1(long jarg1, SBThread jarg1_); + public final static native void SBThread_StepInto__SWIG_2(long jarg1, SBThread jarg1_, String jarg2, int jarg3); + public final static native void SBThread_StepInto__SWIG_3(long jarg1, SBThread jarg1_, String jarg2); + public final static native void SBThread_StepInto__SWIG_4(long jarg1, SBThread jarg1_, String jarg2, long jarg3, long jarg4, SBError jarg4_, int jarg5); + public final static native void SBThread_StepInto__SWIG_5(long jarg1, SBThread jarg1_, String jarg2, long jarg3, long jarg4, SBError jarg4_); + public final static native void SBThread_StepOut__SWIG_0(long jarg1, SBThread jarg1_); + public final static native void SBThread_StepOut__SWIG_1(long jarg1, SBThread jarg1_, long jarg2, SBError jarg2_); + public final static native void SBThread_StepOutOfFrame__SWIG_0(long jarg1, SBThread jarg1_, long jarg2, SBFrame jarg2_); + public final static native void SBThread_StepOutOfFrame__SWIG_1(long jarg1, SBThread jarg1_, long jarg2, SBFrame jarg2_, long jarg3, SBError jarg3_); + public final static native void SBThread_StepInstruction__SWIG_0(long jarg1, SBThread jarg1_, boolean jarg2); + public final static native void SBThread_StepInstruction__SWIG_1(long jarg1, SBThread jarg1_, boolean jarg2, long jarg3, SBError jarg3_); + public final static native long SBThread_StepOverUntil(long jarg1, SBThread jarg1_, long jarg2, SBFrame jarg2_, long jarg3, SBFileSpec jarg3_, long jarg4); + public final static native long SBThread_StepUsingScriptedThreadPlan__SWIG_0(long jarg1, SBThread jarg1_, String jarg2); + public final static native long SBThread_StepUsingScriptedThreadPlan__SWIG_1(long jarg1, SBThread jarg1_, String jarg2, boolean jarg3); + public final static native long SBThread_StepUsingScriptedThreadPlan__SWIG_2(long jarg1, SBThread jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_, boolean jarg4); + public final static native long SBThread_JumpToLine(long jarg1, SBThread jarg1_, long jarg2, SBFileSpec jarg2_, long jarg3); + public final static native void SBThread_RunToAddress__SWIG_0(long jarg1, SBThread jarg1_, java.math.BigInteger jarg2); + public final static native void SBThread_RunToAddress__SWIG_1(long jarg1, SBThread jarg1_, java.math.BigInteger jarg2, long jarg3, SBError jarg3_); + public final static native long SBThread_ReturnFromFrame(long jarg1, SBThread jarg1_, long jarg2, SBFrame jarg2_, long jarg3, SBValue jarg3_); + public final static native long SBThread_UnwindInnermostExpression(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_Suspend__SWIG_0(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_Suspend__SWIG_1(long jarg1, SBThread jarg1_, long jarg2, SBError jarg2_); + public final static native boolean SBThread_Resume__SWIG_0(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_Resume__SWIG_1(long jarg1, SBThread jarg1_, long jarg2, SBError jarg2_); + public final static native boolean SBThread_IsSuspended(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_IsStopped(long jarg1, SBThread jarg1_); + public final static native long SBThread_GetNumFrames(long jarg1, SBThread jarg1_); + public final static native long SBThread_GetFrameAtIndex(long jarg1, SBThread jarg1_, long jarg2); + public final static native long SBThread_GetSelectedFrame(long jarg1, SBThread jarg1_); + public final static native long SBThread_SetSelectedFrame(long jarg1, SBThread jarg1_, long jarg2); + public final static native long SBThread_GetProcess(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_GetDescription__SWIG_0(long jarg1, SBThread jarg1_, long jarg2, SBStream jarg2_); + public final static native boolean SBThread_GetDescription__SWIG_1(long jarg1, SBThread jarg1_, long jarg2, SBStream jarg2_, boolean jarg3); + public final static native boolean SBThread_GetStatus(long jarg1, SBThread jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBThread_GetExtendedBacktraceThread(long jarg1, SBThread jarg1_, String jarg2); + public final static native long SBThread_GetExtendedBacktraceOriginatingIndexID(long jarg1, SBThread jarg1_); + public final static native long SBThread_GetCurrentException(long jarg1, SBThread jarg1_); + public final static native long SBThread_GetCurrentExceptionBacktrace(long jarg1, SBThread jarg1_); + public final static native boolean SBThread_SafeToCallFunctions(long jarg1, SBThread jarg1_); + public final static native String SBThread___str__(long jarg1, SBThread jarg1_); + public final static native long new_SBThreadCollection__SWIG_0(); + public final static native long new_SBThreadCollection__SWIG_1(long jarg1, SBThreadCollection jarg1_); + public final static native void delete_SBThreadCollection(long jarg1); + public final static native boolean SBThreadCollection_IsValid(long jarg1, SBThreadCollection jarg1_); + public final static native long SBThreadCollection_GetSize(long jarg1, SBThreadCollection jarg1_); + public final static native long SBThreadCollection_GetThreadAtIndex(long jarg1, SBThreadCollection jarg1_, long jarg2); + public final static native long new_SBThreadPlan__SWIG_0(); + public final static native long new_SBThreadPlan__SWIG_1(long jarg1, SBThreadPlan jarg1_); + public final static native long new_SBThreadPlan__SWIG_2(long jarg1); + public final static native long new_SBThreadPlan__SWIG_3(long jarg1, SBThread jarg1_, String jarg2); + public final static native void delete_SBThreadPlan(long jarg1); + public final static native boolean SBThreadPlan_IsValid__SWIG_0(long jarg1, SBThreadPlan jarg1_); + public final static native void SBThreadPlan_Clear(long jarg1, SBThreadPlan jarg1_); + public final static native int SBThreadPlan_GetStopReason(long jarg1, SBThreadPlan jarg1_); + public final static native long SBThreadPlan_GetStopReasonDataCount(long jarg1, SBThreadPlan jarg1_); + public final static native java.math.BigInteger SBThreadPlan_GetStopReasonDataAtIndex(long jarg1, SBThreadPlan jarg1_, long jarg2); + public final static native long SBThreadPlan_GetThread(long jarg1, SBThreadPlan jarg1_); + public final static native boolean SBThreadPlan_GetDescription(long jarg1, SBThreadPlan jarg1_, long jarg2, SBStream jarg2_); + public final static native void SBThreadPlan_SetPlanComplete(long jarg1, SBThreadPlan jarg1_, boolean jarg2); + public final static native boolean SBThreadPlan_IsPlanComplete(long jarg1, SBThreadPlan jarg1_); + public final static native boolean SBThreadPlan_IsPlanStale(long jarg1, SBThreadPlan jarg1_); + public final static native boolean SBThreadPlan_GetStopOthers(long jarg1, SBThreadPlan jarg1_); + public final static native void SBThreadPlan_SetStopOthers(long jarg1, SBThreadPlan jarg1_, boolean jarg2); + public final static native long SBThreadPlan_QueueThreadPlanForStepOverRange(long jarg1, SBThreadPlan jarg1_, long jarg2, SBAddress jarg2_, java.math.BigInteger jarg3); + public final static native long SBThreadPlan_QueueThreadPlanForStepInRange(long jarg1, SBThreadPlan jarg1_, long jarg2, SBAddress jarg2_, java.math.BigInteger jarg3); + public final static native long SBThreadPlan_QueueThreadPlanForStepOut__SWIG_0(long jarg1, SBThreadPlan jarg1_, long jarg2, boolean jarg3); + public final static native long SBThreadPlan_QueueThreadPlanForStepOut__SWIG_1(long jarg1, SBThreadPlan jarg1_, long jarg2); + public final static native long SBThreadPlan_QueueThreadPlanForRunToAddress(long jarg1, SBThreadPlan jarg1_, long jarg2, SBAddress jarg2_); + public final static native long SBThreadPlan_QueueThreadPlanForStepScripted__SWIG_0(long jarg1, SBThreadPlan jarg1_, String jarg2); + public final static native long SBThreadPlan_QueueThreadPlanForStepScripted__SWIG_1(long jarg1, SBThreadPlan jarg1_, String jarg2, long jarg3, SBError jarg3_); + public final static native long SBThreadPlan_QueueThreadPlanForStepScripted__SWIG_2(long jarg1, SBThreadPlan jarg1_, String jarg2, long jarg3, SBStructuredData jarg3_, long jarg4, SBError jarg4_); + public final static native long new_SBTrace(); + public final static native long SBTrace_GetTraceData(long jarg1, SBTrace jarg1_, long jarg2, SBError jarg2_, long jarg3, long jarg4, long jarg5, java.math.BigInteger jarg6); + public final static native long SBTrace_GetMetaData(long jarg1, SBTrace jarg1_, long jarg2, SBError jarg2_, long jarg3, long jarg4, long jarg5, java.math.BigInteger jarg6); + public final static native void SBTrace_StopTrace(long jarg1, SBTrace jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native void SBTrace_GetTraceConfig(long jarg1, SBTrace jarg1_, long jarg2, SBTraceOptions jarg2_, long jarg3, SBError jarg3_); + public final static native java.math.BigInteger SBTrace_GetTraceUID(long jarg1, SBTrace jarg1_); + public final static native boolean SBTrace_IsValid(long jarg1, SBTrace jarg1_); + public final static native void delete_SBTrace(long jarg1); + public final static native long new_SBTraceOptions(); + public final static native int SBTraceOptions_getType(long jarg1, SBTraceOptions jarg1_); + public final static native java.math.BigInteger SBTraceOptions_getTraceBufferSize(long jarg1, SBTraceOptions jarg1_); + public final static native long SBTraceOptions_getTraceParams(long jarg1, SBTraceOptions jarg1_, long jarg2, SBError jarg2_); + public final static native java.math.BigInteger SBTraceOptions_getMetaDataBufferSize(long jarg1, SBTraceOptions jarg1_); + public final static native void SBTraceOptions_setTraceParams(long jarg1, SBTraceOptions jarg1_, long jarg2, SBStructuredData jarg2_); + public final static native void SBTraceOptions_setType(long jarg1, SBTraceOptions jarg1_, int jarg2); + public final static native void SBTraceOptions_setTraceBufferSize(long jarg1, SBTraceOptions jarg1_, java.math.BigInteger jarg2); + public final static native void SBTraceOptions_setMetaDataBufferSize(long jarg1, SBTraceOptions jarg1_, java.math.BigInteger jarg2); + public final static native void SBTraceOptions_setThreadID(long jarg1, SBTraceOptions jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBTraceOptions_getThreadID(long jarg1, SBTraceOptions jarg1_); + public final static native boolean SBTraceOptions_IsValid(long jarg1, SBTraceOptions jarg1_); + public final static native void delete_SBTraceOptions(long jarg1); + public final static native long new_SBTypeMember__SWIG_0(); + public final static native long new_SBTypeMember__SWIG_1(long jarg1, SBTypeMember jarg1_); + public final static native void delete_SBTypeMember(long jarg1); + public final static native boolean SBTypeMember_IsValid(long jarg1, SBTypeMember jarg1_); + public final static native String SBTypeMember_GetName(long jarg1, SBTypeMember jarg1_); + public final static native long SBTypeMember_GetType(long jarg1, SBTypeMember jarg1_); + public final static native java.math.BigInteger SBTypeMember_GetOffsetInBytes(long jarg1, SBTypeMember jarg1_); + public final static native java.math.BigInteger SBTypeMember_GetOffsetInBits(long jarg1, SBTypeMember jarg1_); + public final static native boolean SBTypeMember_IsBitfield(long jarg1, SBTypeMember jarg1_); + public final static native long SBTypeMember_GetBitfieldSizeInBits(long jarg1, SBTypeMember jarg1_); + public final static native String SBTypeMember___str__(long jarg1, SBTypeMember jarg1_); + public final static native long new_SBTypeMemberFunction__SWIG_0(); + public final static native long new_SBTypeMemberFunction__SWIG_1(long jarg1, SBTypeMemberFunction jarg1_); + public final static native void delete_SBTypeMemberFunction(long jarg1); + public final static native boolean SBTypeMemberFunction_IsValid(long jarg1, SBTypeMemberFunction jarg1_); + public final static native String SBTypeMemberFunction_GetName(long jarg1, SBTypeMemberFunction jarg1_); + public final static native String SBTypeMemberFunction_GetDemangledName(long jarg1, SBTypeMemberFunction jarg1_); + public final static native String SBTypeMemberFunction_GetMangledName(long jarg1, SBTypeMemberFunction jarg1_); + public final static native long SBTypeMemberFunction_GetType(long jarg1, SBTypeMemberFunction jarg1_); + public final static native long SBTypeMemberFunction_GetReturnType(long jarg1, SBTypeMemberFunction jarg1_); + public final static native long SBTypeMemberFunction_GetNumberOfArguments(long jarg1, SBTypeMemberFunction jarg1_); + public final static native long SBTypeMemberFunction_GetArgumentTypeAtIndex(long jarg1, SBTypeMemberFunction jarg1_, long jarg2); + public final static native int SBTypeMemberFunction_GetKind(long jarg1, SBTypeMemberFunction jarg1_); + public final static native boolean SBTypeMemberFunction_GetDescription(long jarg1, SBTypeMemberFunction jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeMemberFunction___str__(long jarg1, SBTypeMemberFunction jarg1_); + public final static native long new_SBType__SWIG_0(); + public final static native long new_SBType__SWIG_1(long jarg1, SBType jarg1_); + public final static native void delete_SBType(long jarg1); + public final static native boolean SBType_IsValid(long jarg1, SBType jarg1_); + public final static native java.math.BigInteger SBType_GetByteSize(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsPointerType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsReferenceType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsFunctionType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsPolymorphicClass(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsArrayType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsVectorType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsTypedefType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsAnonymousType(long jarg1, SBType jarg1_); + public final static native boolean SBType_IsScopedEnumerationType(long jarg1, SBType jarg1_); + public final static native long SBType_GetPointerType(long jarg1, SBType jarg1_); + public final static native long SBType_GetPointeeType(long jarg1, SBType jarg1_); + public final static native long SBType_GetReferenceType(long jarg1, SBType jarg1_); + public final static native long SBType_GetTypedefedType(long jarg1, SBType jarg1_); + public final static native long SBType_GetDereferencedType(long jarg1, SBType jarg1_); + public final static native long SBType_GetUnqualifiedType(long jarg1, SBType jarg1_); + public final static native long SBType_GetCanonicalType(long jarg1, SBType jarg1_); + public final static native long SBType_GetEnumerationIntegerType(long jarg1, SBType jarg1_); + public final static native long SBType_GetArrayElementType(long jarg1, SBType jarg1_); + public final static native long SBType_GetArrayType(long jarg1, SBType jarg1_, java.math.BigInteger jarg2); + public final static native long SBType_GetVectorElementType(long jarg1, SBType jarg1_); + public final static native int SBType_GetBasicType__SWIG_0(long jarg1, SBType jarg1_); + public final static native long SBType_GetBasicType__SWIG_1(long jarg1, SBType jarg1_, int jarg2); + public final static native long SBType_GetNumberOfFields(long jarg1, SBType jarg1_); + public final static native long SBType_GetNumberOfDirectBaseClasses(long jarg1, SBType jarg1_); + public final static native long SBType_GetNumberOfVirtualBaseClasses(long jarg1, SBType jarg1_); + public final static native long SBType_GetFieldAtIndex(long jarg1, SBType jarg1_, long jarg2); + public final static native long SBType_GetDirectBaseClassAtIndex(long jarg1, SBType jarg1_, long jarg2); + public final static native long SBType_GetVirtualBaseClassAtIndex(long jarg1, SBType jarg1_, long jarg2); + public final static native long SBType_GetEnumMembers(long jarg1, SBType jarg1_); + public final static native long SBType_GetModule(long jarg1, SBType jarg1_); + public final static native String SBType_GetName(long jarg1, SBType jarg1_); + public final static native String SBType_GetDisplayTypeName(long jarg1, SBType jarg1_); + public final static native int SBType_GetTypeClass(long jarg1, SBType jarg1_); + public final static native long SBType_GetNumberOfTemplateArguments(long jarg1, SBType jarg1_); + public final static native long SBType_GetTemplateArgumentType(long jarg1, SBType jarg1_, long jarg2); + public final static native int SBType_GetTemplateArgumentKind(long jarg1, SBType jarg1_, long jarg2); + public final static native long SBType_GetFunctionReturnType(long jarg1, SBType jarg1_); + public final static native long SBType_GetFunctionArgumentTypes(long jarg1, SBType jarg1_); + public final static native long SBType_GetNumberOfMemberFunctions(long jarg1, SBType jarg1_); + public final static native long SBType_GetMemberFunctionAtIndex(long jarg1, SBType jarg1_, long jarg2); + public final static native boolean SBType_IsTypeComplete(long jarg1, SBType jarg1_); + public final static native long SBType_GetTypeFlags(long jarg1, SBType jarg1_); + public final static native String SBType___str__(long jarg1, SBType jarg1_); + public final static native long new_SBTypeList(); + public final static native boolean SBTypeList_IsValid(long jarg1, SBTypeList jarg1_); + public final static native void SBTypeList_Append(long jarg1, SBTypeList jarg1_, long jarg2, SBType jarg2_); + public final static native long SBTypeList_GetTypeAtIndex(long jarg1, SBTypeList jarg1_, long jarg2); + public final static native long SBTypeList_GetSize(long jarg1, SBTypeList jarg1_); + public final static native void delete_SBTypeList(long jarg1); + public final static native long new_SBTypeCategory__SWIG_0(); + public final static native long new_SBTypeCategory__SWIG_1(long jarg1, SBTypeCategory jarg1_); + public final static native void delete_SBTypeCategory(long jarg1); + public final static native boolean SBTypeCategory_IsValid(long jarg1, SBTypeCategory jarg1_); + public final static native boolean SBTypeCategory_GetEnabled(long jarg1, SBTypeCategory jarg1_); + public final static native void SBTypeCategory_SetEnabled(long jarg1, SBTypeCategory jarg1_, boolean jarg2); + public final static native String SBTypeCategory_GetName(long jarg1, SBTypeCategory jarg1_); + public final static native int SBTypeCategory_GetLanguageAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetNumLanguages(long jarg1, SBTypeCategory jarg1_); + public final static native void SBTypeCategory_AddLanguage(long jarg1, SBTypeCategory jarg1_, int jarg2); + public final static native boolean SBTypeCategory_GetDescription(long jarg1, SBTypeCategory jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native long SBTypeCategory_GetNumFormats(long jarg1, SBTypeCategory jarg1_); + public final static native long SBTypeCategory_GetNumSummaries(long jarg1, SBTypeCategory jarg1_); + public final static native long SBTypeCategory_GetNumFilters(long jarg1, SBTypeCategory jarg1_); + public final static native long SBTypeCategory_GetNumSynthetics(long jarg1, SBTypeCategory jarg1_); + public final static native long SBTypeCategory_GetTypeNameSpecifierForFilterAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetTypeNameSpecifierForFormatAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetTypeNameSpecifierForSummaryAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetTypeNameSpecifierForSyntheticAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetFilterForType(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBTypeCategory_GetFormatForType(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBTypeCategory_GetSummaryForType(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBTypeCategory_GetSyntheticForType(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native long SBTypeCategory_GetFilterAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetFormatAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetSummaryAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native long SBTypeCategory_GetSyntheticAtIndex(long jarg1, SBTypeCategory jarg1_, long jarg2); + public final static native boolean SBTypeCategory_AddTypeFormat(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_, long jarg3, SBTypeFormat jarg3_); + public final static native boolean SBTypeCategory_DeleteTypeFormat(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native boolean SBTypeCategory_AddTypeSummary(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_, long jarg3, SBTypeSummary jarg3_); + public final static native boolean SBTypeCategory_DeleteTypeSummary(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native boolean SBTypeCategory_AddTypeFilter(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_, long jarg3, SBTypeFilter jarg3_); + public final static native boolean SBTypeCategory_DeleteTypeFilter(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native boolean SBTypeCategory_AddTypeSynthetic(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_, long jarg3, SBTypeSynthetic jarg3_); + public final static native boolean SBTypeCategory_DeleteTypeSynthetic(long jarg1, SBTypeCategory jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native String SBTypeCategory___str__(long jarg1, SBTypeCategory jarg1_); + public final static native long new_SBTypeEnumMember__SWIG_0(); + public final static native long new_SBTypeEnumMember__SWIG_1(long jarg1, SBTypeEnumMember jarg1_); + public final static native void delete_SBTypeEnumMember(long jarg1); + public final static native boolean SBTypeEnumMember_IsValid(long jarg1, SBTypeEnumMember jarg1_); + public final static native long SBTypeEnumMember_GetValueAsSigned(long jarg1, SBTypeEnumMember jarg1_); + public final static native java.math.BigInteger SBTypeEnumMember_GetValueAsUnsigned(long jarg1, SBTypeEnumMember jarg1_); + public final static native String SBTypeEnumMember_GetName(long jarg1, SBTypeEnumMember jarg1_); + public final static native long SBTypeEnumMember_GetType(long jarg1, SBTypeEnumMember jarg1_); + public final static native boolean SBTypeEnumMember_GetDescription(long jarg1, SBTypeEnumMember jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeEnumMember___str__(long jarg1, SBTypeEnumMember jarg1_); + public final static native long new_SBTypeEnumMemberList__SWIG_0(); + public final static native long new_SBTypeEnumMemberList__SWIG_1(long jarg1, SBTypeEnumMemberList jarg1_); + public final static native void delete_SBTypeEnumMemberList(long jarg1); + public final static native boolean SBTypeEnumMemberList_IsValid(long jarg1, SBTypeEnumMemberList jarg1_); + public final static native void SBTypeEnumMemberList_Append(long jarg1, SBTypeEnumMemberList jarg1_, long jarg2, SBTypeEnumMember jarg2_); + public final static native long SBTypeEnumMemberList_GetTypeEnumMemberAtIndex(long jarg1, SBTypeEnumMemberList jarg1_, long jarg2); + public final static native long SBTypeEnumMemberList_GetSize(long jarg1, SBTypeEnumMemberList jarg1_); + public final static native long new_SBTypeFilter__SWIG_0(); + public final static native long new_SBTypeFilter__SWIG_1(long jarg1); + public final static native long new_SBTypeFilter__SWIG_2(long jarg1, SBTypeFilter jarg1_); + public final static native void delete_SBTypeFilter(long jarg1); + public final static native boolean SBTypeFilter_IsValid(long jarg1, SBTypeFilter jarg1_); + public final static native boolean SBTypeFilter_IsEqualTo(long jarg1, SBTypeFilter jarg1_, long jarg2, SBTypeFilter jarg2_); + public final static native long SBTypeFilter_GetNumberOfExpressionPaths(long jarg1, SBTypeFilter jarg1_); + public final static native String SBTypeFilter_GetExpressionPathAtIndex(long jarg1, SBTypeFilter jarg1_, long jarg2); + public final static native boolean SBTypeFilter_ReplaceExpressionPathAtIndex(long jarg1, SBTypeFilter jarg1_, long jarg2, String jarg3); + public final static native void SBTypeFilter_AppendExpressionPath(long jarg1, SBTypeFilter jarg1_, String jarg2); + public final static native void SBTypeFilter_Clear(long jarg1, SBTypeFilter jarg1_); + public final static native long SBTypeFilter_GetOptions(long jarg1, SBTypeFilter jarg1_); + public final static native void SBTypeFilter_SetOptions(long jarg1, SBTypeFilter jarg1_, long jarg2); + public final static native boolean SBTypeFilter_GetDescription(long jarg1, SBTypeFilter jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeFilter___str__(long jarg1, SBTypeFilter jarg1_); + public final static native long new_SBTypeFormat__SWIG_0(); + public final static native long new_SBTypeFormat__SWIG_1(int jarg1, long jarg2); + public final static native long new_SBTypeFormat__SWIG_2(int jarg1); + public final static native long new_SBTypeFormat__SWIG_3(String jarg1, long jarg2); + public final static native long new_SBTypeFormat__SWIG_4(String jarg1); + public final static native long new_SBTypeFormat__SWIG_5(long jarg1, SBTypeFormat jarg1_); + public final static native void delete_SBTypeFormat(long jarg1); + public final static native boolean SBTypeFormat_IsValid(long jarg1, SBTypeFormat jarg1_); + public final static native boolean SBTypeFormat_IsEqualTo(long jarg1, SBTypeFormat jarg1_, long jarg2, SBTypeFormat jarg2_); + public final static native int SBTypeFormat_GetFormat(long jarg1, SBTypeFormat jarg1_); + public final static native String SBTypeFormat_GetTypeName(long jarg1, SBTypeFormat jarg1_); + public final static native long SBTypeFormat_GetOptions(long jarg1, SBTypeFormat jarg1_); + public final static native void SBTypeFormat_SetFormat(long jarg1, SBTypeFormat jarg1_, int jarg2); + public final static native void SBTypeFormat_SetTypeName(long jarg1, SBTypeFormat jarg1_, String jarg2); + public final static native void SBTypeFormat_SetOptions(long jarg1, SBTypeFormat jarg1_, long jarg2); + public final static native boolean SBTypeFormat_GetDescription(long jarg1, SBTypeFormat jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeFormat___str__(long jarg1, SBTypeFormat jarg1_); + public final static native long new_SBTypeNameSpecifier__SWIG_0(); + public final static native long new_SBTypeNameSpecifier__SWIG_1(String jarg1, boolean jarg2); + public final static native long new_SBTypeNameSpecifier__SWIG_2(String jarg1); + public final static native long new_SBTypeNameSpecifier__SWIG_3(long jarg1, SBType jarg1_); + public final static native long new_SBTypeNameSpecifier__SWIG_4(long jarg1, SBTypeNameSpecifier jarg1_); + public final static native void delete_SBTypeNameSpecifier(long jarg1); + public final static native boolean SBTypeNameSpecifier_IsValid(long jarg1, SBTypeNameSpecifier jarg1_); + public final static native boolean SBTypeNameSpecifier_IsEqualTo(long jarg1, SBTypeNameSpecifier jarg1_, long jarg2, SBTypeNameSpecifier jarg2_); + public final static native String SBTypeNameSpecifier_GetName(long jarg1, SBTypeNameSpecifier jarg1_); + public final static native long SBTypeNameSpecifier_GetType(long jarg1, SBTypeNameSpecifier jarg1_); + public final static native boolean SBTypeNameSpecifier_IsRegex(long jarg1, SBTypeNameSpecifier jarg1_); + public final static native boolean SBTypeNameSpecifier_GetDescription(long jarg1, SBTypeNameSpecifier jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeNameSpecifier___str__(long jarg1, SBTypeNameSpecifier jarg1_); + public final static native long new_SBTypeSummaryOptions__SWIG_0(); + public final static native long new_SBTypeSummaryOptions__SWIG_1(long jarg1, SBTypeSummaryOptions jarg1_); + public final static native void delete_SBTypeSummaryOptions(long jarg1); + public final static native boolean SBTypeSummaryOptions_IsValid(long jarg1, SBTypeSummaryOptions jarg1_); + public final static native int SBTypeSummaryOptions_GetLanguage(long jarg1, SBTypeSummaryOptions jarg1_); + public final static native int SBTypeSummaryOptions_GetCapping(long jarg1, SBTypeSummaryOptions jarg1_); + public final static native void SBTypeSummaryOptions_SetLanguage(long jarg1, SBTypeSummaryOptions jarg1_, int jarg2); + public final static native void SBTypeSummaryOptions_SetCapping(long jarg1, SBTypeSummaryOptions jarg1_, int jarg2); + public final static native long new_SBTypeSummary__SWIG_0(); + public final static native long SBTypeSummary_CreateWithSummaryString__SWIG_0(String jarg1, long jarg2); + public final static native long SBTypeSummary_CreateWithSummaryString__SWIG_1(String jarg1); + public final static native long SBTypeSummary_CreateWithFunctionName__SWIG_0(String jarg1, long jarg2); + public final static native long SBTypeSummary_CreateWithFunctionName__SWIG_1(String jarg1); + public final static native long SBTypeSummary_CreateWithScriptCode__SWIG_0(String jarg1, long jarg2); + public final static native long SBTypeSummary_CreateWithScriptCode__SWIG_1(String jarg1); + public final static native long new_SBTypeSummary__SWIG_1(long jarg1, SBTypeSummary jarg1_); + public final static native void delete_SBTypeSummary(long jarg1); + public final static native boolean SBTypeSummary_IsValid(long jarg1, SBTypeSummary jarg1_); + public final static native boolean SBTypeSummary_IsEqualTo(long jarg1, SBTypeSummary jarg1_, long jarg2, SBTypeSummary jarg2_); + public final static native boolean SBTypeSummary_IsFunctionCode(long jarg1, SBTypeSummary jarg1_); + public final static native boolean SBTypeSummary_IsFunctionName(long jarg1, SBTypeSummary jarg1_); + public final static native boolean SBTypeSummary_IsSummaryString(long jarg1, SBTypeSummary jarg1_); + public final static native String SBTypeSummary_GetData(long jarg1, SBTypeSummary jarg1_); + public final static native void SBTypeSummary_SetSummaryString(long jarg1, SBTypeSummary jarg1_, String jarg2); + public final static native void SBTypeSummary_SetFunctionName(long jarg1, SBTypeSummary jarg1_, String jarg2); + public final static native void SBTypeSummary_SetFunctionCode(long jarg1, SBTypeSummary jarg1_, String jarg2); + public final static native long SBTypeSummary_GetOptions(long jarg1, SBTypeSummary jarg1_); + public final static native void SBTypeSummary_SetOptions(long jarg1, SBTypeSummary jarg1_, long jarg2); + public final static native boolean SBTypeSummary_GetDescription(long jarg1, SBTypeSummary jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeSummary___str__(long jarg1, SBTypeSummary jarg1_); + public final static native long new_SBTypeSynthetic__SWIG_0(); + public final static native long SBTypeSynthetic_CreateWithClassName__SWIG_0(String jarg1, long jarg2); + public final static native long SBTypeSynthetic_CreateWithClassName__SWIG_1(String jarg1); + public final static native long SBTypeSynthetic_CreateWithScriptCode__SWIG_0(String jarg1, long jarg2); + public final static native long SBTypeSynthetic_CreateWithScriptCode__SWIG_1(String jarg1); + public final static native long new_SBTypeSynthetic__SWIG_1(long jarg1, SBTypeSynthetic jarg1_); + public final static native void delete_SBTypeSynthetic(long jarg1); + public final static native boolean SBTypeSynthetic_IsValid(long jarg1, SBTypeSynthetic jarg1_); + public final static native boolean SBTypeSynthetic_IsEqualTo(long jarg1, SBTypeSynthetic jarg1_, long jarg2, SBTypeSynthetic jarg2_); + public final static native boolean SBTypeSynthetic_IsClassCode(long jarg1, SBTypeSynthetic jarg1_); + public final static native String SBTypeSynthetic_GetData(long jarg1, SBTypeSynthetic jarg1_); + public final static native void SBTypeSynthetic_SetClassName(long jarg1, SBTypeSynthetic jarg1_, String jarg2); + public final static native void SBTypeSynthetic_SetClassCode(long jarg1, SBTypeSynthetic jarg1_, String jarg2); + public final static native long SBTypeSynthetic_GetOptions(long jarg1, SBTypeSynthetic jarg1_); + public final static native void SBTypeSynthetic_SetOptions(long jarg1, SBTypeSynthetic jarg1_, long jarg2); + public final static native boolean SBTypeSynthetic_GetDescription(long jarg1, SBTypeSynthetic jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native String SBTypeSynthetic___str__(long jarg1, SBTypeSynthetic jarg1_); + public final static native long new_SBUnixSignals__SWIG_0(); + public final static native long new_SBUnixSignals__SWIG_1(long jarg1, SBUnixSignals jarg1_); + public final static native void delete_SBUnixSignals(long jarg1); + public final static native void SBUnixSignals_Clear(long jarg1, SBUnixSignals jarg1_); + public final static native boolean SBUnixSignals_IsValid(long jarg1, SBUnixSignals jarg1_); + public final static native String SBUnixSignals_GetSignalAsCString(long jarg1, SBUnixSignals jarg1_, int jarg2); + public final static native int SBUnixSignals_GetSignalNumberFromName(long jarg1, SBUnixSignals jarg1_, String jarg2); + public final static native boolean SBUnixSignals_GetShouldSuppress(long jarg1, SBUnixSignals jarg1_, int jarg2); + public final static native boolean SBUnixSignals_SetShouldSuppress(long jarg1, SBUnixSignals jarg1_, int jarg2, boolean jarg3); + public final static native boolean SBUnixSignals_GetShouldStop(long jarg1, SBUnixSignals jarg1_, int jarg2); + public final static native boolean SBUnixSignals_SetShouldStop(long jarg1, SBUnixSignals jarg1_, int jarg2, boolean jarg3); + public final static native boolean SBUnixSignals_GetShouldNotify(long jarg1, SBUnixSignals jarg1_, int jarg2); + public final static native boolean SBUnixSignals_SetShouldNotify(long jarg1, SBUnixSignals jarg1_, int jarg2, boolean jarg3); + public final static native int SBUnixSignals_GetNumSignals(long jarg1, SBUnixSignals jarg1_); + public final static native int SBUnixSignals_GetSignalAtIndex(long jarg1, SBUnixSignals jarg1_, int jarg2); + public final static native long new_SBValue__SWIG_0(); + public final static native long new_SBValue__SWIG_1(long jarg1, SBValue jarg1_); + public final static native void delete_SBValue(long jarg1); + public final static native boolean SBValue_IsValid(long jarg1, SBValue jarg1_); + public final static native void SBValue_Clear(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetError(long jarg1, SBValue jarg1_); + public final static native java.math.BigInteger SBValue_GetID(long jarg1, SBValue jarg1_); + public final static native String SBValue_GetName(long jarg1, SBValue jarg1_); + public final static native String SBValue_GetTypeName(long jarg1, SBValue jarg1_); + public final static native String SBValue_GetDisplayTypeName(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetByteSize(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_IsInScope(long jarg1, SBValue jarg1_); + public final static native int SBValue_GetFormat(long jarg1, SBValue jarg1_); + public final static native void SBValue_SetFormat(long jarg1, SBValue jarg1_, int jarg2); + public final static native String SBValue_GetValue(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetValueAsSigned__SWIG_0(long jarg1, SBValue jarg1_, long jarg2, SBError jarg2_, long jarg3); + public final static native long SBValue_GetValueAsSigned__SWIG_1(long jarg1, SBValue jarg1_, long jarg2, SBError jarg2_); + public final static native java.math.BigInteger SBValue_GetValueAsUnsigned__SWIG_0(long jarg1, SBValue jarg1_, long jarg2, SBError jarg2_, java.math.BigInteger jarg3); + public final static native java.math.BigInteger SBValue_GetValueAsUnsigned__SWIG_1(long jarg1, SBValue jarg1_, long jarg2, SBError jarg2_); + public final static native long SBValue_GetValueAsSigned__SWIG_2(long jarg1, SBValue jarg1_, long jarg2); + public final static native long SBValue_GetValueAsSigned__SWIG_3(long jarg1, SBValue jarg1_); + public final static native java.math.BigInteger SBValue_GetValueAsUnsigned__SWIG_2(long jarg1, SBValue jarg1_, java.math.BigInteger jarg2); + public final static native java.math.BigInteger SBValue_GetValueAsUnsigned__SWIG_3(long jarg1, SBValue jarg1_); + public final static native int SBValue_GetValueType(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_GetValueDidChange(long jarg1, SBValue jarg1_); + public final static native String SBValue_GetSummary__SWIG_0(long jarg1, SBValue jarg1_); + public final static native String SBValue_GetSummary__SWIG_1(long jarg1, SBValue jarg1_, long jarg2, SBStream jarg2_, long jarg3, SBTypeSummaryOptions jarg3_); + public final static native String SBValue_GetObjectDescription(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetDynamicValue(long jarg1, SBValue jarg1_, int jarg2); + public final static native long SBValue_GetStaticValue(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetNonSyntheticValue(long jarg1, SBValue jarg1_); + public final static native int SBValue_GetPreferDynamicValue(long jarg1, SBValue jarg1_); + public final static native void SBValue_SetPreferDynamicValue(long jarg1, SBValue jarg1_, int jarg2); + public final static native boolean SBValue_GetPreferSyntheticValue(long jarg1, SBValue jarg1_); + public final static native void SBValue_SetPreferSyntheticValue(long jarg1, SBValue jarg1_, boolean jarg2); + public final static native boolean SBValue_IsDynamic(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_IsSynthetic(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_IsSyntheticChildrenGenerated(long jarg1, SBValue jarg1_); + public final static native void SBValue_SetSyntheticChildrenGenerated(long jarg1, SBValue jarg1_, boolean jarg2); + public final static native String SBValue_GetLocation(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_SetValueFromCString__SWIG_0(long jarg1, SBValue jarg1_, String jarg2); + public final static native boolean SBValue_SetValueFromCString__SWIG_1(long jarg1, SBValue jarg1_, String jarg2, long jarg3, SBError jarg3_); + public final static native long SBValue_GetTypeFormat(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetTypeSummary(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetTypeFilter(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetTypeSynthetic(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetChildAtIndex__SWIG_0(long jarg1, SBValue jarg1_, long jarg2); + public final static native long SBValue_GetChildAtIndex__SWIG_1(long jarg1, SBValue jarg1_, long jarg2, int jarg3, boolean jarg4); + public final static native long SBValue_CreateChildAtOffset(long jarg1, SBValue jarg1_, String jarg2, long jarg3, long jarg4, SBType jarg4_); + public final static native long SBValue_Cast(long jarg1, SBValue jarg1_, long jarg2, SBType jarg2_); + public final static native long SBValue_CreateValueFromExpression__SWIG_0(long jarg1, SBValue jarg1_, String jarg2, String jarg3); + public final static native long SBValue_CreateValueFromExpression__SWIG_1(long jarg1, SBValue jarg1_, String jarg2, String jarg3, long jarg4, SBExpressionOptions jarg4_); + public final static native long SBValue_CreateValueFromAddress(long jarg1, SBValue jarg1_, String jarg2, java.math.BigInteger jarg3, long jarg4, SBType jarg4_); + public final static native long SBValue_CreateValueFromData(long jarg1, SBValue jarg1_, String jarg2, long jarg3, SBData jarg3_, long jarg4, SBType jarg4_); + public final static native long SBValue_GetType(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetIndexOfChildWithName(long jarg1, SBValue jarg1_, String jarg2); + public final static native long SBValue_GetChildMemberWithName__SWIG_0(long jarg1, SBValue jarg1_, String jarg2); + public final static native long SBValue_GetChildMemberWithName__SWIG_1(long jarg1, SBValue jarg1_, String jarg2, int jarg3); + public final static native long SBValue_GetValueForExpressionPath(long jarg1, SBValue jarg1_, String jarg2); + public final static native long SBValue_GetDeclaration(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_MightHaveChildren(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_IsRuntimeSupportValue(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetNumChildren__SWIG_0(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetNumChildren__SWIG_1(long jarg1, SBValue jarg1_, long jarg2); + public final static native long SBValue_GetOpaqueType(long jarg1, SBValue jarg1_); + public final static native long SBValue_Dereference(long jarg1, SBValue jarg1_); + public final static native long SBValue_AddressOf(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_TypeIsPointerType(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetTarget(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetProcess(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetThread(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetFrame(long jarg1, SBValue jarg1_); + public final static native long SBValue_Watch(long jarg1, SBValue jarg1_, boolean jarg2, boolean jarg3, boolean jarg4, long jarg5, SBError jarg5_); + public final static native long SBValue_WatchPointee(long jarg1, SBValue jarg1_, boolean jarg2, boolean jarg3, boolean jarg4, long jarg5, SBError jarg5_); + public final static native boolean SBValue_GetDescription(long jarg1, SBValue jarg1_, long jarg2, SBStream jarg2_); + public final static native boolean SBValue_GetExpressionPath__SWIG_0(long jarg1, SBValue jarg1_, long jarg2, SBStream jarg2_); + public final static native long SBValue_GetPointeeData__SWIG_0(long jarg1, SBValue jarg1_, long jarg2, long jarg3); + public final static native long SBValue_GetPointeeData__SWIG_1(long jarg1, SBValue jarg1_, long jarg2); + public final static native long SBValue_GetPointeeData__SWIG_2(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetData(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_SetData(long jarg1, SBValue jarg1_, long jarg2, SBData jarg2_, long jarg3, SBError jarg3_); + public final static native java.math.BigInteger SBValue_GetLoadAddress(long jarg1, SBValue jarg1_); + public final static native long SBValue_GetAddress(long jarg1, SBValue jarg1_); + public final static native long SBValue_Persist(long jarg1, SBValue jarg1_); + public final static native boolean SBValue_GetExpressionPath__SWIG_1(long jarg1, SBValue jarg1_, long jarg2, SBStream jarg2_, boolean jarg3); + public final static native long SBValue_EvaluateExpression__SWIG_0(long jarg1, SBValue jarg1_, String jarg2); + public final static native long SBValue_EvaluateExpression__SWIG_1(long jarg1, SBValue jarg1_, String jarg2, long jarg3, SBExpressionOptions jarg3_); + public final static native long SBValue_EvaluateExpression__SWIG_2(long jarg1, SBValue jarg1_, String jarg2, long jarg3, SBExpressionOptions jarg3_, String jarg4); + public final static native String SBValue___str__(long jarg1, SBValue jarg1_); + public final static native long new_SBValueList__SWIG_0(); + public final static native long new_SBValueList__SWIG_1(long jarg1, SBValueList jarg1_); + public final static native void delete_SBValueList(long jarg1); + public final static native boolean SBValueList_IsValid(long jarg1, SBValueList jarg1_); + public final static native void SBValueList_Clear(long jarg1, SBValueList jarg1_); + public final static native void SBValueList_Append__SWIG_0(long jarg1, SBValueList jarg1_, long jarg2, SBValue jarg2_); + public final static native void SBValueList_Append__SWIG_1(long jarg1, SBValueList jarg1_, long jarg2, SBValueList jarg2_); + public final static native long SBValueList_GetSize(long jarg1, SBValueList jarg1_); + public final static native long SBValueList_GetValueAtIndex(long jarg1, SBValueList jarg1_, long jarg2); + public final static native long SBValueList_FindValueObjectByUID(long jarg1, SBValueList jarg1_, java.math.BigInteger jarg2); + public final static native long SBValueList_GetFirstValueByName(long jarg1, SBValueList jarg1_, String jarg2); + public final static native String SBValueList___str__(long jarg1, SBValueList jarg1_); + public final static native long new_SBVariablesOptions__SWIG_0(); + public final static native long new_SBVariablesOptions__SWIG_1(long jarg1, SBVariablesOptions jarg1_); + public final static native void delete_SBVariablesOptions(long jarg1); + public final static native boolean SBVariablesOptions_IsValid(long jarg1, SBVariablesOptions jarg1_); + public final static native boolean SBVariablesOptions_GetIncludeArguments(long jarg1, SBVariablesOptions jarg1_); + public final static native void SBVariablesOptions_SetIncludeArguments(long jarg1, SBVariablesOptions jarg1_, boolean jarg2); + public final static native boolean SBVariablesOptions_GetIncludeRecognizedArguments(long jarg1, SBVariablesOptions jarg1_, long jarg2, SBTarget jarg2_); + public final static native void SBVariablesOptions_SetIncludeRecognizedArguments(long jarg1, SBVariablesOptions jarg1_, boolean jarg2); + public final static native boolean SBVariablesOptions_GetIncludeLocals(long jarg1, SBVariablesOptions jarg1_); + public final static native void SBVariablesOptions_SetIncludeLocals(long jarg1, SBVariablesOptions jarg1_, boolean jarg2); + public final static native boolean SBVariablesOptions_GetIncludeStatics(long jarg1, SBVariablesOptions jarg1_); + public final static native void SBVariablesOptions_SetIncludeStatics(long jarg1, SBVariablesOptions jarg1_, boolean jarg2); + public final static native boolean SBVariablesOptions_GetInScopeOnly(long jarg1, SBVariablesOptions jarg1_); + public final static native void SBVariablesOptions_SetInScopeOnly(long jarg1, SBVariablesOptions jarg1_, boolean jarg2); + public final static native boolean SBVariablesOptions_GetIncludeRuntimeSupportValues(long jarg1, SBVariablesOptions jarg1_); + public final static native void SBVariablesOptions_SetIncludeRuntimeSupportValues(long jarg1, SBVariablesOptions jarg1_, boolean jarg2); + public final static native int SBVariablesOptions_GetUseDynamic(long jarg1, SBVariablesOptions jarg1_); + public final static native void SBVariablesOptions_SetUseDynamic(long jarg1, SBVariablesOptions jarg1_, int jarg2); + public final static native long new_SBWatchpoint__SWIG_0(); + public final static native long new_SBWatchpoint__SWIG_1(long jarg1, SBWatchpoint jarg1_); + public final static native void delete_SBWatchpoint(long jarg1); + public final static native boolean SBWatchpoint_IsValid(long jarg1, SBWatchpoint jarg1_); + public final static native long SBWatchpoint_GetError(long jarg1, SBWatchpoint jarg1_); + public final static native int SBWatchpoint_GetID(long jarg1, SBWatchpoint jarg1_); + public final static native int SBWatchpoint_GetHardwareIndex(long jarg1, SBWatchpoint jarg1_); + public final static native java.math.BigInteger SBWatchpoint_GetWatchAddress(long jarg1, SBWatchpoint jarg1_); + public final static native long SBWatchpoint_GetWatchSize(long jarg1, SBWatchpoint jarg1_); + public final static native void SBWatchpoint_SetEnabled(long jarg1, SBWatchpoint jarg1_, boolean jarg2); + public final static native boolean SBWatchpoint_IsEnabled(long jarg1, SBWatchpoint jarg1_); + public final static native long SBWatchpoint_GetHitCount(long jarg1, SBWatchpoint jarg1_); + public final static native long SBWatchpoint_GetIgnoreCount(long jarg1, SBWatchpoint jarg1_); + public final static native void SBWatchpoint_SetIgnoreCount(long jarg1, SBWatchpoint jarg1_, long jarg2); + public final static native String SBWatchpoint_GetCondition(long jarg1, SBWatchpoint jarg1_); + public final static native void SBWatchpoint_SetCondition(long jarg1, SBWatchpoint jarg1_, String jarg2); + public final static native boolean SBWatchpoint_GetDescription(long jarg1, SBWatchpoint jarg1_, long jarg2, SBStream jarg2_, int jarg3); + public final static native boolean SBWatchpoint_EventIsWatchpointEvent(long jarg1, SBEvent jarg1_); + public final static native int SBWatchpoint_GetWatchpointEventTypeFromEvent(long jarg1, SBEvent jarg1_); + public final static native long SBWatchpoint_GetWatchpointFromEvent(long jarg1, SBEvent jarg1_); + public final static native String SBWatchpoint___str__(long jarg1, SBWatchpoint jarg1_); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/LldbInJvmDebuggerModelFactory.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/LldbInJvmDebuggerModelFactory.java new file mode 100644 index 0000000000..4cab78a4f4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/LldbInJvmDebuggerModelFactory.java @@ -0,0 +1,51 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.impl.LldbModelImpl; +import ghidra.dbg.DebuggerModelFactory; +import ghidra.dbg.DebuggerObjectModel; +import ghidra.dbg.util.ConfigurableFactory.FactoryDescription; +import ghidra.util.classfinder.ExtensionPointProperties; + +/** + * Note this is in the testing source because it's not meant to be shipped in the release.... That + * may change if it proves stable, though, no? + */ +@FactoryDescription( // + brief = "IN-VM lldb local debugger", // + htmlDetails = "Launch a lldb session in this same JVM" // +) +@ExtensionPointProperties(priority = 80) +public class LldbInJvmDebuggerModelFactory implements DebuggerModelFactory { + + // TODO remoteTransport option? + + @Override + public CompletableFuture build() { + LldbModelImpl model = new LldbModelImpl(); + return model.startLLDB(new String[] {}).thenApply(__ -> model); + } + + @Override + public boolean isCompatible() { + String osname = System.getProperty("os.name"); + return osname.contains("Mac OS X") || osname.contains("Linux") || osname.contains("Windows"); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbGadpServer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbGadpServer.java new file mode 100644 index 0000000000..bf9686a163 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbGadpServer.java @@ -0,0 +1,188 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.gadp; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +import agent.lldb.gadp.impl.LldbGadpServerImpl; +import ghidra.dbg.agent.AgentWindow; +import ghidra.util.Msg; + +public interface LldbGadpServer extends AutoCloseable { + + /** + * The entry point for the LLDB server in stand-alone mode + * + * Run it to see help. + * + * @param args the command-line arguments + * @throws IOException if an I/O error occurs + * @throws ExecutionException + * @throws InterruptedException + */ + public static void main(String[] args) throws Exception { + new LldbRunner().run(args); + } + + /** + * Create a new instance of the server + * + * @param addr the address to bind the SCTL server to + * @param busId the client ID the server should use on the bus for synthesized commands + * @return the server instance + * @throws IOException + */ + public static LldbGadpServer newInstance(SocketAddress addr) throws IOException { + return new LldbGadpServerImpl(addr); + } + + /** + * Runs the server from the command line + */ + public class LldbRunner { + protected InetSocketAddress bindTo; + protected List lldbArgs = new ArrayList<>(); + protected byte busId = 1; + protected String remote = null; + + public LldbRunner() { + } + + public void run(String args[]) + throws IOException, InterruptedException, ExecutionException { + parseArguments(args); + + try (LldbGadpServer server = newInstance(bindTo)) { + //TODO: fix/test the debugConnect case when args are passed + server.startLLDB(lldbArgs.toArray(new String[] {})).exceptionally(e -> { + Msg.error(this, "Error starting lldb/GADP", e); + System.exit(-1); + return null; + }); + new AgentWindow("LLDB Agent for Ghidra", server.getLocalAddress()); + while (server.isRunning()) { + Thread.sleep(1000); + } + System.exit(0); + } + } + + protected void parseArguments(String[] args) { + String iface = "localhost"; + int port = 12345; + // NOTE: Maybe commons-cli or Argparse4j? + Iterator ait = Arrays.asList(args).iterator(); + while (ait.hasNext()) { + String a = ait.next(); + if ("-h".equals(a) || "--help".equals(a)) { + printUsage(); + System.exit(0); + } + else if ("-p".equals(a) || "--port".equals(a)) { + if (!ait.hasNext()) { + System.err.println("Expected PORT"); + printUsage(); + System.exit(-1); + } + String portStr = ait.next(); + try { + port = Integer.parseInt(portStr); + } + catch (NumberFormatException e) { + System.err.println("Integer required. Got " + portStr); + printUsage(); + System.exit(-1); + } + } + else if ("-H".equals(a) || "--host".equals(a)) { + if (!ait.hasNext()) { + System.err.println("Expected HOST/ADDR"); + printUsage(); + System.exit(-1); + } + iface = ait.next(); + } + else { + System.err.println("Unknown option: " + a); + printUsage(); + System.exit(-1); + } + } + + bindTo = new InetSocketAddress(iface, port); + } + + protected void printUsage() { + System.out.println("This is the GADP server for LLVM's lldb. Usage:"); + System.out.println(); + System.out.println(" [-H HOST/ADDR] [-p PORT] [-i ID] [-t TRANSPORT] [-r REMOTE]"); + System.out.println(); + System.out.println("Options:"); + System.out.println( + " --host/-H The address of the interface on which to listen."); + System.out.println(" Default is localhost"); + System.out.println( + " --port/-p The TCP port on which to listen for GADP. Default is 12345"); + } + } + + /** + * Start the debugging server + * + * @return a future that completes when the server is ready + */ + CompletableFuture startLLDB(String[] args); + + /** + * Get the local address to which the SCTL server is bound. + * + * @return the local socket address + */ + SocketAddress getLocalAddress(); + + /** + * Close all connections and ports, GADP and Process Server, and terminate the server + * + * @throws IOException if an I/O error occurs + */ + public void terminate() throws IOException; + + /** + * Check if the server is running + * + * This will return false: 1) Before the server has been started, 2) After a call to + * {@link #terminate()}, or 3) When an error occurs causing the server to terminate + * unexpectedly. Otherwise, it returns true. + * + * @returns true if the server is currently running. + */ + public boolean isRunning(); + + /** + * Calls {@link #terminate()} + * + * @throws IOException if an I/O error occurs + */ + @Override + default void close() throws IOException { + terminate(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbLocalDebuggerModelFactory.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbLocalDebuggerModelFactory.java new file mode 100644 index 0000000000..08764d2bde --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/LldbLocalDebuggerModelFactory.java @@ -0,0 +1,78 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.gadp; + +import java.util.List; + +import ghidra.dbg.gadp.server.AbstractGadpLocalDebuggerModelFactory; +import ghidra.dbg.util.ConfigurableFactory.FactoryDescription; +import ghidra.util.classfinder.ExtensionPointProperties; + +@FactoryDescription( // + brief = "LLVM lldb local agent via GADP/TCP", // + htmlDetails = "Launch a new agent using LLVM's lldb." // +) +@ExtensionPointProperties(priority = 100) +public class LldbLocalDebuggerModelFactory extends AbstractGadpLocalDebuggerModelFactory { + + protected String remote = "none"; // Require user to start server + @FactoryOption("DebugConnect options (.server)") + public final Property agentRemoteOption = + Property.fromAccessors(String.class, this::getAgentRemote, this::setAgentRemote); + + protected String transport = "none"; // Require user to start server + @FactoryOption("Remote process server options (untested)") + public final Property agentTransportOption = + Property.fromAccessors(String.class, this::getAgentTransport, this::setAgentTransport); + + @Override + public boolean isCompatible() { + String osname = System.getProperty("os.name"); + return osname.contains("Mac OS X") || osname.contains("Linux") || osname.contains("Windows"); + } + + public String getAgentTransport() { + return transport; + } + + public void setAgentTransport(String transport) { + this.transport = transport; + } + + public String getAgentRemote() { + return remote; + } + + public void setAgentRemote(String remote) { + this.remote = remote; + } + + @Override + protected String getThreadName() { + return "Local LLDB Agent stdout"; + } + + protected Class getServerClass() { + return LldbGadpServer.class; + } + + @Override + protected void completeCommandLine(List cmd) { + cmd.add(getServerClass().getCanonicalName()); + cmd.addAll(List.of("-H", host)); + cmd.addAll(List.of("-p", Integer.toString(port))); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/AbstractClientThreadExecutor.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/AbstractClientThreadExecutor.java new file mode 100644 index 0000000000..95e1d0217f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/AbstractClientThreadExecutor.java @@ -0,0 +1,201 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.gadp.impl; + +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Consumer; + +import agent.lldb.lldb.DebugClient; +import agent.lldb.lldb.DebugClient.DebugStatus; +import agent.lldb.manager.LldbManager; +import ghidra.util.Msg; + +/** + * A single-threaded executor which creates and exclusively accesses the {@code lldb} client. + * + *

+ * The executor also has a priority mechanism, so that callbacks may register follow-on handlers + * which take precedence over other tasks in the queue (which could trigger additional callbacks). + * This is required since certain operation are not allowed during normal callback processing. For + * example, changing the current process is typically not allowed, but it is necessary to retrieve a + * thread's context. + */ +public abstract class AbstractClientThreadExecutor extends AbstractExecutorService { + private static final int DEFAULT_PRIORITY = 10; + + protected DebugClient client; + protected boolean shuttingDown = false; + protected final Queue queue = new PriorityQueue<>(); + protected Thread thread = new Thread(this::run, "DebugClient"); + protected final AtomicBoolean waitRegistered = new AtomicBoolean(); + + protected abstract void init(); + + public static class Entry implements Comparable { + final int priority; + public final Runnable command; + + public Entry(int priority, Runnable command) { + this.priority = priority; + this.command = command; + } + + @Override + public int compareTo(Entry that) { + return Integer.compare(this.priority, that.priority); + } + } + + /** + * Obtain a reference to the client, only if the calling thread is this executor's thread. + * + * @return the client + */ + public DebugClient getClient() { + return client; + } + + public void cancelWait() { + waitRegistered.set(false); + } + + public void registerWait() { + waitRegistered.set(true); + } + + private Entry pollQueue() { + synchronized (queue) { + return queue.poll(); + } + } + + private void run() { + /** + * The general idea is to run indefinitely, taking every precaution to protect this thread's + * life, since only it can access the client. Granted, if it turns out to be too difficult, + * we can always create a new thread and client, using the existing client's reentrant + * methods. + */ + try { + init(); + while (!shuttingDown) { + Entry next; + while (null != (next = pollQueue())) { + if (shuttingDown) { + return; + } + try { + //System.out.println("Executing: " + next); + next.command.run(); + //System.out.println("Done"); + } + catch (Throwable t) { + Msg.error(this, "Task in executor threw: " + t); + } + } + + DebugStatus status = client.getExecutionStatus(); + if (status.shouldWait && status != DebugStatus.NO_DEBUGGEE || + waitRegistered.get()) { + waitRegistered.set(false); + getManager().waitForEventEx(); + //client.getControl().waitForEvent(); + } + + } + } + catch (Throwable t) { + Msg.error(this, "Non-respawnable executor terminated unexpectedly", t); + shuttingDown = true; + } + } + + @Override + public void shutdown() { + shuttingDown = true; + } + + @Override + public List shutdownNow() { + shuttingDown = true; + thread.interrupt(); + List left = new ArrayList<>(queue.size()); + for (Entry ent : queue) { + left.add(ent.command); + } + return left; + } + + @Override + public boolean isShutdown() { + return shuttingDown; + } + + @Override + public boolean isTerminated() { + return !thread.isAlive(); + } + + @Override + public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { + long millis = TimeUnit.MILLISECONDS.convert(timeout, unit); + thread.join(millis); + return !thread.isAlive(); + } + + @Override + public void execute(Runnable command) { + execute(DEFAULT_PRIORITY, command); + } + + /** + * Schedule a task with a given priority. + * + * @param priority the priority + * @param command the task + */ + public void execute(int priority, Runnable command) { + if (shuttingDown) { + throw new RejectedExecutionException("Executor is shutting down"); + } + if (!thread.isAlive()) { + throw new RejectedExecutionException("Executor has terminated"); + } + synchronized (queue) { + queue.add(new Entry(priority, command)); + } + } + + public boolean isCurrentThread() { + return thread.equals(Thread.currentThread()); + } + + /** + * Schedule a task with the given priority, taking a reference to the client. + * + * @param priority the priority + * @param command the task + */ + public void execute(int priority, Consumer command) { + execute(priority, () -> command.accept(client)); + } + + public abstract LldbManager getManager(); + + public abstract void setManager(LldbManager manager); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbClientThreadExecutor.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbClientThreadExecutor.java new file mode 100644 index 0000000000..5422a858c9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbClientThreadExecutor.java @@ -0,0 +1,64 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.gadp.impl; + +import java.util.function.Supplier; + +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbManager; + +/** + * A single-threaded executor which creates and exclusively accesses the {@code lldb} client. + * + * The executor also has a priority mechanism, so that callbacks may register follow-on handlers + * which take precedence over other tasks in the queue (which could trigger additional callbacks). + * This is required since certain operation are not allowed during normal callback processing. For + * example, changing the current process is typically not allowed, but it is necessary to retrieve a + * thread's context. + */ +public class LldbClientThreadExecutor extends AbstractClientThreadExecutor { + + private final Supplier makeClient; + private LldbManager manager; + + /** + * Instantiate a new executor, providing a means of creating the client + * + * @param makeClient the callback to create the client + */ + public LldbClientThreadExecutor(Supplier makeClient) { + this.makeClient = makeClient; + thread.setDaemon(true); + thread.start(); + } + + @Override + protected void init() { + this.client = makeClient.get(); + client.setManager(manager); + } + + @Override + public LldbManager getManager() { + return manager; + } + + @Override + public void setManager(LldbManager manager) { + this.manager = manager; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbGadpServerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbGadpServerImpl.java new file mode 100644 index 0000000000..b0ffafbd31 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/gadp/impl/LldbGadpServerImpl.java @@ -0,0 +1,64 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.gadp.impl; + +import java.io.IOException; +import java.net.SocketAddress; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.gadp.LldbGadpServer; +import agent.lldb.model.AbstractLldbModel; +import agent.lldb.model.impl.LldbModelImpl; +import ghidra.dbg.gadp.server.AbstractGadpServer; + +public class LldbGadpServerImpl implements LldbGadpServer { + public class GadpSide extends AbstractGadpServer { + public GadpSide(AbstractLldbModel model, SocketAddress addr) + throws IOException { + super(model, addr); + } + } + + protected final AbstractLldbModel model; + protected final GadpSide server; + + public LldbGadpServerImpl(SocketAddress addr) throws IOException { + super(); + this.model = new LldbModelImpl(); + this.server = new GadpSide(model, addr); + } + + @Override + public CompletableFuture startLLDB(String[] args) { + return model.startLLDB(args).thenCompose(__ -> server.launchAsyncService()); + } + + @Override + public SocketAddress getLocalAddress() { + return server.getLocalAddress(); + } + + @Override + public boolean isRunning() { + return model.isRunning(); + } + + @Override + public void terminate() throws IOException { + model.terminate(); + server.terminate(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpoint.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpoint.java new file mode 100644 index 0000000000..b3066aebad --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpoint.java @@ -0,0 +1,86 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import ghidra.comm.util.BitmaskSet; +import ghidra.comm.util.BitmaskUniverse; + +/** + * A wrapper for breakpoint variations + */ +public interface DebugBreakpoint { + public static enum BreakType { + CODE, DATA, TIME, INLINE; + } + + public static class BreakFullType { + public final BreakType breakType; + + public BreakFullType(BreakType breakType) { + this.breakType = breakType; + } + } + + public static enum BreakFlags implements BitmaskUniverse { + GO_ONLY(1 << 0), // + DEFERRED(1 << 1), // + ENABLED(1 << 2), // + ADDER_ONLY(1 << 3), // + ONE_SHOT(1 << 4), // + ; + + private BreakFlags(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static enum BreakAccess implements BitmaskUniverse { + READ(1 << 0), // + WRITE(1 << 1), // + EXECUTE(1 << 2), // + READ_WRITE(1 << 3), // + ; + + private BreakAccess(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static class BreakDataParameters { + public int size; + public BitmaskSet access; + + public BreakDataParameters(int size, BitmaskSet access) { + this.size = size; + this.access = access; + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpointInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpointInfo.java new file mode 100644 index 0000000000..8322746e8f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugBreakpointInfo.java @@ -0,0 +1,39 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import SWIG.SBEvent; + +/** + * Information about a breakpoint (or watchpoint). + */ +public class DebugBreakpointInfo { + + public SBEvent event; + public Object pt; + public String id; + + public DebugBreakpointInfo(SBEvent event, Object pt) { + this.event = event; + this.pt = pt; + this.id = DebugClient.getId(pt); + } + + @Override + public String toString() { + return id; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClient.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClient.java new file mode 100644 index 0000000000..2efcaea7a7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClient.java @@ -0,0 +1,424 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.LldbManager; +import ghidra.comm.util.BitmaskUniverse; +import ghidra.dbg.target.TargetExecutionStateful.TargetExecutionState; + +/** + * A wrapper for SBDebugger + */ +public interface DebugClient extends DebugClientReentrant { + + /** + * Create a debug client. + * + * @return a new client + */ + public static DebugClient debugCreate() { + return new DebugClientImpl(); + } + + public static enum ExecutionState { + RUNNING, STOPPED; + } + + public static enum DebugStatus { + NO_CHANGE(false, null, 13), // + GO(true, ExecutionState.RUNNING, 10), // + GO_HANDLED(true, ExecutionState.RUNNING, 9), // + GO_NOT_HANDLED(true, ExecutionState.RUNNING, 8), // + STEP_OVER(true, ExecutionState.RUNNING, 7), // + STEP_INTO(true, ExecutionState.RUNNING, 5), // + BREAK(false, ExecutionState.STOPPED, 0), // + NO_DEBUGGEE(true, null, 1), // shouldWait is true to handle process creation + STEP_BRANCH(true, ExecutionState.RUNNING, 6), // + IGNORE_EVENT(false, null, 11), // + RESTART_REQUESTED(true, null, 12), // + REVERSE_GO(true, null, 0xff), // + REVERSE_STEP_BRANCH(true, null, 0xff), // + REVERSE_STEP_OVER(true, null, 0xff), // + REVERSE_STEP_INTO(true, null, 0xff), // + OUT_OF_SYNC(false, null, 2), // + WAIT_INPUT(false, null, 3), // + TIMEOUT(false, null, 4), // + ; + + public static final long MASK = 0xaf; + public static final long INSIDE_WAIT = 0x100000000L; + public static final long WAIT_TIMEOUT = 0x200000000L; + + DebugStatus(boolean shouldWait, ExecutionState threadState, int precedence) { + this.shouldWait = shouldWait; + this.threadState = threadState; + this.precedence = precedence; + } + + public final boolean shouldWait; + public final ExecutionState threadState; + public final int precedence; // 0 is highest + + public static DebugStatus fromArgument(StateType state) { + if (state == null) { + return DebugStatus.NO_DEBUGGEE; + } + switch (state.swigValue()) { + case 0: // eStateInvalid + case 1: // eStateUnloaded + case 2: // eStateConnected + case 3: // eStateAttaching + case 4: // eStateLaunching + return DebugStatus.GO; + case 5: // eStateStopped + return DebugStatus.BREAK; + case 6: // eStateRunning + return DebugStatus.GO; + case 7: // eStateStepping + return DebugStatus.STEP_INTO; + case 8: // eStateCrashed + case 9: // eStateDetached + case 10: // eStateExited + case 11: // eStateSuspended + return DebugStatus.NO_DEBUGGEE; + default: + return DebugStatus.NO_CHANGE; + } + } + + /* + public static boolean isInsideWait(SBEvent event) { + return (argument & INSIDE_WAIT) != 0; + } + + public static boolean isWaitTimeout(SBEvent event) { + return (argument & WAIT_TIMEOUT) != 0; + } + */ + } + + public static enum SessionStatus { + ACTIVE, // + END_SESSION_ACTIVE_TERMINATE,// + END_SESSION_ACTIVE_DETACH, // + END_SESSION_PASSIVE, // + END, // + REBOOT, // + HIBERNATE, // + FAILURE, // + ; + } + + public static enum ChangeSessionState implements BitmaskUniverse { + SESSION_ALL(0xffffffff), // + SESSION_BREAKPOINT_CHANGED(SBTarget.eBroadcastBitBreakpointChanged), // + SESSION_MODULE_LOADED(SBTarget.eBroadcastBitModulesLoaded), // + SESSION_MODULE_UNLOADED(SBTarget.eBroadcastBitModulesUnloaded), // + SESSION_WATCHPOINT_CHANGED(SBTarget.eBroadcastBitWatchpointChanged), // + SESSION_SYMBOLS_LOADED(SBTarget.eBroadcastBitSymbolsLoaded), // + ; + + private ChangeSessionState(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static enum ChangeProcessState implements BitmaskUniverse { + PROCESS_ALL(0xffffffff), // + PROCESS_STATE_CHANGED(SBProcess.eBroadcastBitStateChanged), // + PROCESS_INTERRUPT(SBProcess.eBroadcastBitInterrupt), // + PROCESS_STDOUT(SBProcess.eBroadcastBitSTDOUT), // + PROCESS_STDERR(SBProcess.eBroadcastBitSTDERR), // + PROCESS_PROFILE_DATA(SBProcess.eBroadcastBitProfileData), // + PROCESS_STRUCTURED_DATA(SBProcess.eBroadcastBitStructuredData), // + ; + + private ChangeProcessState(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static enum ChangeThreadState implements BitmaskUniverse { + THREAD_ALL(0xffffffff), // + THREAD_STACK_CHANGED(SBThread.eBroadcastBitStackChanged), // + THREAD_SUSPENDED(SBThread.eBroadcastBitThreadSuspended), // + THREAD_RESUMED(SBThread.eBroadcastBitThreadResumed), // + THREAD_FRAME_CHANGED(SBThread.eBroadcastBitSelectedFrameChanged), // + THREAD_SELECTED(SBThread.eBroadcastBitThreadSelected), // + ; + + private ChangeThreadState(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static enum DebugAttachFlags implements BitmaskUniverse { + DEFAULT(0), // + NONINVASIVE(1 << 0), // + EXISTING(1 << 1), // + NONINVASIVE_NO_SUSPEND(1 << 2), // + INVASIVE_NO_INITIAL_BREAK(1 << 3), // + INVASIVE_RESUME_PROCESS(1 << 4), // + NONINVASIVE_ALLOW_PARTIAL(1 << 5), // + ; + + DebugAttachFlags(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static enum DebugCreateFlags implements BitmaskUniverse { + LAUNCH_DEFAULT(0), // + LAUNCH_EXEC(1 << 0), // + LAUNCH_DEBUG(1 << 1), // + LAUNCH_STOP_AT_ENTRY(1 << 2), // + LAUNCH_DISABLE_ASLR(1 << 3), // + LAUNCH_DISABLE_STDIO(1 << 4), // + LAUNCH_IN_TTY(1 << 5), // + LAUNCH_IN_SHELL(1 << 6), // + LAUNCH_IN_SEP_GROUP(1 << 7), // + LAUNCH_DONT_SET_EXIT_STATUS(1 << 8), // + LAUNCH_DETACH_ON_ERROR(1 << 9), // + LAUNCH_SHELL_EXPAND_ARGS(1 << 10), // + LAUNCH_CLOSE_TTY_ON_EXIT(1 << 11), // + LAUNCH_INHERIT_FROM_PARENT(1 << 12) // + ; + + DebugCreateFlags(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public enum DebugEndSessionFlags { + DEBUG_END_PASSIVE(0x00000000), + DEBUG_END_ACTIVE_TERMINATE(0x00000001), + DEBUG_END_ACTIVE_DETACH(0x00000002), + DEBUG_END_REENTRANT(0x00000003), + DEBUG_END_DISCONNECT(0x00000004); + + DebugEndSessionFlags(int value) { + this.value = value; + } + + private final int value; + + public long getValue() { + return value; + } + } + + public enum DebugOutputFlags { + DEBUG_OUTPUT_NORMAL(0x1), // + DEBUG_OUTPUT_ERROR(0x2), // + DEBUG_OUTPUT_WARNING(0x4), // + DEBUG_OUTPUT_VERBOSE(0x8), // + DEBUG_OUTPUT_PROMPT(0x10), // + DEBUG_OUTPUT_PROMPT_REGISTERS(0x20), // + DEBUG_OUTPUT_EXTENSION_WARNING(0x40), // + DEBUG_OUTPUT_DEBUGGEE(0x80), // + DEBUG_OUTPUT_DEBUGGEE_PROMPT(0x100), // + DEBUG_OUTPUT_SYMBOLS(0x200); + + DebugOutputFlags(int value) { + this.value = value; + } + + private final int value; + + public long getValue() { + return value; + } + } + + public static String getModelKey(Object modelObject) { + return modelObject.getClass() + ":" + getId(modelObject); + } + + public static String getId(Object modelObject) { + if (modelObject instanceof SBTarget) { + SBTarget session = (SBTarget) modelObject; + return Integer.toHexString(session.GetProcess().GetProcessID().intValue()); + } + if (modelObject instanceof SBProcess) { // global + SBProcess process = (SBProcess) modelObject; + return Integer.toHexString(process.GetProcessID().intValue()); + } + if (modelObject instanceof SBThread) { // global + SBThread thread = (SBThread) modelObject; + return Integer.toHexString(thread.GetThreadID().intValue()); + } + if (modelObject instanceof SBFrame) { + SBFrame frame = (SBFrame) modelObject; + return Long.toHexString(frame.GetFrameID()); + } + if (modelObject instanceof SBValue) { + SBValue val = (SBValue) modelObject; + return val.GetName(); + } + if (modelObject instanceof SBModule) { + SBModule module = (SBModule) modelObject; + return module.GetFileSpec().GetFilename(); + } + if (modelObject instanceof SBSection) { + SBSection section = (SBSection) modelObject; + return section.GetName() + ":" + section.GetFileAddress(); + } + if (modelObject instanceof SBMemoryRegionInfo) { + SBMemoryRegionInfo region = (SBMemoryRegionInfo) modelObject; + return Long.toHexString(region.GetRegionBase().longValue()); + } + if (modelObject instanceof SBSymbol) { + SBSymbol sym = (SBSymbol) modelObject; + return sym.GetName(); + } + if (modelObject instanceof SBBreakpoint) { // global + SBBreakpoint spec = (SBBreakpoint) modelObject; + return "B" + Integer.toHexString(spec.GetID()); + } + if (modelObject instanceof SBWatchpoint) { // global + SBWatchpoint spec = (SBWatchpoint) modelObject; + return "W" + Integer.toHexString(spec.GetID()); + } + if (modelObject instanceof SBBreakpointLocation) { + SBBreakpointLocation loc = (SBBreakpointLocation) modelObject; + return Long.toHexString(loc.GetLoadAddress().longValue()); + } + if (modelObject instanceof SBFunction) { + SBFunction fn = (SBFunction) modelObject; + return fn.GetName(); + } + throw new RuntimeException("Unknown object " + modelObject.getClass()); + } + + public static TargetExecutionState convertState(StateType state) { + switch (state.swigValue()) { + case 0: // eStateInvalid + return TargetExecutionState.RUNNING; + case 1: // eStateUnloaded + return TargetExecutionState.INACTIVE; + case 2: // eStateConnected + case 3: // eStateAttaching + case 4: // eStateLaunching + return TargetExecutionState.ALIVE; + case 5: // eStateStopped + return TargetExecutionState.STOPPED; + case 6: // eStateRunning + case 7: // eStateStepping + return TargetExecutionState.RUNNING; + case 8: // eStateCrashed + case 9: // eStateDetached + case 10: // eStateExited + case 11: // eStateSuspended + return TargetExecutionState.TERMINATED; + default: + return TargetExecutionState.STOPPED; + } + } + + @Override + public SBListener getListener(); + + /** + * The the ID for the local server + * + * @return the ID + */ + DebugServerId getLocalServer(); + + void setOutputCallbacks(DebugOutputCallbacks cb); + + SBProcess attachProcess(DebugServerId si, int keyType, String key, boolean wait, boolean async); + + SBProcess createProcess(DebugServerId si, String fileName); + + SBProcess createProcess(DebugServerId si, String fileName, + List args, List envp, String workingDir); + + SBProcess createProcess(DebugServerId si, SBLaunchInfo info); + + SBProcess createProcess(DebugServerId si, String fileName, List args, List envp, + List pathsIO, + String workingDir, long createFlags, boolean stopAtEntry); + + void terminateCurrentProcess(); + + void destroyCurrentProcess(); + + void detachCurrentProcess(); + + SBTarget connectSession(String commandLine); + + Map listSessions(); + + void endSession(DebugEndSessionFlags flags); + + void openDumpFileWide(String fileName); + + SBEvent waitForEvent(); + + DebugStatus getExecutionStatus(); + + void processEvent(LldbEvent lldbEvt); + + boolean getInterrupt(); + + public void setManager(LldbManager manager); + + public void addBroadcaster(Object process); + + public void execute(String command); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientImpl.java new file mode 100644 index 0000000000..e2f46eefbe --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientImpl.java @@ -0,0 +1,518 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import java.math.BigInteger; +import java.util.*; + +import SWIG.*; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.LldbManager; +import agent.lldb.manager.evt.*; +import ghidra.framework.OperatingSystem; +import ghidra.framework.Platform; +import ghidra.util.Msg; + +public class DebugClientImpl implements DebugClient { + + private LldbManager manager; + private SBDebugger sbd; + private SBTarget session; + private SBEvent event; + private DebugOutputCallbacks ocb; + //private DebugEventCallbacks ecb; + private SBCommandInterpreter cmd; + + public DebugClientImpl() { + } + + @Override + public DebugClient createClient() { + try { + if (Platform.CURRENT_PLATFORM.getOperatingSystem() == OperatingSystem.LINUX) { + System.load("/usr/lib/liblldb.so"); + } else if (Platform.CURRENT_PLATFORM.getOperatingSystem() == OperatingSystem.MAC_OS_X) { + System.load("/usr/lib/liblldb.dylib"); + } else if (Platform.CURRENT_PLATFORM.getOperatingSystem() == OperatingSystem.WINDOWS) { + System.load("/usr/lib/liblldb.dll"); + } + } + catch (UnsatisfiedLinkError ex) { + Msg.error(this, "LLDB libraries not found for "+Platform.CURRENT_PLATFORM.getOperatingSystem()); + } + SBError error = SBDebugger.InitializeWithErrorHandling(); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + return null; + } + event = new SBEvent(); + sbd = SBDebugger.Create(); + cmd = sbd.GetCommandInterpreter(); + return this; + } + + public SBDebugger getDebugger() { + return sbd; + } + + @Override + public SBListener getListener() { + return sbd.GetListener(); + } + + @Override + public DebugServerId getLocalServer() { + return new DebugServerId(0); + } + + @Override + public SBProcess attachProcess(DebugServerId si, int keyType, String key, boolean wait, + boolean async) { + SBListener listener = new SBListener(); + SBError error = new SBError(); + session = createNullSession(); + SBProcess process; + switch (keyType) { + case 0: // pid + int radix = 10; + if (key.startsWith("0x")) { + key = key.substring(2); + radix = 16; + } + BigInteger processId = new BigInteger(key, radix); + process = session.AttachToProcessWithID(listener, processId, error); + break; + case 1: // name + process = session.AttachToProcessWithName(listener, key, wait, error); + break; + case 2: // path + SBAttachInfo info = new SBAttachInfo(key, wait, async); + process = session.Attach(info, error); + break; + default: + return null; + } + if (!error.Success()) { + Msg.error(this, error.GetType() + " while attaching to " + key); + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + return null; + } + if (async) { + manager.waitForEventEx(); + } + else { + manager.updateState(process); + } + return process; + } + + @Override + public SBProcess createProcess(DebugServerId si, String fileName) { + return createProcess(si, fileName, new ArrayList(), new ArrayList(), ""); + } + + @Override + public SBProcess createProcess(DebugServerId si, String fileName, + List args, List envp, String workingDir) { + SBError error = new SBError(); + session = connectSession(fileName); + String[] argArr = args.toArray(new String[args.size()]); + String[] envArr = envp.isEmpty() ? null : envp.toArray(new String[envp.size()]); + SBProcess process = session.LaunchSimple(argArr, envArr, workingDir); + if (!error.Success()) { + Msg.error(this, error.GetType() + " for create process"); + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + return null; + } + manager.updateState(process); + return process; + } + + @Override + public SBProcess createProcess(DebugServerId si, SBLaunchInfo info) { + SBError error = new SBError(); + String cmd = info.GetExecutableFile().GetDirectory(); + cmd += "/" + info.GetExecutableFile().GetFilename(); + for (int i = 0; i < info.GetNumArguments(); i++) { + cmd += " " + info.GetArgumentAtIndex(i); + } + session = connectSession(cmd); + SBProcess process = session.Launch(info, error); + if (!error.Success()) { + Msg.error(this, error.GetType() + " for create process"); + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + return null; + } + return process; + } + + @Override + public SBProcess createProcess(DebugServerId si, String fileName, + List args, List envp, List pathsIO, + String workingDir, long createFlags, boolean stopAtEntry) { + session = connectSession(fileName); + + String[] argArr = args.toArray(new String[args.size()]); + // null for envp means use the default environment + String[] envArr = envp.isEmpty() ? null : envp.toArray(new String[envp.size()]); + String pathSTDIN = pathsIO.get(0); + String pathSTDOUT = pathsIO.get(1); + String pathSTDERR = pathsIO.get(2); + SBListener listener = new SBListener(); + SBError error = new SBError(); + SBProcess process = session.Launch(listener, argArr, envArr, + pathSTDIN, pathSTDOUT, pathSTDERR, workingDir, createFlags, stopAtEntry, error); + //SBProcess process = session.Launch(listener, null, null, "", "", "", "", 0, true, error); + if (!error.Success()) { + Msg.error(this, error.GetType() + " while launching " + fileName); + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + return null; + } + if (stopAtEntry) { + manager.updateState(process); + } + else { + manager.waitForEventEx(); + } + return process; + } + + @Override + public void terminateCurrentProcess() { + SBProcess process = session.GetProcess(); + SBError error = process.Kill(); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + } + } + + @Override + public void destroyCurrentProcess() { + SBProcess process = session.GetProcess(); + SBError error = process.Destroy(); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + } + } + + @Override + public void detachCurrentProcess() { + SBProcess process = session.GetProcess(); + SBError error = process.Detach(); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, stream.GetData()); + } + } + + public SBTarget createNullSession() { + return sbd.GetDummyTarget(); + } + + @Override + public SBTarget connectSession(String fileName) { + return sbd.CreateTarget(fileName); + } + + @Override + public Map listSessions() { + Map map = new HashMap<>(); + for (int i = 0; i < sbd.GetNumTargets(); i++) { + SBTarget target = sbd.GetTargetAtIndex(i); + map.put(DebugClient.getId(target), target); + } + return map; + } + + @Override + public void endSession(DebugEndSessionFlags flags) { + sbd.DeleteTarget(session); + } + + @Override + public void openDumpFileWide(String fileName) { + SBError error = new SBError(); + session.LoadCore(fileName, error); + if (!error.Success()) { + Msg.error(this, error.GetType() + " while loading " + fileName); + } + } + + @Override + public SBEvent waitForEvent() { + boolean eventFound = getListener().WaitForEvent(-1, event); + if (eventFound) { + return event; + } + return null; + } + + public void translateAndFireEvent(SBEvent evt) { + manager.setCurrentEvent(evt); + long type = evt.GetType(); + if (SBTarget.EventIsTargetEvent(evt)) { + if ((type & SBTarget.eBroadcastBitBreakpointChanged) != 0) { + Msg.info(this, "*** Breakpoint Changed: " + evt.GetType()); + SBBreakpoint bpt = SBBreakpoint.GetBreakpointFromEvent(evt); + processEvent(new LldbBreakpointModifiedEvent(new DebugBreakpointInfo(evt, bpt))); + } + if ((type & SBTarget.eBroadcastBitModulesLoaded) != 0) { + Msg.info(this, "*** Module Loaded: " + evt.GetType()); + processEvent(new LldbModuleLoadedEvent(new DebugModuleInfo(evt))); + } + if ((type & SBTarget.eBroadcastBitModulesUnloaded) != 0) { + Msg.info(this, "*** Module Unloaded: " + evt.GetType()); + processEvent(new LldbModuleUnloadedEvent(new DebugModuleInfo(evt))); + } + if ((type & SBTarget.eBroadcastBitWatchpointChanged) != 0) { + Msg.info(this, "*** Watchpoint Changed: " + evt.GetType()); + SBWatchpoint wpt = SBWatchpoint.GetWatchpointFromEvent(evt); + processEvent(new LldbBreakpointModifiedEvent(new DebugBreakpointInfo(evt, wpt))); + } + if ((type & SBTarget.eBroadcastBitSymbolsLoaded) != 0) { + Msg.info(this, "*** Symbols Loaded: " + evt.GetType()); + processEvent(new LldbSymbolsLoadedEvent(new DebugEventInfo(evt))); + } + } + + if (SBProcess.EventIsProcessEvent(evt)) { + DebugProcessInfo info = new DebugProcessInfo(evt); + if ((type & SBProcess.eBroadcastBitStateChanged) != 0) { + Msg.info(this, "*** State Changed: " + evt.GetType()); // Seen & handled + processEvent(new LldbStateChangedEvent(info)); + } + if ((type & SBProcess.eBroadcastBitInterrupt) != 0) { + Msg.info(this, "*** Interrupt: " + evt.GetType()); + processEvent(new LldbInterruptEvent(info)); + } + if ((type & SBProcess.eBroadcastBitSTDOUT) != 0) { + Msg.info(this, "*** Console STDOUT: " + evt.GetType()); + processEvent(new LldbConsoleOutputEvent(info)); + } + if ((type & SBProcess.eBroadcastBitSTDERR) != 0) { + Msg.info(this, "*** Console STDERR: " + evt.GetType()); + processEvent(new LldbConsoleOutputEvent(info)); + } + if ((type & SBProcess.eBroadcastBitProfileData) != 0) { + Msg.info(this, "*** Profile Data Added: " + evt.GetType()); + processEvent(new LldbProfileDataEvent(info)); + } + if ((type & SBProcess.eBroadcastBitStructuredData) != 0) { + Msg.info(this, "*** Structured Data Added: " + evt.GetType()); + processEvent(new LldbStructuredDataEvent(info)); + } + } + + if (SBThread.EventIsThreadEvent(evt)) { + DebugThreadInfo info = new DebugThreadInfo(evt); + if ((type & SBThread.eBroadcastBitStackChanged) != 0) { + Msg.info(this, "*** Stack Changed: " + evt.GetType()); + processEvent(new LldbThreadStackChangedEvent(info)); + } + if ((type & SBThread.eBroadcastBitThreadSuspended) != 0) { + Msg.info(this, "*** Thread Suspended: " + evt.GetType()); + processEvent(new LldbThreadSuspendedEvent(info)); + } + if ((type & SBThread.eBroadcastBitThreadResumed) != 0) { + Msg.info(this, "*** Thread Resumed: " + evt.GetType()); + processEvent(new LldbThreadResumedEvent(info)); + } + if ((type & SBThread.eBroadcastBitSelectedFrameChanged) != 0) { + Msg.info(this, "*** Frame Selected: " + evt.GetType()); + processEvent(new LldbSelectedFrameChangedEvent(info)); + } + if ((type & SBThread.eBroadcastBitThreadSelected) != 0) { + Msg.info(this, "*** Thread Selected: " + evt.GetType()); + processEvent(new LldbThreadSelectedEvent(info)); + } + } + if (SBBreakpoint.EventIsBreakpointEvent(evt)) { + BreakpointEventType btype = SBBreakpoint.GetBreakpointEventTypeFromEvent(evt); + SBBreakpoint bpt = SBBreakpoint.GetBreakpointFromEvent(evt); + DebugBreakpointInfo info = new DebugBreakpointInfo(evt, bpt); + if (btype.equals(BreakpointEventType.eBreakpointEventTypeAdded)) { + Msg.info(this, "*** Breakpoint Added: " + bpt.GetID()); // Seen & handled + processEvent(new LldbBreakpointCreatedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeAutoContinueChanged)) { + Msg.info(this, "*** Breakpoint Auto Continue: " + bpt.GetID()); + processEvent(new LldbBreakpointAutoContinueChangedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeCommandChanged)) { + Msg.info(this, "*** Breakpoint Command Changed: " + bpt.GetID()); + processEvent(new LldbBreakpointCommandChangedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeConditionChanged)) { + Msg.info(this, "*** Breakpoint Condition Changed: " + bpt.GetID()); + processEvent(new LldbBreakpointConditionChangedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeDisabled)) { + Msg.info(this, "*** Breakpoint Disabled: " + bpt.GetID()); + processEvent(new LldbBreakpointDisabledEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeEnabled)) { + Msg.info(this, "*** Breakpoint Enabled: " + bpt.GetID()); + processEvent(new LldbBreakpointEnabledEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeIgnoreChanged)) { + Msg.info(this, "*** Breakpoint Ignore Changed: " + bpt.GetID()); + processEvent(new LldbBreakpointIgnoreChangedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeInvalidType)) { + Msg.info(this, "*** Breakpoint Invalid Type: " + bpt.GetID()); + processEvent(new LldbBreakpointInvalidatedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeLocationsAdded)) { + Msg.info(this, "*** Breakpoint Locations Added: " + bpt.GetID()); + processEvent(new LldbBreakpointLocationsAddedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeLocationsRemoved)) { + Msg.info(this, "*** Breakpoint Locations Removed: " + bpt.GetID()); + processEvent(new LldbBreakpointLocationsRemovedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeLocationsResolved)) { + Msg.info(this, "*** Breakpoint Locations Resolved: " + bpt.GetID()); // Seen & handled? + processEvent(new LldbBreakpointLocationsResolvedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeRemoved)) { + Msg.info(this, "*** Breakpoint Removed: " + bpt.GetID()); + processEvent(new LldbBreakpointDeletedEvent(info)); + } + if (btype.equals(BreakpointEventType.eBreakpointEventTypeThreadChanged)) { + Msg.info(this, "*** Breakpoint Thread Changed: " + bpt.GetID()); + processEvent(new LldbBreakpointThreadChangedEvent(info)); + } + } + if (SBWatchpoint.EventIsWatchpointEvent(evt)) { + WatchpointEventType wtype = SBWatchpoint.GetWatchpointEventTypeFromEvent(evt); + SBWatchpoint wpt = SBWatchpoint.GetWatchpointFromEvent(evt); + DebugBreakpointInfo info = new DebugBreakpointInfo(evt, wpt); + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeAdded)) { + Msg.info(this, "*** Watchpoint Added: " + wpt.GetID()); + processEvent(new LldbBreakpointCreatedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeCommandChanged)) { + Msg.info(this, "*** Watchpoint Command Changed: " + wpt.GetID()); + processEvent(new LldbBreakpointCommandChangedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeConditionChanged)) { + Msg.info(this, "*** Watchpoint Condition Changed: " + wpt.GetID()); + processEvent(new LldbBreakpointConditionChangedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeDisabled)) { + Msg.info(this, "*** Watchpoint Disabled: " + wpt.GetID()); + processEvent(new LldbBreakpointDisabledEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeEnabled)) { + Msg.info(this, "*** Watchpoint Enabled: " + wpt.GetID()); + processEvent(new LldbBreakpointEnabledEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeIgnoreChanged)) { + Msg.info(this, "*** Watchpoint Ignore Changed: " + wpt.GetID()); + processEvent(new LldbBreakpointIgnoreChangedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeInvalidType)) { + Msg.info(this, "*** Watchpoint Invalid Type: " + wpt.GetID()); + processEvent(new LldbBreakpointInvalidatedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeRemoved)) { + Msg.info(this, "*** Watchpoint Removed: " + wpt.GetID()); + processEvent(new LldbBreakpointDeletedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeThreadChanged)) { + Msg.info(this, "*** Watchpoint Thread Changed: " + wpt.GetID()); + processEvent(new LldbBreakpointThreadChangedEvent(info)); + } + if (wtype.equals(WatchpointEventType.eWatchpointEventTypeTypeChanged)) { + Msg.info(this, "*** Watchpoint Type Changed: " + wpt.GetID()); + processEvent(new LldbBreakpointTypeChangedEvent(info)); + } + } + } + + @Override + public void processEvent(LldbEvent lldbEvt) { + manager.processEvent(lldbEvt); + } + + @Override + public DebugStatus getExecutionStatus() { + StateType state = manager.getState(); + return DebugStatus.fromArgument(state); + } + + @Override + public void setOutputCallbacks(DebugOutputCallbacks cb) { + this.ocb = cb; + } + + @Override + public boolean getInterrupt() { + return false; + } + + @Override + public void setManager(LldbManager manager) { + this.manager = manager; + } + + @Override + public void addBroadcaster(Object object) { + if (object instanceof SBCommandInterpreter) { + SBCommandInterpreter interpreter = (SBCommandInterpreter) object; + interpreter.GetBroadcaster() + .AddListener(getListener(), ChangeSessionState.SESSION_ALL.getMask()); + } + if (object instanceof SBTarget) { + SBTarget session = (SBTarget) object; + session.GetBroadcaster() + .AddListener(getListener(), ChangeSessionState.SESSION_ALL.getMask()); + } + if (object instanceof SBProcess) { + SBProcess process = (SBProcess) object; + process.GetBroadcaster() + .AddListener(getListener(), ChangeProcessState.PROCESS_ALL.getMask()); + } + } + + @Override + public void execute(String command) { + SBCommandReturnObject res = new SBCommandReturnObject(); + cmd.HandleCommand(command, res); + if (res.GetErrorSize() > 0) { + ocb.output(DebugOutputFlags.DEBUG_OUTPUT_ERROR.ordinal(), res.GetError()); + } + if (res.GetOutputSize() > 0) { + ocb.output(DebugOutputFlags.DEBUG_OUTPUT_NORMAL.ordinal(), res.GetOutput()); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientReentrant.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientReentrant.java new file mode 100644 index 0000000000..c5146d1213 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugClientReentrant.java @@ -0,0 +1,40 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import SWIG.SBListener; + +/** + * An interface containing the subset of {@link DebugClient} methods which are reentrant. + * + * All other methods should be called only by the thread which created the client. + */ +public interface DebugClientReentrant { + /** + * Create a new client for the calling thread, connected to the same session as this client. + * + * @return the new client + */ + DebugClient createClient(); + + /** + * Get the reentrant control interface to the client + * + * @return the control interface + */ + SBListener getListener(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventCallbacks.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventCallbacks.java new file mode 100644 index 0000000000..661a0df400 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventCallbacks.java @@ -0,0 +1,118 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import java.lang.annotation.*; + +import agent.lldb.lldb.DebugClient.*; +import ghidra.comm.util.BitmaskSet; +import ghidra.comm.util.BitmaskUniverse; + +/** + * The interface for receiving event callbacks + */ +public interface DebugEventCallbacks { + public static enum DebugEvent implements BitmaskUniverse { + BREAKPOINT(1 << 0), // + EXCEPTION(1 << 1), // + CREATE_THREAD(1 << 2), // + EXIT_THREAD(1 << 3), // + CREATE_PROCESS(1 << 4), // + EXIT_PROCESS(1 << 5), // + LOAD_MODULE(1 << 6), // + UNLOAD_MODULE(1 << 7), // + SYSTEM_ERROR(1 << 8), // + SESSION_STATUS(1 << 9), // + CHANGE_SESSION_STATE(1 << 10), // + CHANGE_PROCESS_STATE(1 << 11), // + CHANGE_THREAD_STATE(1 << 12), // + CREATE_SESSION(1 << 13), // + EXIT_SESSION(1 << 14) // + ; + + private DebugEvent(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + /** + * An annotation for marking each callback with its interest flag. + */ + @Target(ElementType.METHOD) + @Retention(RetentionPolicy.RUNTIME) + static @interface ForInterest { + /** + * The flag corresponding to the annotated callback method + * + * @return the flag + */ + DebugEvent value(); + } + + BitmaskSet getInterestMask(); + + @ForInterest(DebugEvent.BREAKPOINT) + DebugStatus breakpoint(DebugBreakpoint bp); + + //@ForInterest(DebugEvent.EXCEPTION) + //DebugStatus exception(DebugExceptionRecord64 exception, boolean firstChance); + + @ForInterest(DebugEvent.CREATE_THREAD) + DebugStatus createThread(DebugThreadInfo debugThreadInfo); + + @ForInterest(DebugEvent.EXIT_THREAD) + DebugStatus exitThread(int exitCode); + + @ForInterest(DebugEvent.CREATE_PROCESS) + DebugStatus createProcess(DebugProcessInfo debugProcessInfo); + + @ForInterest(DebugEvent.EXIT_PROCESS) + DebugStatus exitProcess(int exitCode); + + @ForInterest(DebugEvent.CREATE_SESSION) + DebugStatus createSession(DebugSessionInfo debugSessionInfo); + + @ForInterest(DebugEvent.EXIT_SESSION) + DebugStatus exitSession(int exitCode); + + @ForInterest(DebugEvent.LOAD_MODULE) + DebugStatus loadModule(DebugModuleInfo debugModuleInfo); + + @ForInterest(DebugEvent.UNLOAD_MODULE) + DebugStatus unloadModule(String imageBaseName, long baseOffset); + + @ForInterest(DebugEvent.SYSTEM_ERROR) + DebugStatus systemError(int error, int level); + + @ForInterest(DebugEvent.SESSION_STATUS) + DebugStatus sessionStatus(SessionStatus status); + + @ForInterest(DebugEvent.CHANGE_SESSION_STATE) + DebugStatus changeSessionState(BitmaskSet flags); + + @ForInterest(DebugEvent.CHANGE_PROCESS_STATE) + DebugStatus changeProcessState(BitmaskSet flags); + + @ForInterest(DebugEvent.CHANGE_THREAD_STATE) + DebugStatus changeThreadState(BitmaskSet flags); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventInfo.java new file mode 100644 index 0000000000..a4f45d7957 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugEventInfo.java @@ -0,0 +1,58 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import SWIG.*; +import ghidra.comm.util.BitmaskSet; + +/** + * Information about an event (target, process, or thread). + */ +public class DebugEventInfo { + + public SBEvent event; + public Long id; + + public DebugEventInfo(SBEvent event) { + this.event = event; + this.id = event.GetType(); + } + + @Override + public String toString() { + return Long.toHexString(id); + } + + public BitmaskSet getFlags() { + if (SBTarget.EventIsTargetEvent(event)) { + BitmaskSet flags = + new BitmaskSet<>(DebugClient.ChangeSessionState.class, event.GetType()); + return flags; + } + if (SBProcess.EventIsProcessEvent(event)) { + BitmaskSet flags = + new BitmaskSet<>(DebugClient.ChangeProcessState.class, event.GetType()); + return flags; + } + if (SBThread.EventIsThreadEvent(event)) { + BitmaskSet flags = + new BitmaskSet<>(DebugClient.ChangeThreadState.class, event.GetType()); + return flags; + } + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugModuleInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugModuleInfo.java new file mode 100644 index 0000000000..8febd69e94 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugModuleInfo.java @@ -0,0 +1,93 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.*; + +/** + * Information about a module (program or library image). + * + * The fields correspond to the parameters taken by {@code LoadModule} of + * {@code IDebugEventCallbacks}. They also appear as a subset of parameters taken by + * {@code CreateProcess} of {@code IDebugEventCallbacks}. + */ +public class DebugModuleInfo { + + public SBEvent event; + private SBProcess process; + private long numModules; + private Map modules = new HashMap<>(); + + public DebugModuleInfo(SBEvent event) { + this.event = event; + numModules = SBTarget.GetNumModulesFromEvent(event); + for (int i = 0; i < numModules; i++) { + SBModule module = SBTarget.GetModuleAtIndexFromEvent(i, event); + modules.put(i, module); + } + } + + public DebugModuleInfo(SBProcess process, SBModule module) { + this.process = process; + this.event = null; + numModules = 1; + modules.put(0, module); + } + + public Long getNumberOfModules() { + return numModules; + } + + public SBModule getModule(int index) { + return modules.get(index); + } + + public String toString(int index) { + SBModule module = modules.get(index); + return module.toString(); + } + + public String getModuleName(int index) { + SBModule module = modules.get(index); + return DebugClient.getId(module); + } + + public void setModuleName(int index, String moduleName) { + SBModule module = modules.get(index); + SBFileSpec filespec = module.GetFileSpec(); + filespec.SetFilename(moduleName); + } + + public String getImageName(int index) { + SBModule module = modules.get(index); + SBFileSpec filespec = module.GetFileSpec(); + return filespec.GetDirectory() + ":" + filespec.GetFilename(); + } + + public void setImageName(int index, String dirName, String imageName) { + SBModule module = modules.get(index); + SBFileSpec filespec = module.GetFileSpec(); + filespec.SetDirectory(dirName); + filespec.SetFilename(imageName); + } + + public SBProcess getProcess() { + return event != null ? SBProcess.GetProcessFromEvent(event) : process; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugOutputCallbacks.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugOutputCallbacks.java new file mode 100644 index 0000000000..b8cf326664 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugOutputCallbacks.java @@ -0,0 +1,24 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +/** + * The interface for receiving output callbacks + */ +@FunctionalInterface +public interface DebugOutputCallbacks { + void output(int mask, String text); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugProcessInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugProcessInfo.java new file mode 100644 index 0000000000..63a26b9588 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugProcessInfo.java @@ -0,0 +1,56 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import SWIG.*; +import ghidra.comm.util.BitmaskSet; + +/** + * Information about a module (program or library image). + * + * The fields correspond to the parameters taken by {@code LoadModule} of + * {@code IDebugEventCallbacks}. They also appear as a subset of parameters taken by + * {@code CreateProcess} of {@code IDebugEventCallbacks}. + */ +public class DebugProcessInfo { + + public SBEvent event; + public SBProcess process; + public StateType state; + public String id; + + public DebugProcessInfo(SBEvent event) { + this.event = event; + this.process = SBProcess.GetProcessFromEvent(event); + this.state = SBProcess.GetStateFromEvent(event); + this.id = DebugClient.getId(process); + } + + public DebugProcessInfo(SBProcess process) { + this.process = process; + this.state = process.GetState(); + this.id = DebugClient.getId(process); + } + + public String toString() { + return id; + } + + public BitmaskSet getFlags() { + return new BitmaskSet<>(DebugClient.ChangeProcessState.class, event.GetType()); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugRegisters.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugRegisters.java new file mode 100644 index 0000000000..3f12947c37 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugRegisters.java @@ -0,0 +1,162 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + +import agent.lldb.lldb.DebugValue.DebugValueType; +import ghidra.comm.util.BitmaskSet; +import ghidra.comm.util.BitmaskUniverse; + +/** + * A wrapper for {@code IDebugRegisters} and its newer variants. + */ +public interface DebugRegisters { + public static enum DebugRegisterSource { + DEBUG_REGSRC_DEBUGGEE, // + DEBUG_REGSRC_EXPLICIT, // + DEBUG_REGSRC_FRAME, // + ; + } + + public static enum DebugRegisterFlags implements BitmaskUniverse { + SUB_REGISTER(1 << 0), // + ; + + private DebugRegisterFlags(int mask) { + this.mask = mask; + } + + private final int mask; + + @Override + public long getMask() { + return mask; + } + } + + public static class DebugRegisterDescription { + public final String name; + public final int index; + public final DebugValueType type; + public final Set flags; + public final int subregMaster; + public final int subregLengthBits; + public final long subregMask; + public final int subregShift; + + public DebugRegisterDescription(String name, int index, DebugValueType type, + BitmaskSet flags, int subregMaster, int subregLengthBits, + long subregMask, int subregShift) { + this.name = name; + this.index = index; + this.type = type; + this.flags = Collections.unmodifiableSet(flags); + this.subregMaster = subregMaster; + this.subregLengthBits = subregLengthBits; + this.subregMask = subregMask; + this.subregShift = subregShift; + } + + @Override + public String toString() { + return String.format( + "<%s: name='%s' index=%d type=%s flags=%s subregMaster=%d subregLengthBits=%d" + + " subregMask=%x subregShift=%d>", + getClass().getSimpleName(), name, index, type, flags, subregMaster, + subregLengthBits, subregMask, subregShift); + } + } + + int getNumberRegisters(); + + DebugRegisterDescription getDescription(int registerNumber); + + /** + * A shortcut to get all register descriptions for the current process. + * + * Uses {@link #getNumberRegisters()} and {@link #getDescription(int)} to retrieve all + * descriptions for the current process. + * + * @return the list of register descriptions + */ + default Set getAllDescriptions() { + Set result = new LinkedHashSet<>(); + int count = getNumberRegisters(); + for (int i = 0; i < count; i++) { + result.add(getDescription(i)); + } + return result; + } + + int getIndexByName(String name); + + /** + * A shortcut to get many register indices in one call. + * + * Uses {@link #getIndexByName(String)}. + * + * @param names the names whose indices to get + * @return the indices in respective order to the given names + */ + default int[] getIndicesByNames(String... names) { + int[] indices = new int[names.length]; + for (int i = 0; i < names.length; i++) { + indices[i] = getIndexByName(names[i]); + } + return indices; + } + + DebugValue getValue(int index); + + Map getValues(DebugRegisterSource source, Collection indices); + + /** + * A shortcut to get a register value by name. + * + * Uses {@link #getIndexByName(String)} followed by {@link #getValue(int)}. + * + * @param name the name of the register + * @return the value + */ + default DebugValue getValueByName(String name) { + int indexByName = getIndexByName(name); + if (indexByName >= 0) { + return getValue(indexByName); + } + return null; + } + + void setValue(int index, DebugValue value); + + void setValues(DebugRegisterSource source, Map values); + + /** + * A shortcut to set a register value by name. + * + * Uses {@link #getIndexByName(String)} followed by {@link #setValue(int, DebugValue)}. + * + * @param name the name of the register + * @param value the desired value + */ + default void setValueByName(String name, DebugValue value) { + setValue(getIndexByName(name), value); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugServerId.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugServerId.java new file mode 100644 index 0000000000..55bcfec418 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugServerId.java @@ -0,0 +1,58 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +/** + * The ID of a debug server. + * + * Each server to which a client is connected is assigned a server ID. The local server, to which + * every client is connected by default, has the ID 0. This is essentially just a boxed integer, but + * having an explicit data type prevents confusion with other integral values. + */ +public class DebugServerId implements Comparable { + public final long id; + + public DebugServerId(long id) { + this.id = id; + } + + @Override + public int hashCode() { + return Long.hashCode(id); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof DebugServerId)) { + return false; + } + DebugServerId that = (DebugServerId) obj; + if (this.id != that.id) { + return false; + } + return true; + } + + @Override + public int compareTo(DebugServerId that) { + return Long.compare(this.id, that.id); + } + + @Override + public String toString() { + return ""; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugSessionInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugSessionInfo.java new file mode 100644 index 0000000000..ccdc736134 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugSessionInfo.java @@ -0,0 +1,54 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import SWIG.SBEvent; +import SWIG.SBTarget; +import ghidra.comm.util.BitmaskSet; + +/** + * Information about a session. + * + * The fields correspond to the parameters taken by {@code LoadModule} of + * {@code IDebugEventCallbacks}. They also appear as a subset of parameters taken by + * {@code CreateProcess} of {@code IDebugEventCallbacks}. + */ +public class DebugSessionInfo { + + public SBEvent event; + public SBTarget session; + public String id; + + public DebugSessionInfo(SBEvent event) { + this.event = event; + this.session = SBTarget.GetTargetFromEvent(event); + this.id = DebugClient.getId(session); + } + + public DebugSessionInfo(SBTarget session) { + this.event = null; + this.session = session; + this.id = DebugClient.getId(session); + } + + public String toString() { + return id; + } + + public BitmaskSet getFlags() { + return new BitmaskSet<>(DebugClient.ChangeSessionState.class, event.GetType()); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugThreadInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugThreadInfo.java new file mode 100644 index 0000000000..eb5cbc1b24 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugThreadInfo.java @@ -0,0 +1,55 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import SWIG.*; +import ghidra.comm.util.BitmaskSet; + +/** + * Information about a module (program or library image). + * + * The fields correspond to the parameters taken by {@code LoadModule} of + * {@code IDebugEventCallbacks}. They also appear as a subset of parameters taken by + * {@code CreateProcess} of {@code IDebugEventCallbacks}. + */ +public class DebugThreadInfo { + + public SBEvent event; + public SBThread thread; + public SBFrame frame; + public String id; + + public DebugThreadInfo(SBEvent event) { + this.event = event; + this.thread = SBThread.GetThreadFromEvent(event); + this.frame = SBThread.GetStackFrameFromEvent(event); + this.id = DebugClient.getId(thread); + } + + public DebugThreadInfo(SBThread thread) { + this.thread = thread; + this.frame = thread.GetSelectedFrame(); + this.id = DebugClient.getId(thread); + } + + public String toString() { + return id; + } + + public BitmaskSet getFlags() { + return new BitmaskSet<>(DebugClient.ChangeThreadState.class, event.GetType()); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugValue.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugValue.java new file mode 100644 index 0000000000..06f04bb8e6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/DebugValue.java @@ -0,0 +1,452 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import java.lang.annotation.*; +import java.lang.reflect.InvocationTargetException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.Arrays; + +import ghidra.util.NumericUtilities; + +//@ForDebugValueType(DebugValueType.INVALID) +public interface DebugValue { + @Retention(RetentionPolicy.RUNTIME) + @Target(ElementType.TYPE) + public static @interface ForDebugValueType { + DebugValueType value(); + } + + public static enum DebugValueType { + INVALID(0), // + INT8(Byte.SIZE), // + INT16(Short.SIZE), // + INT32(Integer.SIZE), // + INT64(Long.SIZE), // + FLOAT32(Float.SIZE), // + FLOAT64(Double.SIZE), // + FLOAT80(80), // + FLOAT82(82), // + FLOAT128(128), // + VECTOR64(64), // + VECTOR128(128), // + ; + + private static final Class[] CLASSES; + + static { + @SuppressWarnings("unchecked") + Class[] supressed = new Class[DebugValueType.values().length]; + CLASSES = supressed; + for (Class cls : DebugValue.class.getDeclaredClasses()) { + if (!DebugValue.class.isAssignableFrom(cls)) { + continue; + } + Class dvCls = cls.asSubclass(DebugValue.class); + DebugValueType type = getDebugValueTypeForClass(dvCls); + CLASSES[type.ordinal()] = dvCls; + } + } + + public static DebugValueType getDebugValueTypeForClass(Class cls) { + ForDebugValueType annot = cls.getAnnotation(ForDebugValueType.class); + if (annot == null) { + throw new AssertionError( + "INTERNAL: Missing ForDebugValueType annotation on " + cls); + } + return annot.value(); + } + + public final int bitLength; + public final int byteLength; + + private DebugValueType(int bitLength) { + this.bitLength = bitLength; + this.byteLength = (bitLength + 7) / 8; + } + + public Class getDebugValueClass() { + return CLASSES[ordinal()]; + } + + public DebugValue decodeBytes(byte[] bytes) throws IllegalArgumentException { + try { + return CLASSES[ordinal()].getConstructor(byte[].class).newInstance(bytes); + } + catch (InstantiationException | IllegalAccessException | IllegalArgumentException + | NoSuchMethodException | SecurityException e) { + throw new AssertionError(e); + } + catch (InvocationTargetException e) { + if (e.getCause() instanceof IllegalArgumentException) { + throw (IllegalArgumentException) e.getCause(); + } + throw new AssertionError(e); + } + } + } + + @ForDebugValueType(DebugValueType.INT8) + public static class DebugInt8Value implements DebugValue { + private final byte value; + + public DebugInt8Value(byte value) { + this.value = value; + } + + public DebugInt8Value(byte[] bytes) { + if (bytes.length != 1) { + throw new IllegalArgumentException("Must have exactly 1 byte"); + } + this.value = bytes[0]; + } + + public byte byteValue() { + return value; + } + + @Override + public byte[] encodeAsBytes() { + return new byte[] { value }; + } + + @Override + public String toString() { + return "byte " + Integer.toHexString(value) + "h"; + } + } + + @ForDebugValueType(DebugValueType.INT16) + public static class DebugInt16Value implements DebugValue { + private final short value; + + public DebugInt16Value(short value) { + this.value = value; + } + + public DebugInt16Value(byte[] bytes) { + if (bytes.length != Short.BYTES) { + throw new IllegalArgumentException("Must have exactly " + Short.BYTES + " bytes"); + } + ByteBuffer buf = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN); + this.value = buf.getShort(); + } + + public short shortValue() { + return value; + } + + @Override + public byte[] encodeAsBytes() { + ByteBuffer buf = ByteBuffer.allocate(Short.BYTES).order(ByteOrder.BIG_ENDIAN); + buf.putShort(value); + return buf.array(); + } + + @Override + public String toString() { + return "word " + Integer.toHexString(value) + "h"; + } + } + + @ForDebugValueType(DebugValueType.INT32) + public static class DebugInt32Value implements DebugValue { + private final int value; + + public DebugInt32Value(int value) { + this.value = value; + } + + public DebugInt32Value(byte[] bytes) { + if (bytes.length != Integer.BYTES) { + throw new IllegalArgumentException("Must have exactly " + Integer.BYTES + " bytes"); + } + ByteBuffer buf = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN); + this.value = buf.getInt(); + } + + public int intValue() { + return value; + } + + @Override + public byte[] encodeAsBytes() { + ByteBuffer buf = ByteBuffer.allocate(Integer.BYTES).order(ByteOrder.BIG_ENDIAN); + buf.putInt(value); + return buf.array(); + } + + @Override + public String toString() { + return "dword " + Integer.toHexString(value) + "h"; + } + } + + @ForDebugValueType(DebugValueType.INT64) + public static class DebugInt64Value implements DebugValue { + private final long value; + + public DebugInt64Value(long value) { + this.value = value; + } + + public DebugInt64Value(byte[] bytes) { + if (bytes.length != Long.BYTES) { + throw new IllegalArgumentException("Must have exactly " + Long.BYTES + " bytes"); + } + ByteBuffer buf = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN); + this.value = buf.getLong(); + } + + public long longValue() { + return value; + } + + @Override + public byte[] encodeAsBytes() { + ByteBuffer buf = ByteBuffer.allocate(Long.BYTES).order(ByteOrder.BIG_ENDIAN); + buf.putLong(value); + return buf.array(); + } + + @Override + public String toString() { + return "qword " + Long.toHexString(value) + "h"; + } + } + + @ForDebugValueType(DebugValueType.FLOAT32) + public static class DebugFloat32Value implements DebugValue { + private final float value; + + public DebugFloat32Value(float value) { + this.value = value; + } + + public DebugFloat32Value(byte[] bytes) { + if (bytes.length != Float.BYTES) { + throw new IllegalArgumentException("Must have exactly " + Float.BYTES + " bytes"); + } + ByteBuffer buf = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN); + this.value = buf.getFloat(); + } + + public float floatValue() { + return value; + } + + @Override + public byte[] encodeAsBytes() { + ByteBuffer buf = ByteBuffer.allocate(Float.BYTES).order(ByteOrder.BIG_ENDIAN); + buf.putFloat(value); + return buf.array(); + } + + @Override + public String toString() { + return "f32 " + value; + } + } + + @ForDebugValueType(DebugValueType.FLOAT64) + public static class DebugFloat64Value implements DebugValue { + private final double value; + + public DebugFloat64Value(double value) { + this.value = value; + } + + public DebugFloat64Value(byte[] bytes) { + if (bytes.length != Double.BYTES) { + throw new IllegalArgumentException("Must have exactly " + Double.BYTES + " bytes"); + } + ByteBuffer buf = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN); + this.value = buf.getDouble(); + } + + public double doubleValue() { + return value; + } + + @Override + public byte[] encodeAsBytes() { + ByteBuffer buf = ByteBuffer.allocate(Double.BYTES).order(ByteOrder.BIG_ENDIAN); + buf.putDouble(value); + return buf.array(); + } + + @Override + public String toString() { + return "f64 " + value; + } + } + + /** + * Extended-precision float + */ + @ForDebugValueType(DebugValueType.FLOAT80) + public static class DebugFloat80Value implements DebugValue { + private final byte[] bytes; + + public DebugFloat80Value(byte[] bytes) { + if (bytes.length != 10) { + throw new IllegalArgumentException("Must have exactly 10 bytes"); + } + this.bytes = Arrays.copyOf(bytes, 10); + } + + public byte[] bytes() { + return bytes; + } + + @Override + public byte[] encodeAsBytes() { + return bytes; + } + + @Override + public String toString() { + return "f80 " + NumericUtilities.convertBytesToString(bytes); + } + } + + /** + * Specific to IA-64 (Itanium) floating-point registers + * + * 17-bit exponent, 64-bit fraction. Not sure how it's aligned in memory, though. + */ + @ForDebugValueType(DebugValueType.FLOAT82) + public static class DebugFloat82Value implements DebugValue { + private final byte[] bytes; + + public DebugFloat82Value(byte[] bytes) { + if (bytes.length != 11) { + throw new IllegalArgumentException("Must have exactly 11 bytes"); + } + this.bytes = Arrays.copyOf(bytes, 11); + } + + public byte[] bytes() { + return bytes; + } + + @Override + public byte[] encodeAsBytes() { + return bytes; + } + + @Override + public String toString() { + return "f82 " + NumericUtilities.convertBytesToString(bytes); + } + } + + /** + * Quadruple-precision float + */ + @ForDebugValueType(DebugValueType.FLOAT128) + public static class DebugFloat128Value implements DebugValue { + private final byte[] bytes; + + public DebugFloat128Value(byte[] bytes) { + if (bytes.length != 16) { + throw new IllegalArgumentException("Must have exactly 16 bytes"); + } + this.bytes = Arrays.copyOf(bytes, 16); + } + + public byte[] bytes() { + return bytes; + } + + @Override + public byte[] encodeAsBytes() { + return bytes; + } + + @Override + public String toString() { + return "f128 " + NumericUtilities.convertBytesToString(bytes); + } + } + + @ForDebugValueType(DebugValueType.VECTOR64) + public static class DebugVector64Value implements DebugValue { + private final byte[] bytes; + + public DebugVector64Value(byte[] bytes) { + if (bytes.length != 8) { + throw new IllegalArgumentException("Must have exactly 8 bytes"); + } + this.bytes = Arrays.copyOf(bytes, 8); + } + + public byte[] vi4() { + return bytes; + } + + @Override + public byte[] encodeAsBytes() { + return bytes; + } + + @Override + public String toString() { + return "vec64 " + NumericUtilities.convertBytesToString(bytes); + } + } + + @ForDebugValueType(DebugValueType.VECTOR128) + public static class DebugVector128Value implements DebugValue { + private final byte[] bytes; + + public DebugVector128Value(byte[] bytes) { + if (bytes.length != 16) { + throw new IllegalArgumentException( + "Must have exactly 16 bytes. got " + bytes.length); + } + this.bytes = Arrays.copyOf(bytes, 16); + } + + public byte[] vi8() { + return bytes; + } + + @Override + public byte[] encodeAsBytes() { + return bytes; + } + + @Override + public String toString() { + return "vec128 " + NumericUtilities.convertBytesToString(bytes); + } + } + + default DebugValueType getValueType() { + return DebugValueType.getDebugValueTypeForClass(getClass()); + } + + /** + * TODO: Document me + * + * Encodes the value as an array of bytes in big-endian order + * + * @return the encoded value + */ + public byte[] encodeAsBytes(); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/util/DebugEventCallbacksAdapter.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/util/DebugEventCallbacksAdapter.java new file mode 100644 index 0000000000..0f7d241de9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/lldb/util/DebugEventCallbacksAdapter.java @@ -0,0 +1,139 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb.util; + +import java.lang.reflect.Method; + +import agent.lldb.lldb.DebugBreakpoint; +import agent.lldb.lldb.DebugClient.ChangeProcessState; +import agent.lldb.lldb.DebugClient.ChangeSessionState; +import agent.lldb.lldb.DebugClient.ChangeThreadState; +import agent.lldb.lldb.DebugClient.DebugStatus; +import agent.lldb.lldb.DebugClient.SessionStatus; +import agent.lldb.lldb.DebugEventCallbacks; +import agent.lldb.lldb.DebugModuleInfo; +import agent.lldb.lldb.DebugProcessInfo; +import agent.lldb.lldb.DebugSessionInfo; +import agent.lldb.lldb.DebugThreadInfo; +import ghidra.comm.util.BitmaskSet; + +/** + * A convenient abstract implementation of {@link DebugEventCallbacks} + * + * This implementation automatically computes the value for {@link #getInterestMask()} based on the + * overridden methods. The default implementations all return {@link DebugStatus#NO_CHANGE}, should + * they happen to be called. + */ +public class DebugEventCallbacksAdapter implements DebugEventCallbacks { + + private BitmaskSet interests = new BitmaskSet<>(DebugEvent.class); + + public DebugEventCallbacksAdapter() { + try { + // Compute the interest mask based on methods that are overridden + for (Method im : DebugEventCallbacks.class.getDeclaredMethods()) { + Method m = this.getClass().getMethod(im.getName(), im.getParameterTypes()); + if (m.getDeclaringClass() == DebugEventCallbacksAdapter.class) { + continue; + } + // The interface method is overridden, grab the annotation from the interface + ForInterest fi = im.getAnnotation(ForInterest.class); + if (fi == null) { + throw new AssertionError("No ForInterest annotation present on " + m); + } + interests.add(fi.value()); + } + } + catch (NoSuchMethodException e) { + throw new AssertionError(e); + } + } + + @Override + public BitmaskSet getInterestMask() { + return interests; + } + + @Override + public DebugStatus breakpoint(DebugBreakpoint bp) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus createThread(DebugThreadInfo debugThreadInfo) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus exitThread(int exitCode) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus createProcess(DebugProcessInfo debugProcessInfo) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus exitProcess(int exitCode) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus createSession(DebugSessionInfo debugSessionInfo) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus exitSession(int exitCode) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus loadModule(DebugModuleInfo debugModuleInfo) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus unloadModule(String imageBaseName, long baseOffset) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus systemError(int error, int level) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus sessionStatus(SessionStatus status) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus changeSessionState(BitmaskSet flags) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus changeProcessState(BitmaskSet flags) { + return DebugStatus.NO_CHANGE; + } + + @Override + public DebugStatus changeThreadState(BitmaskSet flags) { + return DebugStatus.NO_CHANGE; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCause.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCause.java new file mode 100644 index 0000000000..ddbc0ccd7e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCause.java @@ -0,0 +1,31 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +/** + * Identifies the cause of an event emitted by lldb + * + * This is not a concept native to lldb. Rather, it is a means to distinguish events that result + * from commands issued by the {@link LldbManager} from those issued by the user or some other means. + * For example, a call to {@link LldbManager#addProcess()} will emit a + * {@link LldbEventsListener#processAdded(LldbProcess, LldbCause)} event, identifying the + * {@link LldbPendingCommand} as the cause. + */ +public interface LldbCause { + public enum Causes implements LldbCause { + UNCLAIMED; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCommand.java new file mode 100644 index 0000000000..52a654a17b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbCommand.java @@ -0,0 +1,76 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +import java.util.concurrent.CompletableFuture; + +import SWIG.StateType; +import agent.lldb.manager.cmd.LldbPendingCommand; + +/** + * The interface for lldb command implementations + * + * Commands are executed by lldb in serial. In order to distinguish the likely cause of events, the + * manager will wait to issue each command until it has seen a prompt. Thus, commands are queued up, + * and the manager uses the {@link CompletableFuture} pattern to "return" results after execution + * completes. + * + * To begin executing the command, the manager invokes the command, using {@link #invoke()}. Any + * event that occurs during command execution is given to + * {@link #handle(LldbEvent, LldbPendingCommand)}. The implementor then has the option to "claim" or + * "steal" the event. When claimed, any subsequent event processor or listener is provided this + * command as the event's cause. When stolen, no subsequent event processors are called. The + * implementation ought to keep a list of claimed and stolen events. Once lldb has finished executing + * the command, the manager calls {@link #complete(LldbPendingCommand)}, allowing the implementation + * to process its claimed and stolen events and return the result of the command. + * + * @param the type of object "returned" by the command + */ +public interface LldbCommand { + + /** + * Check if this command can be executed given lldb's current state + * + * @param state lldb's state + * @return true if it can be executed, false otherwise + */ + public boolean validInState(StateType state); + + /** + * Invoke the command + */ + public void invoke(); + + /** + * Handle an event that occurred during the execution of this command + * + * @param evt the event + * @param pending a copy of the executing command instance + * @return true if the command is now ready to be completed + */ + public boolean handle(LldbEvent evt, LldbPendingCommand pending); + + /** + * Called when the manager believes this command is finished executing + * + * This is presumed when the manager receives the prompt after issuing the encoded command + * + * @param pending a copy of the now-finished-executing command instance + * @return the object "returned" by the command + */ + public T complete(LldbPendingCommand pending); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEvent.java new file mode 100644 index 0000000000..184f09e5ba --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEvent.java @@ -0,0 +1,64 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +import SWIG.StateType; +import agent.lldb.manager.cmd.LldbPendingCommand; + +public interface LldbEvent { + /** + * Get the information detailing the event + * + * @return the information + */ + public T getInfo(); + + /** + * Use {@link LldbPendingCommand#claim(LldbEvent)} instead + * + * @param cause the cause + */ + public void claim(LldbPendingCommand cause); + + /** + * If claimed, get the cause of this event + * + * @return the cause + */ + public LldbCause getCause(); + + /** + * Use {@link LldbPendingCommand#steal(LldbEvent)} instead + */ + public void steal(); + + /** + * Check if this event is stolen + * + * A stolen event should not be processed further, except by the thief + * + * @return true if stolen, false otherwise + */ + public boolean isStolen(); + + /** + * If this event implies a new lldb state, get that state + * + * @return the new state, or null for no change + */ + public StateType newState(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListener.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListener.java new file mode 100644 index 0000000000..f0daf077bd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListener.java @@ -0,0 +1,229 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +import SWIG.*; +import agent.lldb.lldb.DebugModuleInfo; + +public interface LldbEventsListener { + + /** + * A session has been added + * + * @param session a handle to the new session + * @param cause the cause of this event + */ + void sessionAdded(SBTarget session, LldbCause cause); + + /** + * A session has been replaced + * + * @param session a handle to the new session + * @param cause the cause of this event + */ + void sessionReplaced(SBTarget session, LldbCause cause); + + /** + * A session has been removed + * + * @param sessionId the ID of the now-defunct session + * @param cause the cause of this event + */ + void sessionRemoved(String sessionId, LldbCause cause); + + /** + * A different session has been selected (gained focus) + * + * @param session a handle to the selected session + * @param cause the cause of this event + */ + void sessionSelected(SBTarget session, LldbCause cause); + + /** + * An Process has been added to the session + * + * @param process a handle to the new process + * @param cause the cause of this event + */ + void processAdded(SBProcess process, LldbCause cause); + + /** + * An Process has been replaced in the session + * + * @param process a handle to the new process + * @param cause the cause of this event + */ + void processReplaced(SBProcess process, LldbCause cause); + + /** + * An process has been removed from the session + * + * @param processId the ID of the now-defunct process + * @param cause the cause of this event + */ + void processRemoved(String processId, LldbCause cause); + + /** + * A different process has been selected (gained focus) + * + * @param process a handle to the selected process + * @param cause the cause of this event + */ + void processSelected(SBProcess process, LldbCause cause); + + /** + * Execution has been started in an process + * + * @param process a handle to the now-executing process + * @param cause the cause of this event + */ + void processStarted(SBProcess process, LldbCause cause); + + /** + * Execution has terminated in an process + * + * @param process a handle to the now-stopped process + * @param cause the cause of this event + */ + void processExited(SBProcess process, LldbCause cause); + + /** + * A thread has been created + * + * Use {@link LldbThread#getProcess()} to get a handle to the process in which the thread was + * created. + * + * @param thread a handle to the new thread + * @param cause the cause of this event + */ + void threadCreated(SBThread thread, LldbCause cause); + + /** + * A thread has been replaced + * + * Use {@link LldbThread#getProcess()} to get a handle to the process in which the thread was + * created. + * + * @param thread a handle to the new thread + * @param cause the cause of this event + */ + void threadReplaced(SBThread thread, LldbCause cause); + + /** + * A thread's state has changed, e.g., {@link LldbState#RUNNING} to + * {@link LldbState#STOPPED} + * + * @param thread a handle to the thread whose state has changed + * @param state the state to which the thread changed + * @param cause the cause of this event + * @param reason the reason for the state change + */ + void threadStateChanged(SBThread thread, StateType state, LldbCause cause, LldbReason reason); + + /** + * A thread has exited + * + * @param threadId the ID of the now-defuct thread + * @param process a handle to the process to which the thread belonged + * @param cause the cause of this event + */ + void threadExited(SBThread thread, SBProcess process, LldbCause cause); + + /** + * A different thread has been selected (gained focus) + * + * @param thread a handle to the selected thread + * @param frame a handle to the current frame + * @param cause the cause of this event + */ + void threadSelected(SBThread thread, SBFrame frame, LldbCause cause); + + /** + * A module has been loaded by an process + * + * @param process a handle to the process which loaded the module + * @param name the name of the module on the target + * @param cause the cause of this event + */ + void moduleLoaded(SBProcess process, DebugModuleInfo info, int index, LldbCause cause); + + /** + * A module has been unloaded from an process + * + * @param process a handle to the process which unloaded the module + * @param name the name of the module on the target + * @param cause the cause of this event + */ + void moduleUnloaded(SBProcess process, DebugModuleInfo info, int index, LldbCause cause); + + /** + * A breakpoint has been created in the session + * + * @param info information about the new breakpoint + * @param cause the cause of this event + */ + void breakpointCreated(Object info, LldbCause cause); + + /** + * A breakpoint in the session has been modified + * + * @param newInfo new information about the modified breakpoint + * @param oldInfo old information about the modified breakpoint + * @param cause the cause of this event + */ + void breakpointModified(Object info, LldbCause cause); + + /** + * A breakpoint has been deleted from the session + * + * @param info information about the now-deleted breakpoint + * @param cause the cause of this event + */ + void breakpointDeleted(Object info, LldbCause cause); + + /** + * A breakpoint was hit in the session + * + * @param info information about the breakpoint hit + * @param cause the cause of this event + */ + void breakpointHit(Object info, LldbCause cause); + + /** + * TODO: This is not yet implemented + * + * It is not clear whether lldb detects when a target writes into its own memory, or if this + * event is emitted when lldb changes the target's memory, or both. + * + * @param process the process whose memory changed + * @param addr the address of the change + * @param len the length, with the address, bounding the region of change + * @param cause the cause of this event + */ + void memoryChanged(SBProcess process, long addr, int len, LldbCause cause); + + /** + * @param output console output + * @param mask class of output + */ + void consoleOutput(String output, int mask); + + /** + * @param prompt for console output + */ + void promptChanged(String prompt); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListenerAdapter.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListenerAdapter.java new file mode 100644 index 0000000000..458b363587 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbEventsListenerAdapter.java @@ -0,0 +1,147 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +import SWIG.*; +import agent.lldb.lldb.DebugModuleInfo; + +public interface LldbEventsListenerAdapter extends LldbEventsListener { + + @Override + public default void sessionAdded(SBTarget session, LldbCause cause) { + // Extension point + } + + @Override + public default void sessionReplaced(SBTarget session, LldbCause cause) { + // Extension point + } + + @Override + public default void sessionRemoved(String sessionId, LldbCause cause) { + // Extension point + } + + @Override + public default void sessionSelected(SBTarget session, LldbCause cause) { + // Extension point + } + + @Override + public default void processAdded(SBProcess process, LldbCause cause) { + // Extension point + } + + @Override + public default void processReplaced(SBProcess process, LldbCause cause) { + // Extension point + } + + @Override + public default void processRemoved(String processId, LldbCause cause) { + // Extension point + } + + @Override + public default void processSelected(SBProcess process, LldbCause cause) { + // Extension point + } + + @Override + public default void processStarted(SBProcess process, LldbCause cause) { + // Extension point + } + + @Override + public default void processExited(SBProcess process, LldbCause cause) { + // Extension point + } + + @Override + public default void threadCreated(SBThread thread, LldbCause cause) { + // Extension point + } + + @Override + public default void threadReplaced(SBThread thread, LldbCause cause) { + // Extension point + } + + @Override + public default void threadStateChanged(SBThread thread, StateType state, LldbCause cause, + LldbReason reason) { + // Extension point + } + + @Override + public default void threadExited(SBThread thread, SBProcess process, LldbCause cause) { + // Extension point + + } + + @Override + public default void threadSelected(SBThread thread, SBFrame frame, LldbCause cause) { + // Extension point + } + + @Override + public default void moduleLoaded(SBProcess process, DebugModuleInfo info, int index, + LldbCause cause) { + // Extension point + } + + @Override + public default void moduleUnloaded(SBProcess process, DebugModuleInfo info, int index, + LldbCause cause) { + // Extension point + } + + @Override + public default void breakpointCreated(Object info, LldbCause cause) { + // Extension point + } + + @Override + public default void breakpointModified(Object info, LldbCause cause) { + // Extension point + } + + @Override + public default void breakpointDeleted(Object info, LldbCause cause) { + // Extension point + } + + @Override + public default void breakpointHit(Object info, LldbCause cause) { + // Extension point + } + + @Override + public default void memoryChanged(SBProcess process, long addr, int len, LldbCause cause) { + // Extension point + } + + @Override + public default void consoleOutput(String output, int mask) { + // Extension point + } + + @Override + public default void promptChanged(String prompt) { + // Extension point + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbManager.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbManager.java new file mode 100644 index 0000000000..4bf324eae8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbManager.java @@ -0,0 +1,434 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import org.apache.commons.lang3.tuple.Pair; + +import SWIG.*; +import agent.lldb.lldb.DebugClient.DebugStatus; +import agent.lldb.manager.LldbManager.ExecSuffix; +import agent.lldb.manager.breakpoint.LldbBreakpointInsertions; +import agent.lldb.manager.impl.LldbManagerImpl; + +public interface LldbManager extends AutoCloseable, LldbBreakpointInsertions { + + /** + * Possible values for {@link LldbThread#step(ExecSuffix)} + */ + public enum ExecSuffix { + FINISH("finish"), + NEXT("next"), + NEXT_INSTRUCTION("next-instruction"), + RETURN("return"), + STEP("step"), + STEP_INSTRUCTION("step-instruction"), + UNTIL("until"), + EXTENDED("ext"),; + + final String str; + + ExecSuffix(String str) { + this.str = str; + } + + @Override + public String toString() { + return str; + } + } + + static LldbManager newInstance() { + return new LldbManagerImpl(); + } + + /** + * Launch lldb + * + * @param args cmd plus args + * @return a future which completes when lldb is ready to accept commands + */ + CompletableFuture start(String[] args); + + /** + * Terminate lldb + */ + void terminate(); + + /** + * Check if lldb is alive + * + * Note this is not about the state of inferiors in lldb. If the lldb controlling process is + * alive, lldb is alive. + * + * @return true if lldb is alive, false otherwise + */ + boolean isRunning(); + + /** + * Add a listener for lldb's state + * + * @see #getState() + * @param listener the listener to add + */ + void addStateListener(LldbStateListener listener); + + /** + * Remove a listener for lldb's state + * + * @see #getState() + * @param listener the listener to remove + */ + void removeStateListener(LldbStateListener listener); + + /** + * Add a listener for events on processes + * + * @param listener the listener to add + */ + void addEventsListener(LldbEventsListener listener); + + /** + * Remove a listener for events on inferiors + * + * @param listener the listener to remove + */ + void removeEventsListener(LldbEventsListener listener); + + /** + * Get a thread by its lldb-assigned ID + * + * lldb numbers its threads using a global counter. These IDs are unrelated to the OS-assigned + * TID. This method can retrieve a thread by its ID no matter which inferior it belongs to. + * + * @param id the lldb-asigned thread ID + * @return a handle to the thread, if it exists + */ + SBThread getThread(SBProcess process, String id); + + /** + * Get an process by its lldb-assigned ID + * + * lldb numbers processes incrementally. All inferiors and created and destroyed by the user. + * See {@link #addProcess()}. + * + * @param id the process ID + * @return a handle to the process, if it exists + */ + SBProcess getProcess(SBTarget session, String id); + + /** + * Get an session by its lldb-assigned ID + * + * lldb numbers processes incrementally. All inferiors and created and destroyed by the user. + * See {@link #addSession()}. + * + * @param id the process ID + * @return a handle to the process, if it exists + */ + SBTarget getSession(String id); + + /** + * Get an session by its lldb-assigned ID + * + * lldb numbers processes incrementally. All inferiors and created and destroyed by the user. + * See {@link #addSession()}. + * + * @param id the process ID + * @return a handle to the process, if it exists + */ + SBModule getModule(SBTarget session, String id); + + /** + * Get all threads known to the manager + * + * This does not ask lldb to lists its known threads. Rather it returns a read-only view of the + * manager's understanding of the current threads based on its tracking of lldb events. + * + * @return a map of lldb-assigned thread IDs to corresponding thread handles + */ + Map getKnownThreads(SBProcess process); + + /** + * Get all processes known to the manager + * + * This does not ask lldb to list its processes. Rather it returns a read-only view of the + * manager's understanding of the current processes based on its tracking of lldb events. + * + * @return a map of process IDs to corresponding process handles + */ + Map getKnownProcesses(SBTarget session); + + /** + * Get all sessions known to the manager + * + * This does not ask lldb to list its processes. Rather it returns a read-only view of the + * manager's understanding of the current inferiors based on its tracking of lldb events. + * + * @return a map of session IDs to corresponding session handles + */ + Map getKnownSessions(); + + /** + * Get all sessions known to the manager + * + * This does not ask lldb to list its processes. Rather it returns a read-only view of the + * manager's understanding of the current inferiors based on its tracking of lldb events. + * + * @return a map of session IDs to corresponding session handles + */ + Map getKnownModules(SBTarget session); + + /** + * Get all breakpoints known to the manager + * + * This does not ask lldb to list its breakpoints. Rather it returns a read-only view of the + * manager's understanding of the current breakpoints based on its tracking of lldb events. + * + * @return a map of lldb-assigned breakpoint IDs to corresponding breakpoint information + */ + Map getKnownBreakpoints(SBTarget session); + + /** + * Send an interrupt to lldb regardless of other queued commands + * + * This may be useful if the manager's command queue is stalled because an inferior is running. + * + */ + void sendInterruptNow(); + + /** + * Get the state of the lldb session + * + * In all-stop mode, if any thread is running, lldb is said to be in the running state and is + * unable to process commands. Otherwise, if all threads are stopped, then lldb is said to be in + * the stopped state and can accept and process commands. This manager has not been tested in + * non-stop mode. + * + * @return the state + */ + StateType getState(); + + /** + * Add a process + * + * @return a future which completes with the handle to the new process + */ + CompletableFuture addProcess(); + + /** + * Remove a process + * + * @param process the process to remove + * @return a future which completes then lldb has executed the command + */ + CompletableFuture removeProcess(SBProcess process); + + /** + * Add a session + * + * @return a future which completes with the handle to the new process + */ + CompletableFuture addSession(); + + /** + * Execute an arbitrary CLI command, printing output to the CLI console + * + * Note: to ensure a certain thread or inferior has focus for a console command, see + * {@link LldbThread#console(String)}. + * + * @param command the command to execute + * @return a future that completes when lldb has executed the command + */ + CompletableFuture console(String command); + + /** + * Execute an arbitrary CLI command, capturing its console output + * + * The output will not be printed to the CLI console. To ensure a certain thread or inferior has + * focus for a console command, see {@link LldbThread#consoleCapture(String)} and + * {@link LldbProcess#consoleCapture(String)}. + * + * @param command the command to execute + * @return a future that completes with the captured output when lldb has executed the command + */ + CompletableFuture consoleCapture(String command); + + /** + * List lldb's threads + * + * @return a future that completes with a map of process IDs to process handles + */ + CompletableFuture> listThreads(SBProcess process); + + /** + * List lldb's processes + * + * @return a future that completes with a map of process IDs to process handles + */ + CompletableFuture> listProcesses(SBTarget session); + + /** + * List the available processes on target + * + * @return a future that completes with a list of PIDs + */ + CompletableFuture>> listAvailableProcesses(); + + /** + * List lldb's sessions + * + * @return a future that completes with a map of session IDs to session handles + */ + CompletableFuture> listSessions(); + + /** + * List lldb's stack frames + * + * @return a future that completes with a map of session IDs to session handles + */ + CompletableFuture> listStackFrames(SBThread thread); + + /** + * List lldb's stack frame register banks + * + * @return a future that completes with a map of session IDs to session handles + */ + CompletableFuture> listStackFrameRegisterBanks(SBFrame frame); + + /** + * List lldb's stack frame registers + * + * @return a future that completes with a map of session IDs to session handles + */ + CompletableFuture> listStackFrameRegisters(SBValue bank); + + /** + * List lldb's modules + * + * @return a future that completes with a map of session IDs to session handles + */ + public CompletableFuture> listModules(SBTarget session); + + /** + * List lldb's module sections + * + * @return a future that completes with a map of session IDs to session handles + */ + public CompletableFuture> listModuleSections(SBModule module); + + /** + * List lldb's module symbols + * + * @return a future that completes with a map of session IDs to session handles + */ + public CompletableFuture> listModuleSymbols(SBModule module); + + /** + * List lldb's memory + * + * @return a future that completes with a map of session IDs to session handles + */ + public CompletableFuture> listMemory(SBProcess process); + + /** + * List information for all breakpoints + * + * @return a future that completes with a list of information for all breakpoints + */ + CompletableFuture> listBreakpoints(SBTarget session); + + /** + * List information for all breakpoints + * + * @return a future that completes with a list of information for all breakpoints + */ + CompletableFuture> listBreakpointLocations(SBBreakpoint spec); + + /** + * List information for all env vars + * + * @return a future that completes with a list of information for all env vars + */ + CompletableFuture> listEnvironment(SBTarget session); + + /** + * Disable the given breakpoints + * + * This is equivalent to the CLI command {@code disable breakpoint [NUMBER]}. + * + * @param numbers the lldb-assigned breakpoint numbers + * @return a future that completes when lldb has executed the command + */ + CompletableFuture disableBreakpoints(String... ids); + + /** + * Enable the given breakpoints + * + * This is equivalent to the CLI command {@code enable breakpoint [NUMBER]}. + * + * @param numbers the lldb-assigned breakpoint numbers + * @return a future that completes when lldb has executed the command + */ + CompletableFuture enableBreakpoints(String... ids); + + /** + * Delete a breakpoint + * + * This is equivalent to the CLI command {@code delete breakpoint [NUMBER]}. + * + * @param numbers the lldb-assigned breakpoint numbers + * @return a future that completes when lldb has executed the command + */ + CompletableFuture deleteBreakpoints(String... ids); + + CompletableFuture attach(String pid); + + CompletableFuture attach(String name, boolean wait); + + CompletableFuture attach(String url, boolean wait, boolean async); + + CompletableFuture launch(String fileName, List args); + + CompletableFuture launch(Map args); + + /********** NEEDED FOR TESTING ************/ + + /** + * Returns the current process + * + * @return the current process + */ + SBProcess currentProcess(); + + CompletableFuture waitForPrompt(); + + CompletableFuture waitForEventEx(); + + CompletableFuture execute(LldbCommand cmd); + + DebugStatus processEvent(LldbEvent evt); + + DebugStatus getStatus(); + + void setCurrentEvent(SBEvent evt); + + void updateState(SBProcess process); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbReason.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbReason.java new file mode 100644 index 0000000000..92b80341ad --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbReason.java @@ -0,0 +1,44 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +public interface LldbReason { + + /** + * Reasons other than those given by LLDB + */ + enum Reasons implements LldbReason { + /** + * No reason was given + */ + NONE, + /** + * A reason was given, but the manager does not understand it + */ + UNKNOWN; + + @Override + public String desc() { + return "Unknown"; + } + } + + static LldbReason getReason(String info) { + return Reasons.UNKNOWN; + } + + public String desc(); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbStateListener.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbStateListener.java new file mode 100644 index 0000000000..cc736e2061 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/LldbStateListener.java @@ -0,0 +1,37 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager; + +import SWIG.StateType; +import ghidra.util.TriConsumer; + +/** + * A listener for changes in LLDB's state + */ +public interface LldbStateListener extends TriConsumer { + /** + * The state has changed because of the given cause + * + * @param state the new state + * @param cause the reason for the change + */ + void stateChanged(StateType state, LldbCause cause); + + @Override + default void accept(StateType oldVal, StateType newVal, LldbCause u) { + stateChanged(newVal, u); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointDisp.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointDisp.java new file mode 100644 index 0000000000..ecd141166f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointDisp.java @@ -0,0 +1,32 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.breakpoint; + +public enum LldbBreakpointDisp { + /** + * The breakpoint should remain until deleted by the user + */ + KEEP, + /** + * The breakpoint should be deleted once it is hit + */ + DEL, + /** + * Some disposition unknown to the manager + */ + OTHER; + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInfo.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInfo.java new file mode 100644 index 0000000000..3b8ac792e3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInfo.java @@ -0,0 +1,212 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.breakpoint; + +import java.util.*; + +import SWIG.*; +import agent.lldb.lldb.DebugBreakpoint.BreakAccess; +import agent.lldb.lldb.DebugClient; +import ghidra.comm.util.BitmaskSet; + +public class LldbBreakpointInfo { + + private Object info; + private SBProcess proc; + + private Long offset; + private String expression; + private final List locations; + + /** + * Construct lldb breakpoint information + * + * @param number the lldb-assigned breakpoint number + * @param type the type of breakpoint + * @param disp the breakpoint disposition + * @param loc the location of the breakpoint + * @param pending if pending, the location that is not yet resolved + * @param enabled true if the breakpoint is enabled, false otherwise + * @param times the number of times the breakpoint has been hit + * @param locations the resolved address(es) of this breakpoint + */ + public LldbBreakpointInfo(SBBreakpoint bpt, boolean enabled) { + this(bpt, bpt.GetTarget().GetProcess()); + bpt.SetEnabled(enabled); + } + + public LldbBreakpointInfo(SBBreakpoint bpt, SBProcess process) { + this.info = bpt; + this.proc = process; + locations = new ArrayList<>(); + for (int i = 0; i < bpt.GetNumLocations(); i++) { + locations.add(bpt.GetLocationAtIndex(i)); + } + } + + public LldbBreakpointInfo(SBWatchpoint wpt, SBProcess process) { + this.info = wpt; + this.proc = process; + locations = new ArrayList<>(); + } + + public String getId() { + return DebugClient.getId(info); + } + + @Override + public int hashCode() { + return Objects.hash(getId()); + } + + @Override + public String toString() { + return DebugClient.getId(info); + } + + @Override + public boolean equals(Object obj) { + if (!((obj instanceof LldbBreakpointInfo))) { + return false; + } + LldbBreakpointInfo that = (LldbBreakpointInfo) obj; + if (this.getId() != that.getId()) { + return false; + } + return true; + } + + /** + * Get the breakpoint disposition, i.e., what happens to the breakpoint once it has been hit + * + * @return the disposition + */ + public LldbBreakpointDisp getDisp() { + return LldbBreakpointDisp.KEEP; + } + + /** + * Get the offset expression of the breakpoint + * + * @return the location + */ + public String getExpression() { + return expression; + } + + /** + * Get the size of the breakpoint + * + * @return the size + */ + public int getSize() { + return 1; + } + + /** + * Get the access of the breakpoint + * + * @return the size + */ + public BitmaskSet getAccess() { + return null;//access; + } + + /** + * Get the offset of this breakpoint + * + *

+ * Note if the offset was given as an expression, but it hasn't been resolved, this will return + * {@code null}. + * + * @return the offset, or {@code null} + */ + public Long getOffset() { + return offset; + } + + /** + * Check if the breakpoint is enabled + * + * @return true if enabled, false otherwise + */ + public boolean isEnabled() { + if (info instanceof SBBreakpoint) { + return ((SBBreakpoint) info).IsEnabled(); + } + else { + return ((SBWatchpoint) info).IsEnabled(); + } + } + + /** + * Get the number of times the breakpoint has been hit + * + * @return the hit count + */ + public long getTimes() { + if (info instanceof SBBreakpoint) { + return ((SBBreakpoint) info).GetHitCount(); + } + else { + return ((SBWatchpoint) info).GetHitCount(); + } + } + + /** + * Get a list of resolved addresses + * + *

+ * The effective locations may change for a variety of reasons. Most notable, a new module may + * be loaded, having location(s) that match the desired location of this breakpoint. The binary + * addresses within will become new effective locations of this breakpoint. + * + * @return the list of locations at the time the breakpoint information was captured + */ + public List getLocations() { + return locations; + } + + public Object getBreakpoint() { + return info; + } + + public void setBreakpoint(Object info) { + this.info = info; + } + + public SBProcess getProc() { + return proc; + } + + public int getEventThread() { + if (info instanceof SBBreakpoint) { + return ((SBBreakpoint) info).GetThreadID().intValue(); + } + else { + return -1; + } + } + + public long getAddressAsLong() { + if (info instanceof SBBreakpoint) { + return locations.get(0).GetLoadAddress().longValue(); + } + else { + return ((SBWatchpoint) info).GetWatchAddress().longValue(); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInsertions.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInsertions.java new file mode 100644 index 0000000000..3d0a5a305b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointInsertions.java @@ -0,0 +1,84 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.breakpoint; + +import java.util.concurrent.CompletableFuture; + +import ghidra.util.NumericUtilities; + +public interface LldbBreakpointInsertions { + /** + * Insert a breakpoint + * + * This is equivalent to the CLI command: {@code break [LOC]}, or {@code watch [LOC]}, etc. + * + * Breakpoints in lldb can get pretty complicated. Depending on the location specification, the + * actual location of the breakpoint may change during the lifetime of an inferior. Take note of + * the breakpoint number to track those changes across breakpoint modification events. + * + * @param loc the location (address, symbol, line number, etc.) to place the breakpoint at + * @param type the type of breakpoint (or watchpoint) to add + * @return a copy of the resulting breakpoint information once lldb has executed the command + */ + default CompletableFuture insertBreakpoint(String loc, + LldbBreakpointType type) { + return insertBreakpoint(NumericUtilities.parseHexLong(loc), 1, + LldbBreakpointType.BREAKPOINT); + } + + /** + * Insert a (usually software) execution breakpoint + * + * @param loc string version of address + * @return a future that completes when lldb has executed the command + * + * @see #insertBreakpoint(String location) + */ + default CompletableFuture insertBreakpoint(String loc) { + return insertBreakpoint(loc, LldbBreakpointType.BREAKPOINT); + } + + /** + * Insert a (usually software) execution breakpoint at the given address offset + * + * Note, this uses the "Address Notation" specified by lldb. + * + * @param addr breakpoint address + * @return a future that completes when lldb has executed the command + * + * @see #insertBreakpoint(long address) + */ + default CompletableFuture insertBreakpoint(long addr) { + return insertBreakpoint(addr, 1, LldbBreakpointType.BREAKPOINT); + } + + /** + * Insert a breakpoint (usually a watchpoint) at the given address range + * + * Note, this implements the length by casting the address pointer to a + * fixed-length-char-array-pointer where the array has the given length. Support for specific + * lengths may vary by platform. + * + * @param addr the starting address + * @param len the length of the range + * @param type the type of breakpoint (usually a watchpoint) + * @return a future that completes when lldb has executed the command + * @see #insertBreakpoint(String, LldbBreakpointType) + */ + CompletableFuture insertBreakpoint(long addr, int len, + LldbBreakpointType type); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointType.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointType.java new file mode 100644 index 0000000000..61337bfb97 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/breakpoint/LldbBreakpointType.java @@ -0,0 +1,59 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.breakpoint; + +/** + * The type of lldb breakpoint + */ +public enum LldbBreakpointType { + /** + * A software execution breakpoint, usually set via {@code break} + */ + BREAKPOINT, + /** + * A hardware execution breakpoint, usually set via {@code hbreak} + */ + HW_BREAKPOINT, + /** + * A hardware (write) watchpoint, usually set via {@code watch} + */ + WRITE_WATCHPOINT, + /** + * A read watchpoint, usually set via {@code rwatch} + */ + READ_WATCHPOINT, + /** + * An access (r/w) watchpoint, usually set via {@code awatch} + */ + ACCESS_WATCHPOINT, + /** + * Some type not known to the manager + */ + OTHER; + + /** + * @param string the value of type parsed + * @return the enum constant, or {@link #OTHER} if unrecognized + */ + public static LldbBreakpointType fromStr(String string) { + try { + return valueOf(string); + } + catch (IllegalArgumentException e) { + return OTHER; + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/AbstractLldbCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/AbstractLldbCommand.java new file mode 100644 index 0000000000..f0f57f503b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/AbstractLldbCommand.java @@ -0,0 +1,65 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.StateType; +import agent.lldb.manager.LldbCommand; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.LldbCommandDoneEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * A base class for interacting with specific Lldb commands + * + * @param the type of object "returned" by the command + */ +public abstract class AbstractLldbCommand implements LldbCommand { + protected final LldbManagerImpl manager; + + /** + * Construct a new command to be executed by the given manager + * + * @param manager the manager to execute the command + */ + protected AbstractLldbCommand(LldbManagerImpl manager) { + this.manager = manager; + } + + @Override + public boolean validInState(StateType state) { + return true; // With dual interpreters, shouldn't have to worry. + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof LldbCommandDoneEvent) { + if (pending.getCommand().equals(((LldbCommandDoneEvent) evt).getCmd())) { + return true; + } + } + return false; + } + + @Override + public T complete(LldbPendingCommand pending) { + return null; + } + + @Override + public void invoke() { + // Nothing + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddProcessCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddProcessCommand.java new file mode 100644 index 0000000000..23645bb0cb --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddProcessCommand.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBProcess; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#addProcess()} + */ +public class LldbAddProcessCommand extends AbstractLldbCommand { + + public LldbAddProcessCommand(LldbManagerImpl manager) { + super(manager); + } + + @Override + public SBProcess complete(LldbPendingCommand pending) { + // Not apparent this is needed + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddSessionCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddSessionCommand.java new file mode 100644 index 0000000000..5967a18a1d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAddSessionCommand.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBTarget; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#addSession()} + */ +public class LldbAddSessionCommand extends AbstractLldbCommand { + + public LldbAddSessionCommand(LldbManagerImpl manager) { + super(manager); + } + + @Override + public SBTarget complete(LldbPendingCommand pending) { + // Not apparent this is needed + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachCommand.java new file mode 100644 index 0000000000..8e97e72321 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachCommand.java @@ -0,0 +1,91 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.LinkedHashSet; +import java.util.Set; + +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.lldb.DebugThreadInfo; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.*; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#attach()} + */ +public class LldbAttachCommand extends AbstractLldbCommand> { + + private LldbProcessCreatedEvent created = null; + private boolean completed = false; + private String key; + private int keyType = 0; + private boolean wait = true; + private boolean async = false; + + public LldbAttachCommand(LldbManagerImpl manager, String key) { + this(manager, key, true, false); + this.keyType = 0; + } + + public LldbAttachCommand(LldbManagerImpl manager, String key, boolean wait) { + this(manager, key, wait, false); + this.keyType = 1; + } + + public LldbAttachCommand(LldbManagerImpl manager, String key, boolean wait, boolean async) { + super(manager); + this.key = key; + this.wait = wait; + this.async = async; + this.keyType = 2; + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + completed = true; + } + else if (evt instanceof LldbProcessCreatedEvent) { + created = (LldbProcessCreatedEvent) evt; + } + else if (evt instanceof LldbThreadCreatedEvent) { + pending.claim(evt); + } + else if (evt instanceof LldbStoppedEvent) { + pending.claim(evt); + } + return completed && (created != null); + } + + @Override + public Set complete(LldbPendingCommand pending) { + Set threads = new LinkedHashSet<>(); + for (LldbThreadCreatedEvent adds : pending.findAllOf(LldbThreadCreatedEvent.class)) { + DebugThreadInfo info = adds.getInfo(); + threads.add(info.thread); + } + return threads; + } + + @Override + public void invoke() { + DebugClient client = manager.getClient(); + client.attachProcess(client.getLocalServer(), keyType, key, wait, async); + // NB: manager.waitForEventEx - embedded in attach + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachKernelCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachKernelCommand.java new file mode 100644 index 0000000000..dad688f7c1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbAttachKernelCommand.java @@ -0,0 +1,73 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.Map; + +import SWIG.SBThread; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.AbstractLldbCompletedCommandEvent; +import agent.lldb.manager.evt.LldbProcessCreatedEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#attachKernel(String)} + */ +public class LldbAttachKernelCommand extends AbstractLldbCommand { + + private LldbProcessCreatedEvent created = null; + private boolean completed = false; + + public LldbAttachKernelCommand(LldbManagerImpl manager, Map args) { + super(manager); + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + completed = true; + } + else if (evt instanceof LldbProcessCreatedEvent) { + created = (LldbProcessCreatedEvent) evt; + } + return completed && (created != null); + } + + @Override + public SBThread complete(LldbPendingCommand pending) { + //TODO + /* + DebugProcessInfo info = created.getInfo(); + DebugThreadInfo tinfo = info.initialThreadInfo; + DebugSystemObjects so = manager.getSystemObjects(); + DebugThreadId tid = so.getThreadIdByHandle(tinfo.handle); + return manager.getThread(tid); + */ + return null; + } + + @Override + public void invoke() { + //TODO + /* + DebugClient client = manager.getClient(); + long flags = (Long) args.get("Flags"); + String options = (String) args.get("Options"); + client.attachKernel(flags, options); + */ + manager.waitForEventEx(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbCommandError.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbCommandError.java new file mode 100644 index 0000000000..fbf4ba0c76 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbCommandError.java @@ -0,0 +1,59 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.manager.LldbCommand; + +/** + * Exception generated by the default "^error" handler + */ +public class LldbCommandError extends RuntimeException { + /** + * + */ + private static final long serialVersionUID = -812711163503400398L; + private final Object info; + + /** + * Construct an error with the given details + * + * @param info the detail information + * @param cmd source of error + */ + public LldbCommandError(Object info, LldbCommand cmd) { + super(cmd + " caused '" + info + "'"); + this.info = info; + } + + /** + * Construct an error with the given message + * + * @param message the message + */ + public LldbCommandError(String message) { + super(message); + this.info = null; + } + + /** + * Get the details, if present + * + * @return the details, or null + */ + public Object getInfo() { + return info; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbConsoleExecCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbConsoleExecCommand.java new file mode 100644 index 0000000000..0b5d9dc795 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbConsoleExecCommand.java @@ -0,0 +1,67 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.AbstractLldbCompletedCommandEvent; +import agent.lldb.manager.evt.LldbConsoleOutputEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#console(String)} and similar + */ +public class LldbConsoleExecCommand extends AbstractLldbCommand { + public enum Output { + CONSOLE, CAPTURE; + } + + private String command; + private Output to; + + public LldbConsoleExecCommand(LldbManagerImpl manager, String command, Output to) { + super(manager); + this.command = command; + this.to = to; + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + return true; + } + else if (evt instanceof LldbConsoleOutputEvent && to == Output.CAPTURE) { + pending.steal(evt); + } + return false; + } + + @Override + public String complete(LldbPendingCommand pending) { + if (to == Output.CONSOLE) { + return null; + } + StringBuilder builder = new StringBuilder(); + for (LldbConsoleOutputEvent out : pending.findAllOf(LldbConsoleOutputEvent.class)) { + builder.append(out.getOutput()); + } + return builder.toString(); + } + + @Override + public void invoke() { + manager.getClient().execute(command); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbContinueCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbContinueCommand.java new file mode 100644 index 0000000000..575000bbbe --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbContinueCommand.java @@ -0,0 +1,74 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.*; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.*; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.util.Msg; + +/** + * Implementation of {@link LldbManager#continue()} + */ +public class LldbContinueCommand extends AbstractLldbCommand { + + private SBProcess process; + + public LldbContinueCommand(LldbManagerImpl manager, SBProcess process) { + super(manager); + this.process = process; + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + pending.claim(evt); + boolean b = evt instanceof LldbCommandErrorEvent || + !pending.findAllOf(LldbRunningEvent.class).isEmpty(); + return b; + } + else if (evt instanceof LldbRunningEvent) { + // Event happens no matter which interpreter received the command + pending.claim(evt); + boolean b = !pending.findAllOf(AbstractLldbCompletedCommandEvent.class).isEmpty(); + return b; + } + return false; + } + + @Override + public Void complete(LldbPendingCommand pending) { + /* + DebugProcessInfo info = created.getInfo(); + DebugThreadInfo tinfo = info.initialThreadInfo; + DebugSystemObjects so = manager.getSystemObjects(); + DebugThreadId tid = so.getThreadIdByHandle(tinfo.handle); + return manager.getThread(tid); + */ + return null; + } + + @Override + public void invoke() { + SBError res = process.Continue(); + if (!res.Success()) { + SBStream stream = new SBStream(); + res.GetDescription(stream); + Msg.error(this, stream.GetData()); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDeleteBreakpointsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDeleteBreakpointsCommand.java new file mode 100644 index 0000000000..0a081ad85f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDeleteBreakpointsCommand.java @@ -0,0 +1,57 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#deleteBreakpoints(long)} + */ +public class LldbDeleteBreakpointsCommand extends AbstractLldbCommand { + + private final String[] ids; + + public LldbDeleteBreakpointsCommand(LldbManagerImpl manager, String... ids) { + super(manager); + this.ids = ids; + } + + @Override + public Void complete(LldbPendingCommand pending) { + SBTarget currentSession = manager.getCurrentSession(); + for (String id : ids) { + manager.doBreakpointDeleted(currentSession, id, pending); + } + return null; + } + + @Override + public void invoke() { + SBTarget currentSession = manager.getCurrentSession(); + for (String id : ids) { + Object info = manager.getBreakpoint(currentSession, id); + if (info instanceof SBBreakpoint) { + SBBreakpoint bpt = (SBBreakpoint) info; + currentSession.BreakpointDelete(bpt.GetID()); + } + if (info instanceof SBWatchpoint) { + SBWatchpoint wpt = (SBWatchpoint) info; + currentSession.DeleteWatchpoint(wpt.GetID()); + } + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDestroyCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDestroyCommand.java new file mode 100644 index 0000000000..e4cd98e00c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDestroyCommand.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.evt.LldbProcessExitedEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#destroy()} + */ +public class LldbDestroyCommand extends AbstractLldbCommand { + public LldbDestroyCommand(LldbManagerImpl manager) { + super(manager); + } + + @Override + public void invoke() { + DebugClient client = manager.getClient(); + // NB: process the event before terminating + manager.processEvent(new LldbProcessExitedEvent(0)); + client.terminateCurrentProcess(); + //client.detachCurrentProcess(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDetachCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDetachCommand.java new file mode 100644 index 0000000000..ae40167591 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDetachCommand.java @@ -0,0 +1,51 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBProcess; +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#detach()} + */ +public class LldbDetachCommand extends AbstractLldbCommand { + private final SBProcess process; + + public LldbDetachCommand(LldbManagerImpl manager, SBProcess process) { + super(manager); + this.process = process; + } + + @Override + public Void complete(LldbPendingCommand pending) { + String pid = DebugClient.getId(process); + for (int i = 0; i < process.GetNumThreads(); i++) { + SBThread t = process.GetThreadAtIndex(i); + manager.removeThread(pid, DebugClient.getId(t)); + } + manager.getEventListeners().fire.processRemoved(pid, LldbCause.Causes.UNCLAIMED); + return null; + } + + @Override + public void invoke() { + DebugClient client = manager.getClient(); + client.detachCurrentProcess(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDisableBreakpointsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDisableBreakpointsCommand.java new file mode 100644 index 0000000000..4fd65bf5e4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbDisableBreakpointsCommand.java @@ -0,0 +1,60 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.Map; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#deleteBreakpoints(long)} + */ +public class LldbDisableBreakpointsCommand extends AbstractLldbCommand { + + private final String[] ids; + + public LldbDisableBreakpointsCommand(LldbManagerImpl manager, String... ids) { + super(manager); + this.ids = ids; + } + + @Override + public Void complete(LldbPendingCommand pending) { + SBTarget currentSession = manager.getCurrentSession(); + for (String id : ids) { + manager.doBreakpointDisabled(currentSession, id, pending); + } + return null; + } + + @Override + public void invoke() { + Map knownBreakpoints = + manager.getKnownBreakpoints(manager.getCurrentSession()); + for (String id : ids) { + if (knownBreakpoints.containsKey(id)) { + Object obj = knownBreakpoints.get(id); + if (obj instanceof SBBreakpoint) { + ((SBBreakpoint) obj).SetEnabled(false); + } + if (obj instanceof SBWatchpoint) { + ((SBWatchpoint) obj).SetEnabled(false); + } + } + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEnableBreakpointsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEnableBreakpointsCommand.java new file mode 100644 index 0000000000..78d053bfc5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEnableBreakpointsCommand.java @@ -0,0 +1,60 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.Map; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#enableBreakpoints(long)} + */ +public class LldbEnableBreakpointsCommand extends AbstractLldbCommand { + + private final String[] ids; + + public LldbEnableBreakpointsCommand(LldbManagerImpl manager, String... ids) { + super(manager); + this.ids = ids; + } + + @Override + public Void complete(LldbPendingCommand pending) { + SBTarget currentSession = manager.getCurrentSession(); + for (String id : ids) { + manager.doBreakpointEnabled(currentSession, id, pending); + } + return null; + } + + @Override + public void invoke() { + Map knownBreakpoints = + manager.getKnownBreakpoints(manager.getCurrentSession()); + for (String id : ids) { + if (knownBreakpoints.containsKey(id)) { + Object obj = knownBreakpoints.get(id); + if (obj instanceof SBBreakpoint) { + ((SBBreakpoint) obj).SetEnabled(true); + } + if (obj instanceof SBWatchpoint) { + ((SBWatchpoint) obj).SetEnabled(true); + } + } + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEvaluateCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEvaluateCommand.java new file mode 100644 index 0000000000..9b1e3784dd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbEvaluateCommand.java @@ -0,0 +1,41 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#evaluate(String)} + */ +public class LldbEvaluateCommand extends AbstractLldbCommand { + private final String expression; + private String result; + + public LldbEvaluateCommand(LldbManagerImpl manager, String expression) { + super(manager); + this.expression = expression; + } + + @Override + public String complete(LldbPendingCommand pending) { + return result; + } + + @Override + public void invoke() { + manager.getClient().execute(expression); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbInsertBreakpointCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbInsertBreakpointCommand.java new file mode 100644 index 0000000000..448505d10f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbInsertBreakpointCommand.java @@ -0,0 +1,102 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.math.BigInteger; + +import SWIG.*; +import agent.lldb.manager.breakpoint.*; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.util.Msg; + +/** + * Implementation of {@link LldbBreakpointInsertions#insertBreakpoint(String)} + */ +public class LldbInsertBreakpointCommand extends AbstractLldbCommand { + //private List locations; + private final LldbBreakpointType type; + private LldbBreakpointInfo bkpt; + private int len; + private final String expression; + private final BigInteger loc; + + public LldbInsertBreakpointCommand(LldbManagerImpl manager, String expression, + LldbBreakpointType type) { + super(manager); + this.type = type; + this.expression = expression; + this.loc = null; + } + + public LldbInsertBreakpointCommand(LldbManagerImpl manager, long loc, int len, + LldbBreakpointType type) { + super(manager); + this.len = len; + this.type = type; + this.expression = null; + this.loc = BigInteger.valueOf(loc); + } + + @Override + public LldbBreakpointInfo complete(LldbPendingCommand pending) { + SBTarget currentSession = manager.getCurrentSession(); + manager.doBreakpointCreated(currentSession, bkpt.getBreakpoint(), pending); + return bkpt; + } + + @Override + public void invoke() { + SBTarget currentSession = manager.getCurrentSession(); + if (type.equals(LldbBreakpointType.BREAKPOINT) || + type.equals(LldbBreakpointType.HW_BREAKPOINT)) { + SBBreakpoint bpt; + // TODO: HW_BREAKPOINT not handled here! + if (loc != null) { + bpt = currentSession.BreakpointCreateByAddress(loc); + } + else { + bpt = currentSession.BreakpointCreateByRegex(expression); + } + bpt.SetEnabled(true); + bkpt = new LldbBreakpointInfo(bpt, manager.getCurrentProcess()); + } + else { + boolean read = true; + boolean write = true; + SBError error = new SBError(); + len = 8; + if (type.equals(LldbBreakpointType.READ_WATCHPOINT)) { + write = false; + } + if (type.equals(LldbBreakpointType.WRITE_WATCHPOINT)) { + read = false; + } + SBWatchpoint wpt = currentSession.WatchAddress(loc, len, read, write, error); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, error.GetType() + ":" + stream.GetData()); + return; + } + if (!wpt.IsValid()) { + Msg.error(this, "Error creating watchpoint"); + return; + } + wpt.SetEnabled(true); + bkpt = new LldbBreakpointInfo(wpt, manager.getCurrentProcess()); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbKillCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbKillCommand.java new file mode 100644 index 0000000000..9faa34c51e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbKillCommand.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.evt.LldbProcessExitedEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#kill()} + */ +public class LldbKillCommand extends AbstractLldbCommand { + public LldbKillCommand(LldbManagerImpl manager) { + super(manager); + } + + @Override + public void invoke() { + DebugClient client = manager.getClient(); + // NB: process the event before terminating + manager.processEvent(new LldbProcessExitedEvent(0)); + client.terminateCurrentProcess(); + //client.detachCurrentProcess(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessCommand.java new file mode 100644 index 0000000000..64317ee4dd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessCommand.java @@ -0,0 +1,89 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.ArrayList; +import java.util.List; + +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.AbstractLldbCompletedCommandEvent; +import agent.lldb.manager.evt.LldbProcessCreatedEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#launch(String)} + */ +public class LldbLaunchProcessCommand extends AbstractLldbCommand { + + private LldbProcessCreatedEvent created = null; + private boolean completed = false; + private String fileName; + private List args; + private List envp; + private List pathsIO; + private String wdir; + private long flags; + private boolean stopAtEntry; + + public LldbLaunchProcessCommand(LldbManagerImpl manager, String fileName, List args) { + this(manager, fileName, args, null, null, "", 0L, true); + } + + public LldbLaunchProcessCommand(LldbManagerImpl manager, String fileName, List args, + List envp, + List pathsIO, String workingDirectory, long flags, boolean stopAtEntry) { + super(manager); + this.fileName = fileName; + this.args = args == null ? new ArrayList<>() : args; + this.envp = envp == null ? new ArrayList<>() : envp; + this.pathsIO = pathsIO; + if (pathsIO == null) { + this.pathsIO = new ArrayList<>(); + this.pathsIO.add(""); + this.pathsIO.add(""); + this.pathsIO.add(""); + } + this.wdir = workingDirectory; + this.flags = flags; + this.stopAtEntry = stopAtEntry; + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + completed = true; + } + else if (evt instanceof LldbProcessCreatedEvent) { + created = (LldbProcessCreatedEvent) evt; + } + return completed && (created != null); + } + + @Override + public SBThread complete(LldbPendingCommand pending) { + return manager.getEventThread(); + } + + @Override + public void invoke() { + DebugClient client = manager.getClient(); + //client.createProcess(client.getLocalServer(), fileName); + client.createProcess(client.getLocalServer(), fileName, args, envp, pathsIO, wdir, flags, + stopAtEntry); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessWithOptionsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessWithOptionsCommand.java new file mode 100644 index 0000000000..74f215a00d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbLaunchProcessWithOptionsCommand.java @@ -0,0 +1,122 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.*; + +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.lldb.DebugClient.DebugCreateFlags; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.AbstractLldbCompletedCommandEvent; +import agent.lldb.manager.evt.LldbProcessCreatedEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#launch(String)} + */ +public class LldbLaunchProcessWithOptionsCommand extends AbstractLldbCommand { + + private LldbProcessCreatedEvent created = null; + private boolean completed = false; + private String fileName; + private List args; + private List envp; + private List pathsIO; + private String wdir; + private long flags; + private boolean stopAtEntry; + + public LldbLaunchProcessWithOptionsCommand(LldbManagerImpl manager, Map args) { + super(manager); + this.fileName = (String) args.get("File"); + String argstr = (String) args.get("Args"); + this.args = argstr.equals("") ? new ArrayList() : Arrays.asList(argstr.split(" ")); + String envstr = (String) args.get("Env"); + this.envp = envstr.equals("") ? new ArrayList() : Arrays.asList(envstr.split(" ")); + this.pathsIO = new ArrayList<>(); + this.pathsIO.add((String)args.get("STDIN")); + this.pathsIO.add((String)args.get("STDOUT")); + this.pathsIO.add((String)args.get("STDERR")); + this.wdir = (String) args.get("Dir"); + this.flags = DebugCreateFlags.LAUNCH_DEFAULT.getMask(); + this.stopAtEntry = false; + if ((boolean) args.get("Exec")) { + flags |= DebugCreateFlags.LAUNCH_EXEC.getMask(); + } + if ((boolean) args.get("BreakOnLaunch")) { + flags |= DebugCreateFlags.LAUNCH_DEBUG.getMask(); + } + if ((boolean) args.get("BreakOnEntry")) { + flags |= DebugCreateFlags.LAUNCH_STOP_AT_ENTRY.getMask(); + stopAtEntry = true; + } + if ((boolean) args.get("ASLR")) { + flags |= DebugCreateFlags.LAUNCH_DISABLE_ASLR.getMask(); + } + if ((boolean) args.get("STDIO")) { + flags |= DebugCreateFlags.LAUNCH_DISABLE_STDIO.getMask(); + } + if ((boolean) args.get("NewTTY")) { + flags |= DebugCreateFlags.LAUNCH_IN_TTY.getMask(); + } + if ((boolean) args.get("Shell")) { + flags |= DebugCreateFlags.LAUNCH_IN_SHELL.getMask(); + } + if ((boolean) args.get("NewGroup")) { + flags |= DebugCreateFlags.LAUNCH_IN_SEP_GROUP.getMask(); + } + if ((boolean) args.get("ExitRace")) { + flags |= DebugCreateFlags.LAUNCH_DONT_SET_EXIT_STATUS.getMask(); + } + if ((boolean) args.get("Detach")) { + flags |= DebugCreateFlags.LAUNCH_DETACH_ON_ERROR.getMask(); + } + if ((boolean) args.get("ExpandArgs")) { + flags |= DebugCreateFlags.LAUNCH_SHELL_EXPAND_ARGS.getMask(); + } + if ((boolean) args.get("CloseTTY")) { + flags |= DebugCreateFlags.LAUNCH_CLOSE_TTY_ON_EXIT.getMask(); + } + if ((boolean) args.get("Inherit")) { + flags |= DebugCreateFlags.LAUNCH_INHERIT_FROM_PARENT.getMask(); + } + } + + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + completed = true; + } + else if (evt instanceof LldbProcessCreatedEvent) { + created = (LldbProcessCreatedEvent) evt; + } + return completed && (created != null); + } + + @Override + public SBThread complete(LldbPendingCommand pending) { + return manager.getEventThread(); + } + + @Override + public void invoke() { + DebugClient client = manager.getClient(); + client.createProcess(client.getLocalServer(), fileName, args, envp, pathsIO, wdir, flags, + stopAtEntry); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListAvailableProcessesCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListAvailableProcessesCommand.java new file mode 100644 index 0000000000..95142c50fb --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListAvailableProcessesCommand.java @@ -0,0 +1,64 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +import SWIG.SBCommandReturnObject; +import SWIG.SBDebugger; +import agent.lldb.lldb.DebugClientImpl; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.util.Msg; + +public class LldbListAvailableProcessesCommand + extends AbstractLldbCommand>> { + + private String output; + + public LldbListAvailableProcessesCommand(LldbManagerImpl manager) { + super(manager); + } + + @Override + public List> complete(LldbPendingCommand pending) { + List> result = new ArrayList<>(); + String[] lines = output.split("\n"); + // Skip count & header + for (int i = 3; i < lines.length; i++) { + String[] fields = lines[i].split("\\s+"); + try { + result.add(new ImmutablePair(fields[0], fields[fields.length-1])); + } catch (Exception e) { + Msg.error(this, e.getMessage()); + } + } + return result; + } + + @Override + public void invoke() { + DebugClientImpl client = (DebugClientImpl) manager.getClient(); + SBDebugger sbd = client.getDebugger(); + SBCommandReturnObject obj = new SBCommandReturnObject(); + sbd.GetCommandInterpreter().HandleCommand("platform process list", obj); + output = obj.GetOutput(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointLocationsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointLocationsCommand.java new file mode 100644 index 0000000000..a0e3c589e2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointLocationsCommand.java @@ -0,0 +1,54 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.SBBreakpoint; +import SWIG.SBBreakpointLocation; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#listBreakpoints()} + */ +public class LldbListBreakpointLocationsCommand + extends AbstractLldbCommand> { + + private Map updatedLocations = new HashMap<>(); + protected final SBBreakpoint spec; + + public LldbListBreakpointLocationsCommand(LldbManagerImpl manager, SBBreakpoint spec) { + super(manager); + this.spec = spec; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return updatedLocations; + } + + @Override + public void invoke() { + updatedLocations.clear(); + long n = spec.GetNumResolvedLocations(); + for (int i = 0; i < n; i++) { + SBBreakpointLocation loc = spec.GetLocationAtIndex(i); + updatedLocations.put(DebugClient.getId(loc), loc); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointsCommand.java new file mode 100644 index 0000000000..f04dc3a73a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListBreakpointsCommand.java @@ -0,0 +1,73 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#listBreakpoints()} + */ +public class LldbListBreakpointsCommand extends AbstractLldbCommand> { + + protected final SBTarget session; + private Map updatedBreakpoints = new HashMap<>(); + + public LldbListBreakpointsCommand(LldbManagerImpl manager, SBTarget session) { + super(manager); + this.session = session; + } + + @Override + public Map complete(LldbPendingCommand pending) { + Map breakpoints = manager.getKnownBreakpoints(session); + Set cur = breakpoints.keySet(); + for (String id : updatedBreakpoints.keySet()) { + if (cur.contains(id)) { + continue; // Do nothing, we're in sync + } + manager.addBreakpointIfAbsent(session, updatedBreakpoints.get(id)); + } + for (String id : new ArrayList<>(cur)) { + if (updatedBreakpoints.containsKey(id)) { + continue; // Do nothing, we're in sync + } + manager.removeBreakpoint(session, id); + } + return manager.getKnownBreakpoints(session); + } + + @Override + public void invoke() { + updatedBreakpoints.clear(); + long n = session.GetNumBreakpoints(); + for (int i = 0; i < n; i++) { + SBBreakpoint bpt = session.GetBreakpointAtIndex(i); + updatedBreakpoints.put(DebugClient.getId(bpt), bpt); + } + n = session.GetNumWatchpoints(); + for (int i = 0; i < n; i++) { + SBWatchpoint bpt = session.GetWatchpointAtIndex(i); + updatedBreakpoints.put(DebugClient.getId(bpt), bpt); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListEnvironmentCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListEnvironmentCommand.java new file mode 100644 index 0000000000..2eeadb57d5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListEnvironmentCommand.java @@ -0,0 +1,48 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.*; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListEnvironmentCommand extends AbstractLldbCommand> { + + private SBTarget session; + private Map keyValues = new HashMap<>(); + + public LldbListEnvironmentCommand(LldbManagerImpl manager, SBTarget session) { + super(manager); + this.session = session; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return keyValues; + } + + @Override + public void invoke() { + SBEnvironment env = session.GetEnvironment(); + for (int i = 0; i < env.GetNumValues(); i++) { + String key = env.GetNameAtIndex(i); + String value = env.GetValueAtIndex(i); + keyValues.put(key, value); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListMemoryRegionsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListMemoryRegionsCommand.java new file mode 100644 index 0000000000..8d5d86710c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListMemoryRegionsCommand.java @@ -0,0 +1,51 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.ArrayList; +import java.util.List; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListMemoryRegionsCommand extends AbstractLldbCommand> { + + private SBProcess process; + private List memoryRegions = new ArrayList<>(); + + public LldbListMemoryRegionsCommand(LldbManagerImpl manager, SBProcess process) { + super(manager); + this.process = process; + } + + @Override + public List complete(LldbPendingCommand pending) { + return memoryRegions; + } + + @Override + public void invoke() { + SBMemoryRegionInfoList regions = process.GetMemoryRegions(); + for (int i = 0; i < regions.GetSize(); i++) { + SBMemoryRegionInfo info = new SBMemoryRegionInfo(); + boolean success = regions.GetMemoryRegionAtIndex(i, info); + if (success) { + memoryRegions.add(info); + } + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSectionsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSectionsCommand.java new file mode 100644 index 0000000000..865fbaff22 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSectionsCommand.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.SBModule; +import SWIG.SBSection; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListModuleSectionsCommand extends AbstractLldbCommand> { + protected final SBModule module; + private Map result; + + public LldbListModuleSectionsCommand(LldbManagerImpl manager, SBModule module) { + super(manager); + this.module = module; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return result; + } + + @Override + public void invoke() { + result = new HashMap<>(); + long n = module.GetNumSections(); + for (int i = 0; i < n; i++) { + SBSection section = module.GetSectionAtIndex(i); + result.put(DebugClient.getId(section), section); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSymbolsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSymbolsCommand.java new file mode 100644 index 0000000000..62576d0d80 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModuleSymbolsCommand.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.SBModule; +import SWIG.SBSymbol; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListModuleSymbolsCommand extends AbstractLldbCommand> { + protected final SBModule module; + private Map result; + + public LldbListModuleSymbolsCommand(LldbManagerImpl manager, SBModule module) { + super(manager); + this.module = module; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return result; + } + + @Override + public void invoke() { + result = new HashMap<>(); + long n = module.GetNumSymbols(); + for (int i = 0; i < n; i++) { + SBSymbol sym = module.GetSymbolAtIndex(i); + result.put(DebugClient.getId(sym), sym); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModulesCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModulesCommand.java new file mode 100644 index 0000000000..82c1a35493 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListModulesCommand.java @@ -0,0 +1,62 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.*; + +import SWIG.SBModule; +import SWIG.SBTarget; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListModulesCommand extends AbstractLldbCommand> { + protected final SBTarget session; + private Map updatedModules = new HashMap<>(); + + public LldbListModulesCommand(LldbManagerImpl manager, SBTarget session) { + super(manager); + this.session = session; + } + + @Override + public Map complete(LldbPendingCommand pending) { + Map modules = manager.getKnownModules(session); + Set cur = modules.keySet(); + for (String id : updatedModules.keySet()) { + if (cur.contains(id)) { + continue; // Do nothing, we're in sync + } + manager.addModuleIfAbsent(session, updatedModules.get(id)); + } + for (String id : new ArrayList<>(cur)) { + if (updatedModules.containsKey(id)) { + continue; // Do nothing, we're in sync + } + manager.removeModule(session, id); + } + return manager.getKnownModules(session); + } + + @Override + public void invoke() { + long n = session.GetNumModules(); + for (int i = 0; i < n; i++) { + SBModule module = session.GetModuleAtIndex(i); + updatedModules.put(DebugClient.getId(module), module); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListProcessesCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListProcessesCommand.java new file mode 100644 index 0000000000..1d057ab9b3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListProcessesCommand.java @@ -0,0 +1,65 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.*; + +import SWIG.SBProcess; +import SWIG.SBTarget; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause.Causes; +import agent.lldb.manager.LldbManager; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#listProcesses()} + */ +public class LldbListProcessesCommand extends AbstractLldbCommand> { + private Map updatedProcesses; + private SBTarget session; + + public LldbListProcessesCommand(LldbManagerImpl manager, SBTarget session) { + super(manager); + this.session = session; + } + + @Override + public Map complete(LldbPendingCommand pending) { + Map allProcesses = manager.getKnownProcesses(session); + Set cur = allProcesses.keySet(); + for (String id : updatedProcesses.keySet()) { + if (cur.contains(id)) { + continue; // Do nothing, we're in sync + } + manager.addProcessIfAbsent(session, updatedProcesses.get(id)); + } + String sessionId = DebugClient.getId(session); + for (String id : new ArrayList<>(cur)) { + if (updatedProcesses.containsKey(id)) { + continue; // Do nothing, we're in sync + } + manager.removeProcess(sessionId, id, Causes.UNCLAIMED); + } + return allProcesses; + } + + @Override + public void invoke() { + SBProcess p = session.GetProcess(); + updatedProcesses = new HashMap<>(); + updatedProcesses.put(DebugClient.getId(p), p); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListSessionsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListSessionsCommand.java new file mode 100644 index 0000000000..b89f96fafe --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListSessionsCommand.java @@ -0,0 +1,60 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.ArrayList; +import java.util.Map; +import java.util.Set; + +import SWIG.SBTarget; +import agent.lldb.manager.LldbCause.Causes; +import agent.lldb.manager.LldbManager; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#listSessions()} + */ +public class LldbListSessionsCommand extends AbstractLldbCommand> { + private Map updatedSessions; + + public LldbListSessionsCommand(LldbManagerImpl manager) { + super(manager); + } + + @Override + public Map complete(LldbPendingCommand pending) { + Map allSessions = manager.getKnownSessions(); + Set cur = allSessions.keySet(); + for (String id : updatedSessions.keySet()) { + if (cur.contains(id)) { + continue; // Do nothing, we're in sync + } + manager.addSessionIfAbsent(updatedSessions.get(id)); + } + for (String id : new ArrayList<>(cur)) { + if (updatedSessions.containsKey(id)) { + continue; // Do nothing, we're in sync + } + manager.removeSession(id, Causes.UNCLAIMED); + } + return allSessions; + } + + @Override + public void invoke() { + updatedSessions = manager.getClient().listSessions(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegisterBanksCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegisterBanksCommand.java new file mode 100644 index 0000000000..7d846c25c6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegisterBanksCommand.java @@ -0,0 +1,50 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListStackFrameRegisterBanksCommand + extends AbstractLldbCommand> { + protected final SBFrame frame; + private Map result; + + public LldbListStackFrameRegisterBanksCommand(LldbManagerImpl manager, SBFrame frame) { + super(manager); + this.frame = frame; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return result; + } + + @Override + public void invoke() { + result = new HashMap<>(); + SBValueList registers = frame.GetRegisters(); + long n = registers.GetSize(); + for (int i = 0; i < n; i++) { + SBValue bank = registers.GetValueAtIndex(i); + result.put(DebugClient.getId(bank), bank); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegistersCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegistersCommand.java new file mode 100644 index 0000000000..e3f7c1341c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFrameRegistersCommand.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.DynamicValueType; +import SWIG.SBValue; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListStackFrameRegistersCommand extends AbstractLldbCommand> { + protected final SBValue bank; + private Map result; + + public LldbListStackFrameRegistersCommand(LldbManagerImpl manager, SBValue bank) { + super(manager); + this.bank = bank; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return result; + } + + @Override + public void invoke() { + result = new HashMap<>(); + long n = bank.GetNumChildren(); + for (int i = 0; i < n; i++) { + SBValue child = bank.GetChildAtIndex(i, DynamicValueType.eDynamicCanRunTarget, true); + result.put(DebugClient.getId(child), child); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFramesCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFramesCommand.java new file mode 100644 index 0000000000..efa42300e0 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListStackFramesCommand.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.HashMap; +import java.util.Map; + +import SWIG.SBFrame; +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListStackFramesCommand extends AbstractLldbCommand> { + protected final SBThread thread; + private Map result; + + public LldbListStackFramesCommand(LldbManagerImpl manager, SBThread thread) { + super(manager); + this.thread = thread; + } + + @Override + public Map complete(LldbPendingCommand pending) { + return result; + } + + @Override + public void invoke() { + result = new HashMap<>(); + long n = thread.GetNumFrames(); + for (int i = 0; i < n; i++) { + SBFrame frame = thread.GetFrameAtIndex(i); + result.put(DebugClient.getId(frame), frame); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListThreadsCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListThreadsCommand.java new file mode 100644 index 0000000000..aa43060743 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbListThreadsCommand.java @@ -0,0 +1,64 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.*; + +import SWIG.SBProcess; +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbListThreadsCommand extends AbstractLldbCommand> { + + protected final SBProcess process; + private Map updatedThreadIds = new HashMap<>(); + + public LldbListThreadsCommand(LldbManagerImpl manager, SBProcess process) { + super(manager); + this.process = process; + } + + @Override + public Map complete(LldbPendingCommand pending) { + Map threads = manager.getKnownThreads(process); + Set cur = threads.keySet(); + for (String id : updatedThreadIds.keySet()) { + if (cur.contains(id)) { + continue; // Do nothing, we're in sync + } + manager.addThreadIfAbsent(process, updatedThreadIds.get(id)); + } + for (String id : new ArrayList<>(cur)) { + if (updatedThreadIds.containsKey(id)) { + continue; // Do nothing, we're in sync + } + manager.removeThread(DebugClient.getId(process), id); + } + return manager.getKnownThreads(process); + } + + @Override + public void invoke() { + updatedThreadIds.clear(); + long n = process.GetNumThreads(); + for (int i = 0; i < n; i++) { + SBThread thread = process.GetThreadAtIndex(i); + updatedThreadIds.put(DebugClient.getId(thread), thread); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbOpenDumpCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbOpenDumpCommand.java new file mode 100644 index 0000000000..4d07398da4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbOpenDumpCommand.java @@ -0,0 +1,70 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.Map; + +import SWIG.SBThread; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.AbstractLldbCompletedCommandEvent; +import agent.lldb.manager.evt.LldbProcessCreatedEvent; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbProcess#openDump(String)} + */ +public class LldbOpenDumpCommand extends AbstractLldbCommand { + + private LldbProcessCreatedEvent created = null; + private boolean completed = false; + private Map args; + + public LldbOpenDumpCommand(LldbManagerImpl manager, Map args) { + super(manager); + this.args = args; + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + completed = true; + } + else if (evt instanceof LldbProcessCreatedEvent) { + created = (LldbProcessCreatedEvent) evt; + } + return completed && (created != null); + } + + @Override + public SBThread complete(LldbPendingCommand pending) { + return null; + } + + @Override + public void invoke() { + + String f = (String) args.get("TraceOrDump"); + if (f.startsWith("/")) { + f = f.substring(1); + } + f = f.replace("/", "\\"); + + DebugClient client = manager.getClient(); + client.openDumpFileWide(f); + manager.waitForEventEx(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbPendingCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbPendingCommand.java new file mode 100644 index 0000000000..98182670c1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbPendingCommand.java @@ -0,0 +1,211 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbCommand; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.AbstractLldbCompletedCommandEvent; +import agent.lldb.manager.evt.LldbCommandErrorEvent; + +/** + * A command queued on the lldb manager + * + * A {@link LldbCommand} is queued by wrapping it in a {@link LldbPendingCommand} and submitting it + * to the manager implementation's executor. This object also keep track of claimed/stolen events + * and provides convenience methods for sifting through them. + * + * @param the type "returned" by the command + */ +public class LldbPendingCommand extends CompletableFuture implements LldbCause { + private final LldbCommand cmd; + private final Set> evts = new LinkedHashSet<>(); + + /** + * Wrap a command for execution + * + * @param cmd the command + */ + public LldbPendingCommand(LldbCommand cmd) { + this.cmd = cmd; + } + + /** + * Get the command being executed + * + * @return cmd + */ + public LldbCommand getCommand() { + return cmd; + } + + /** + * Finish the execution of this command + */ + public void finish() { + //Msg.trace(this, "Finishing " + cmd); + try { + T result = cmd.complete(this); + complete(result); + } + catch (Throwable e) { + completeExceptionally(e); + } + } + + /** + * Handle an event + * + * This gives the command implementation the first chance to claim or steal an event + * + * @param evt the event + * @return true if the command is ready to be completed + */ + public boolean handle(LldbEvent evt) { + return cmd.handle(evt, this); + } + + /** + * Claim an event + * + * This stores the event for later retrieval and processing. + * + * @param evt the event + */ + public void claim(LldbEvent evt) { + evt.claim(this); + evts.add(evt); + } + + /** + * Steal an event + * + * This stores the event for later retrieval and processing. + * + * @param evt the event + */ + public void steal(LldbEvent evt) { + claim(evt); + evt.steal(); + } + + /** + * Assume a single event of particular type was claimed/stolen, and get that event + * + * @param cls the type of the event + * @return the event cast to the type + * @throws IllegalStateException if more than one event was claimed/stolen + * @throws ClassCastException if the event cannot be cast to the given type + */ + public > E castSingleEvent(Class cls) { + if (evts.size() != 1) { + throw new IllegalStateException("Command did not claim exactly one event"); + } + return cls.cast(evts.iterator().next()); + } + + /** + * Find the first claimed/stolen event of a given type + * + * @param cls the type of the event + * @return the event cast to the type + * @throws IllegalStateException if no event of the given type was claimed/stolen + */ + public > E findFirstOf(Class cls) { + for (LldbEvent evt : evts) { + if (cls.isAssignableFrom(evt.getClass())) { + return cls.cast(evt); + } + } + throw new IllegalStateException("Command did not claim any " + cls); + } + + /** + * Find all events claimed/stolen of a given type + * + * @param cls the type of the events + * @return the list of events cast to the type + */ + public > List findAllOf(Class cls) { + List found = new ArrayList<>(); + for (LldbEvent evt : evts) { + if (cls.isAssignableFrom(evt.getClass())) { + found.add(cls.cast(evt)); + } + } + return found; + } + + /** + * Assume exactly one event of the given type was claimed/stolen, and get that event + * + * @param cls the type of the event + * @return the event cast to the type + * @throws IllegalStateException if more than one event matches + */ + public > E findSingleOf(Class cls) { + List found = findAllOf(cls); + if (found.size() != 1) { + throw new IllegalStateException( + "Command did not claim exactly one " + cls + ". Have " + evts); + } + return found.get(0); + } + + /** + * Check that the command completed with one of the given results + * + * {@link LldbCommandErrorEvent} need not be listed. This method will handle it as a special + * case already. To avoid the special treatment, list it explicitly. + * + * @param classes the completion type to accept + * @return the completion event, cast to the greatest common subclass + */ + @SafeVarargs + public final E checkCompletion( + Class... classes) { + AbstractLldbCompletedCommandEvent completion = + findSingleOf(AbstractLldbCompletedCommandEvent.class); + // Allow query for exact class to override error interpretation + for (Class cls : classes) { + if (cls == completion.getClass()) { + return cls.cast(completion); + } + } + if (completion instanceof LldbCommandErrorEvent) { + throw new LldbCommandError(completion.getInfo(), cmd); + } + for (Class cls : classes) { + if (cls.isAssignableFrom(completion.getClass())) { + return cls.cast(completion); + } + } + throw new IllegalStateException( + "Command completed with " + completion + ", not any of " + Arrays.asList(classes)); + } + + @Override + public String toString() { + return super.toString() + "(" + cmd + ")"; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbReadMemoryCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbReadMemoryCommand.java new file mode 100644 index 0000000000..0980d1eeaf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbReadMemoryCommand.java @@ -0,0 +1,87 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.math.BigInteger; +import java.nio.ByteBuffer; + +import com.google.common.collect.*; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.program.model.address.Address; +import ghidra.util.Msg; + +/** + * Implementation of {@link LldbProcess#readMemory(long, ByteBuffer, int)} + */ +public class LldbReadMemoryCommand extends AbstractLldbCommand> { + + private final SBProcess process; + private final Address addr; + private final ByteBuffer buf; + private final int len; + + public LldbReadMemoryCommand(LldbManagerImpl manager, SBProcess process, Address addr, + ByteBuffer buf, int len) { + super(manager); + this.process = process; + this.addr = addr; + this.buf = buf; + this.len = len; + } + + @Override + public RangeSet complete(LldbPendingCommand pending) { + RangeSet rangeSet = TreeRangeSet.create(); + rangeSet.add(Range.closedOpen(addr.getOffset(), addr.getOffset() + len)); + return rangeSet; + } + + @Override + public void invoke() { + BigInteger offset = addr.getOffsetAsBigInteger(); + SBError error = new SBError(); + ByteArray buffer = new ByteArray(len); + long read = process.ReadMemory(offset, buffer, len, error); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, error.GetType() + ":" + stream.GetData()); + return; + } + for (int i = 0; i < read; i++) { + buf.put(i, buffer.getitem(i)); + } + buffer.delete(); + /* + for (int i = 0; i < len; i += 8) { + BigInteger increment = new BigInteger(Integer.toString(i)); + BigInteger res = process.ReadPointerFromMemory(offset.add(increment), error); + byte[] bytes = res.toByteArray(); + for (int j = 0; j < bytes.length; j++) { + buf.put(i + j, bytes[bytes.length - j - 1]); + } + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, error.GetType() + ":" + stream.GetData()); + break; + } + } + */ + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRemoveProcessCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRemoveProcessCommand.java new file mode 100644 index 0000000000..ca55158584 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRemoveProcessCommand.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBTarget; +import agent.lldb.manager.impl.LldbManagerImpl; + +/** + * Implementation of {@link LldbManager#removeProcess()} + */ +public class LldbRemoveProcessCommand extends AbstractLldbCommand { + private SBTarget session; + private String id; + + public LldbRemoveProcessCommand(LldbManagerImpl manager, SBTarget session, String id) { + super(manager); + this.session = session; + this.id = id; + } + + @Override + public void invoke() { + manager.removeProcess(manager.getProcess(session, id)); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestActivationCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestActivationCommand.java new file mode 100644 index 0000000000..fce3aaa743 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestActivationCommand.java @@ -0,0 +1,46 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.iface1.LldbModelTargetActiveScope; +import ghidra.dbg.target.TargetObject; + +public class LldbRequestActivationCommand extends AbstractLldbCommand { + + private LldbModelTargetActiveScope activator; + private TargetObject obj; + + /** + * Set focus for the current ref + * + * @param manager the manager to execute the command + * @param activator in most cases the root object (must be an ancestor for the ref) + * @param obj the desired object to be made active + */ + public LldbRequestActivationCommand(LldbManagerImpl manager, + LldbModelTargetActiveScope activator, + TargetObject obj) { + super(manager); + this.activator = activator; + this.obj = obj; + } + + @Override + public void invoke() { + activator.doRequestActivation(obj); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestFocusCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestFocusCommand.java new file mode 100644 index 0000000000..f87bab9fb6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbRequestFocusCommand.java @@ -0,0 +1,45 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.iface1.LldbModelTargetFocusScope; +import ghidra.dbg.target.TargetObject; + +public class LldbRequestFocusCommand extends AbstractLldbCommand { + + private LldbModelTargetFocusScope scope; + private TargetObject obj; + + /** + * Set focus for the current ref + * + * @param manager the manager to execute the command + * @param scope in most cases the root object (must be an ancestor for the ref) + * @param obj the desired focus + */ + public LldbRequestFocusCommand(LldbManagerImpl manager, LldbModelTargetFocusScope scope, + TargetObject obj) { + super(manager); + this.scope = scope; + this.obj = obj; + } + + @Override + public void invoke() { + scope.doRequestFocus(obj); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveProcessCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveProcessCommand.java new file mode 100644 index 0000000000..4321101dd9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveProcessCommand.java @@ -0,0 +1,44 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBDebugger; +import SWIG.SBProcess; +import agent.lldb.lldb.DebugClientImpl; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbSetActiveProcessCommand extends AbstractLldbCommand { + + private SBProcess process; + + /** + * Set the active process + * + * @param manager the manager to execute the command + * @param process the desired process + */ + public LldbSetActiveProcessCommand(LldbManagerImpl manager, SBProcess process) { + super(manager); + this.process = process; + } + + @Override + public void invoke() { + DebugClientImpl client = (DebugClientImpl) manager.getClient(); + SBDebugger debugger = client.getDebugger(); + debugger.SetSelectedTarget(process.GetTarget()); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveSessionCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveSessionCommand.java new file mode 100644 index 0000000000..ce1d2078f6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveSessionCommand.java @@ -0,0 +1,43 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBDebugger; +import SWIG.SBTarget; +import agent.lldb.lldb.DebugClientImpl; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbSetActiveSessionCommand extends AbstractLldbCommand { + private SBTarget session; + + /** + * Set the active session + * + * @param manager the manager to execute the command + * @param process the desired process + */ + public LldbSetActiveSessionCommand(LldbManagerImpl manager, SBTarget session) { + super(manager); + this.session = session; + } + + @Override + public void invoke() { + DebugClientImpl client = (DebugClientImpl) manager.getClient(); + SBDebugger debugger = client.getDebugger(); + debugger.SetSelectedTarget(session); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveThreadCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveThreadCommand.java new file mode 100644 index 0000000000..681e01a2fd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbSetActiveThreadCommand.java @@ -0,0 +1,46 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBThread; +import agent.lldb.manager.impl.LldbManagerImpl; + +public class LldbSetActiveThreadCommand extends AbstractLldbCommand { + + private SBThread thread; + private long frameId; + + /** + * Set the active thread + * + * @param manager the manager to execute the command + * @param thread the desired thread + * @param frameId the desired frame level + */ + public LldbSetActiveThreadCommand(LldbManagerImpl manager, SBThread thread, long frameId) { + super(manager); + this.thread = thread; + this.frameId = frameId; + } + + @Override + public void invoke() { + manager.getCurrentProcess().SetSelectedThread(thread); + if (frameId >= 0) { + manager.getCurrentProcess().GetSelectedThread().SetSelectedFrame(frameId); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbStepCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbStepCommand.java new file mode 100644 index 0000000000..cea2e8e2be --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbStepCommand.java @@ -0,0 +1,113 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.util.Map; + +import SWIG.*; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.evt.*; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.dbg.target.TargetSteppable.TargetStepKind; +import ghidra.util.Msg; + +/** + * Implementation of {@link LldbThread#stepInstruction()} + */ +public class LldbStepCommand extends AbstractLldbCommand { + + private SBThread thread; + private TargetStepKind kind; + private Map args; + private String lastCommand = ""; + + public LldbStepCommand(LldbManagerImpl manager, SBThread thread, TargetStepKind kind, + Map args) { + super(manager); + this.thread = thread; + this.kind = kind; + this.args = args; + } + + @Override + public boolean handle(LldbEvent evt, LldbPendingCommand pending) { + if (evt instanceof AbstractLldbCompletedCommandEvent && pending.getCommand().equals(this)) { + return evt instanceof LldbCommandErrorEvent || + !pending.findAllOf(LldbRunningEvent.class).isEmpty(); + } + else if (evt instanceof LldbRunningEvent) { + // Event happens no matter which interpreter received the command + pending.claim(evt); + return !pending.findAllOf(AbstractLldbCompletedCommandEvent.class).isEmpty(); + } + return false; + } + + @Override + public void invoke() { + RunMode rm = RunMode.eOnlyThisThread; + if (thread == null) { + thread = manager.getCurrentThread(); + rm = RunMode.eAllThreads; + } + if (kind == null) { + kind = (TargetStepKind) args.get("Kind"); + } + SBError error = new SBError(); + switch (kind) { + case INTO: + thread.StepInstruction(false, error); + break; + case OVER: + thread.StepInstruction(true, error); + break; + case LINE: + thread.StepInto(); + break; + case OVER_LINE: + thread.StepOver(rm, error); + break; + case RETURN: + thread.StepOut(error); + break; + case FINISH: + thread.StepOutOfFrame(thread.GetSelectedFrame(), error); + break; + case ADVANCE: + SBFileSpec file = (SBFileSpec) args.get("File"); + long line = (long) args.get("Line"); + error = thread.StepOverUntil(thread.GetSelectedFrame(), file, line); + break; + case EXTENDED: + manager.execute(new LldbEvaluateCommand(manager, lastCommand)); + break; + case SKIP: + default: + throw new UnsupportedOperationException("Step " + kind.name() + " not supported"); + } + if (!error.Success()) { + Msg.error(this, error.GetType() + " while stepping"); + } + } + + public String getLastCommand() { + return lastCommand; + } + + public void setLastCommand(String lastCommand) { + this.lastCommand = lastCommand; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbThreadHoldCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbThreadHoldCommand.java new file mode 100644 index 0000000000..c7ccb58d59 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbThreadHoldCommand.java @@ -0,0 +1,66 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import SWIG.SBError; +import SWIG.SBThread; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.util.Msg; + +public class LldbThreadHoldCommand extends AbstractLldbCommand { + + static final String FREEZE_ALL_THREADS_COMMAND = "~* f"; + static final String FREEZE_CURRENT_THREAD_COMMAND = "~. f"; + static final String UNFREEZE_CURRENT_THREAD_COMMAND = "~. u"; + static final String UNFREEZE_ALL_THREADS_COMMAND = "~* u"; + + static final String SUSPEND_ALL_THREADS_COMMAND = "~* n"; + static final String SUSPEND_CURRENT_THREAD_COMMAND = "~. n"; + static final String RESUME_CURRENT_THREAD_COMMAND = "~. m"; + static final String RESUME_ALL_THREADS_COMMAND = "~* m"; + + static final Boolean preferFreeze = true; + + private SBThread thread; + private Boolean set; + + /** + * Select the given thread + * + * @param manager the manager to execute the command + * @param thread the desired thread + * @param set hold or release + */ + public LldbThreadHoldCommand(LldbManagerImpl manager, SBThread thread, Boolean set) { + super(manager); + this.thread = thread; + this.set = set; + } + + @Override + public void invoke() { + SBError error = new SBError(); + if (set) { + thread.Suspend(error); + } + else { + thread.Resume(error); + } + if (!error.Success()) { + Msg.error(this, error.GetType() + " while placing hold"); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbWriteMemoryCommand.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbWriteMemoryCommand.java new file mode 100644 index 0000000000..7db2f26aba --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/cmd/LldbWriteMemoryCommand.java @@ -0,0 +1,63 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.cmd; + +import java.math.BigInteger; +import java.nio.ByteBuffer; + +import SWIG.*; +import agent.lldb.manager.impl.LldbManagerImpl; +import ghidra.program.model.address.Address; +import ghidra.util.Msg; + +/** + * Implementation of {@link LldbProcess#writeMemory(long, ByteBuffer, int)} + */ +public class LldbWriteMemoryCommand extends AbstractLldbCommand { + + private final SBProcess process; + private final Address addr; + private final ByteBuffer buf; + private final int len; + + public LldbWriteMemoryCommand(LldbManagerImpl manager, SBProcess process, Address addr, + ByteBuffer buf, int len) { + super(manager); + this.process = process; + this.addr = addr; + this.buf = buf.duplicate(); + this.len = len; + } + + @Override + public void invoke() { + BigInteger offset = addr.getOffsetAsBigInteger(); + byte[] byteArray = buf.array(); + ByteArray buffer = new ByteArray(len); + for (int i = 0; i < len; i++) { + buffer.setitem(i, byteArray[i]); + } + SBError error = new SBError(); + process.WriteMemory(offset, buffer, len, error); + if (!error.Success()) { + SBStream stream = new SBStream(); + error.GetDescription(stream); + Msg.error(this, error.GetType() + ":" + stream.GetData()); + } + buffer.delete(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbCompletedCommandEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbCompletedCommandEvent.java new file mode 100644 index 0000000000..ba17740484 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbCompletedCommandEvent.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; + +public class AbstractLldbCompletedCommandEvent extends AbstractLldbEvent { + + public AbstractLldbCompletedCommandEvent(String message) { + super(message); + } + + public AbstractLldbCompletedCommandEvent() { + super(null); + } + + public StateType newState() { + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbEvent.java new file mode 100644 index 0000000000..01196326b9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/AbstractLldbEvent.java @@ -0,0 +1,84 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbCause.Causes; +import agent.lldb.manager.LldbEvent; +import agent.lldb.manager.LldbReason; +import agent.lldb.manager.cmd.LldbPendingCommand; + +/** + * A base class for lldb events + * + * @param the type of information detailing the event + */ +public abstract class AbstractLldbEvent implements LldbEvent { + private final T info; + protected LldbCause cause = Causes.UNCLAIMED; + protected boolean stolen = false; + //protected DebugStatus status = DebugStatus.NO_CHANGE; + + /** + * Construct a new event with the given information + * + * @param info the information + */ + protected AbstractLldbEvent(T info) { + this.info = info; + } + + @Override + public T getInfo() { + return info; + } + + @Override + public void claim(LldbPendingCommand cmd) { + cause = cmd; + } + + @Override + public LldbCause getCause() { + return cause; + } + + public LldbReason getReason() { + return LldbReason.getReason(null); + } + + @Override + public void steal() { + stolen = true; + } + + @Override + public boolean isStolen() { + return stolen; + } + + @Override + public String toString() { + return "<" + getClass().getSimpleName() + " " + info + " >"; + } + + @Override + public StateType newState() { + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointAutoContinueChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointAutoContinueChangedEvent.java new file mode 100644 index 0000000000..99d1971d17 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointAutoContinueChangedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeAutoContinueChanged + */ +public class LldbBreakpointAutoContinueChangedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointAutoContinueChangedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCommandChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCommandChangedEvent.java new file mode 100644 index 0000000000..87a058d00e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCommandChangedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeCommandChanged & WatchpointEventType.eWatchpointEventTypeCommandChanged + */ +public class LldbBreakpointCommandChangedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointCommandChangedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointConditionChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointConditionChangedEvent.java new file mode 100644 index 0000000000..85a0efe352 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointConditionChangedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeConditionChanged & WatchpointEventType.eWatchpointEventTypeConditionChanged + */ +public class LldbBreakpointConditionChangedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointConditionChangedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCreatedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCreatedEvent.java new file mode 100644 index 0000000000..00ce87629a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointCreatedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeAdded & WatchpointEventType.eWatchpointEventTypeAdded + */ +public class LldbBreakpointCreatedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointCreatedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDeletedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDeletedEvent.java new file mode 100644 index 0000000000..3147ee565a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDeletedEvent.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeRemoved & WatchpointEventType.eWatchpointEventTypeRemoved + */ +public class LldbBreakpointDeletedEvent extends AbstractLldbEvent { + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint number must be specified by lldb. + * + * @param info breakpoint info + */ + public LldbBreakpointDeletedEvent(DebugBreakpointInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDisabledEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDisabledEvent.java new file mode 100644 index 0000000000..9be406b305 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointDisabledEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeDisabled & WatchpointEventType.eWatchpointEventTypeDisabled + */ +public class LldbBreakpointDisabledEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointDisabledEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointEnabledEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointEnabledEvent.java new file mode 100644 index 0000000000..8a16542bda --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointEnabledEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeEnabled & WatchpointEventType.eWatchpointEventTypeEnabled + */ +public class LldbBreakpointEnabledEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointEnabledEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointHitEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointHitEvent.java new file mode 100644 index 0000000000..d9721bdc2a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointHitEvent.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugProcessInfo; + +public class LldbBreakpointHitEvent extends AbstractLldbEvent { + + public LldbBreakpointHitEvent(DebugProcessInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointIgnoreChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointIgnoreChangedEvent.java new file mode 100644 index 0000000000..6396be352a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointIgnoreChangedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeIgnoreChanged & WatchpointEventType.eWatchpointEventTypeIgnoreChanged + */ +public class LldbBreakpointIgnoreChangedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointIgnoreChangedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointInvalidatedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointInvalidatedEvent.java new file mode 100644 index 0000000000..0fc9baa470 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointInvalidatedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeInvalidType & WatchpointEventType.eWatchpointEventTypeInvalidType + */ +public class LldbBreakpointInvalidatedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointInvalidatedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsAddedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsAddedEvent.java new file mode 100644 index 0000000000..36133ee2c2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsAddedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeLocationsAdded + */ +public class LldbBreakpointLocationsAddedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointLocationsAddedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsRemovedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsRemovedEvent.java new file mode 100644 index 0000000000..34d220cc2b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsRemovedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeLocationsRemoved + */ +public class LldbBreakpointLocationsRemovedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointLocationsRemovedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsResolvedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsResolvedEvent.java new file mode 100644 index 0000000000..2c42dadfda --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointLocationsResolvedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeLocationsResolved + */ +public class LldbBreakpointLocationsResolvedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointLocationsResolvedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointModifiedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointModifiedEvent.java new file mode 100644 index 0000000000..47b40d7f4a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointModifiedEvent.java @@ -0,0 +1,57 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; +import agent.lldb.lldb.DebugClient; + +/** + * The event corresponding with SBTarget.eBroadcastBitWatchpointChanged & SBTarget.eBroadcastBitBreakpointChanged + */ +public class LldbBreakpointModifiedEvent extends AbstractLldbEvent { + + private String id; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + */ + public LldbBreakpointModifiedEvent(DebugBreakpointInfo info) { + super(info); + this.id = DebugClient.getId(info.pt); + } + + public LldbBreakpointModifiedEvent(String id) { + super(null); + this.id = id; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public DebugBreakpointInfo getBreakpointInfo() { + return getInfo(); + } + + public String getId() { + return id; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointThreadChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointThreadChangedEvent.java new file mode 100644 index 0000000000..1a23c7bf20 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointThreadChangedEvent.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with BreakpointEventType.eBreakpointEventTypeThreadChanged & WatchpointEventType.eWatchpointEventTypeThreadChanged + */ +public class LldbBreakpointThreadChangedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * Construct a new event by parsing the tail for information + * + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointThreadChangedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointTypeChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointTypeChangedEvent.java new file mode 100644 index 0000000000..549179ed1e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbBreakpointTypeChangedEvent.java @@ -0,0 +1,45 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugBreakpointInfo; + +/** + * The event corresponding with WatchpointEventType.eWatchpointEventTypeTypeChanged + */ +public class LldbBreakpointTypeChangedEvent extends AbstractLldbEvent { + private final Object bkptInfo; + + /** + * The breakpoint information must be specified by lldb. + * + * @param info breakpoint info + * + */ + public LldbBreakpointTypeChangedEvent(DebugBreakpointInfo info) { + super(info); + this.bkptInfo = info.pt; + } + + /** + * Get the breakpoint information + * + * @return the parsed, but not processed, breakpoint information + */ + public Object getBreakpointInfo() { + return bkptInfo; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandDoneEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandDoneEvent.java new file mode 100644 index 0000000000..18e9bd5288 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandDoneEvent.java @@ -0,0 +1,46 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; +import agent.lldb.manager.LldbCommand; + +public class LldbCommandDoneEvent extends AbstractLldbCompletedCommandEvent { + + private LldbCommand cmd; + + /** + * Construct a new event, parsing the tail for information + */ + public LldbCommandDoneEvent() { + super(); + } + + public LldbCommandDoneEvent(LldbCommand cmd) { + super(cmd.toString()); + this.cmd = cmd; + } + + @Override + public StateType newState() { + return StateType.eStateStopped; + } + + public LldbCommand getCmd() { + return cmd; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandErrorEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandErrorEvent.java new file mode 100644 index 0000000000..795b36881e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandErrorEvent.java @@ -0,0 +1,45 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; +import agent.lldb.manager.LldbEvent; + +public class LldbCommandErrorEvent extends AbstractLldbCompletedCommandEvent { + + /** + * Construct a new event using the given error message + * + * @param message the message + * @return the new event + */ + public static LldbEvent fromMessage(String message) { + return new LldbCommandErrorEvent(message); + } + + protected LldbCommandErrorEvent() { + super(); + } + + protected LldbCommandErrorEvent(String message) { + super(message); + } + + @Override + public StateType newState() { + return StateType.eStateStopped; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandRunningEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandRunningEvent.java new file mode 100644 index 0000000000..d97894b155 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbCommandRunningEvent.java @@ -0,0 +1,33 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; + +public class LldbCommandRunningEvent extends AbstractLldbCompletedCommandEvent { + + /** + * Construct a new event, parsing the tail for information + */ + public LldbCommandRunningEvent() { + super(); + } + + @Override + public StateType newState() { + return StateType.eStateRunning; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbConsoleOutputEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbConsoleOutputEvent.java new file mode 100644 index 0000000000..d3b2d3a3bc --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbConsoleOutputEvent.java @@ -0,0 +1,58 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.SBEvent; +import SWIG.SBStream; +import agent.lldb.lldb.DebugProcessInfo; +import ghidra.util.Msg; + +/** + * The event corresponding with SBProcess.eBroadcastBitSTDERR & SBProcess.eBroadcastBitSTDOUT + */ +public class LldbConsoleOutputEvent extends AbstractLldbEvent { + + private int mask; + private String text; + + public LldbConsoleOutputEvent(DebugProcessInfo info) { + super(info); + this.mask = 0; + this.text = SBEvent.GetCStringFromEvent(info.event); + SBStream stream = new SBStream(); + boolean success = info.event.GetDescription(stream); + if (success) { + Msg.info(this, stream.GetData()); + if (text == null) { + text = stream.GetData(); + } + } + } + + public LldbConsoleOutputEvent(int mask, String text) { + super(null); + this.mask = mask; + this.text = text; + } + + public String getOutput() { + return text; + } + + public int getMask() { + return mask; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbExceptionEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbExceptionEvent.java new file mode 100644 index 0000000000..201a3ce2ae --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbExceptionEvent.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugProcessInfo; + +public class LldbExceptionEvent extends AbstractLldbEvent { + + public LldbExceptionEvent(DebugProcessInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbInterruptEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbInterruptEvent.java new file mode 100644 index 0000000000..a43b02b057 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbInterruptEvent.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugProcessInfo; + +/** + * The event corresponding with SBProcess.eBroadcastBitInterrupt + */ +public class LldbInterruptEvent extends AbstractLldbEvent { + + /** + * The selected target ID must be specified by lldb. + * + * @param targetID lldb-provided id + */ + public LldbInterruptEvent(DebugProcessInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleLoadedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleLoadedEvent.java new file mode 100644 index 0000000000..c258416021 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleLoadedEvent.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugModuleInfo; + +/** + * The event corresponding with SBTarget.eBroadcastBitModulesLoaded + */ +public class LldbModuleLoadedEvent extends AbstractLldbEvent { + + public LldbModuleLoadedEvent(DebugModuleInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleUnloadedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleUnloadedEvent.java new file mode 100644 index 0000000000..d8c3de655d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbModuleUnloadedEvent.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugModuleInfo; + +/** + * The event corresponding with SBTarget.eBroadcastBitModulesUnloaded + */ +public class LldbModuleUnloadedEvent extends AbstractLldbEvent { + + public LldbModuleUnloadedEvent(DebugModuleInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessCreatedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessCreatedEvent.java new file mode 100644 index 0000000000..debf731e73 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessCreatedEvent.java @@ -0,0 +1,33 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; +import agent.lldb.lldb.DebugProcessInfo; + +public class LldbProcessCreatedEvent extends AbstractLldbEvent { + + public LldbProcessCreatedEvent(DebugProcessInfo info) { + super(info); + } + + @Override + public StateType newState() { + DebugProcessInfo pinfo = (DebugProcessInfo) getInfo(); + return pinfo.process.GetState(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessExitedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessExitedEvent.java new file mode 100644 index 0000000000..890f22dd4b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessExitedEvent.java @@ -0,0 +1,31 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; + +public class LldbProcessExitedEvent extends AbstractLldbEvent { + + public LldbProcessExitedEvent(Integer exitCode) { + super(exitCode); + } + + @Override + public StateType newState() { + return StateType.eStateExited; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessReplacedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessReplacedEvent.java new file mode 100644 index 0000000000..f0d9d691c5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessReplacedEvent.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; +import agent.lldb.lldb.DebugProcessInfo; + +public class LldbProcessReplacedEvent extends AbstractLldbEvent { + + public LldbProcessReplacedEvent(DebugProcessInfo info) { + super(info); + } + + @Override + public StateType newState() { + // NB: it's very tempting to relay the info we have, but + // doing so fouls up a lot of the tests because the stopped + // message arrives ahead of breakpointHit + + //DebugProcessInfo pinfo = (DebugProcessInfo) getInfo(); + //return pinfo.process.GetState(); + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessSelectedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessSelectedEvent.java new file mode 100644 index 0000000000..291961d764 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProcessSelectedEvent.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.SBProcess; +import agent.lldb.lldb.DebugClient; + +public class LldbProcessSelectedEvent extends AbstractLldbEvent { + private final String id; + private SBProcess process; + + /** + * The selected process ID must be specified by lldb. + * + * @param id lldb-defined id + */ + public LldbProcessSelectedEvent(SBProcess process) { + super(DebugClient.getId(process)); + this.process = process; + this.id = DebugClient.getId(process); + } + + /** + * Get the selected process ID + * + * @return the process ID + */ + public String getProcessId() { + return id; + } + + public SBProcess getProcess() { + return process; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProfileDataEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProfileDataEvent.java new file mode 100644 index 0000000000..35571daf08 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbProfileDataEvent.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugProcessInfo; + +/** + * The event corresponding with SBProcess.eBroadcastBitProfileData + */ +public class LldbProfileDataEvent extends AbstractLldbEvent { + + /** + * The selected target ID must be specified by lldb. + * + * @param targetID lldb-provided id + */ + public LldbProfileDataEvent(DebugProcessInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbRunningEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbRunningEvent.java new file mode 100644 index 0000000000..0d60304ab1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbRunningEvent.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; + +public class LldbRunningEvent extends AbstractLldbEvent { + private final String id; + + /** + * Construct a new event, parsing the tail for information + * + * A thread ID must be specified by lldb. + * + * @param id the event info + */ + public LldbRunningEvent(String id) { + super(id); + this.id = id; + } + + /** + * Get the ID of the thread causing the event + * + * @return the thread ID + */ + public String getThreadId() { + return id; + } + + @Override + public StateType newState() { + return StateType.eStateRunning; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSelectedFrameChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSelectedFrameChangedEvent.java new file mode 100644 index 0000000000..3a7b831282 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSelectedFrameChangedEvent.java @@ -0,0 +1,66 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.lldb.DebugThreadInfo; + +/** + * The event corresponding with SBThread.eBroadcastBitSelectedFrameChanged + */ +public class LldbSelectedFrameChangedEvent extends AbstractLldbEvent { + private final String id; + private StateType state; + private SBThread thread; + private SBFrame frame; + + /** + * The selected thread ID must be specified by lldb. + * + * @param frame + * @param id lldb-provided id + */ + public LldbSelectedFrameChangedEvent(DebugThreadInfo info) { + super(DebugClient.getId(info.thread)); + this.id = DebugClient.getId(thread); + this.state = info.thread.GetProcess().GetState(); + this.thread = info.thread; + this.frame = info.frame; + } + + /** + * Get the selected thread ID + * + * @return the thread ID + */ + public String getThreadId() { + return id; + } + + public StateType getState() { + return state; + } + + public SBThread getThread() { + return thread; + } + + public SBFrame getFrame() { + return frame; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionCreatedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionCreatedEvent.java new file mode 100644 index 0000000000..a5e8116894 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionCreatedEvent.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugSessionInfo; + +public class LldbSessionCreatedEvent extends AbstractLldbEvent { + + public LldbSessionCreatedEvent(DebugSessionInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionExitedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionExitedEvent.java new file mode 100644 index 0000000000..3c09fcf269 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionExitedEvent.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.StateType; + +public class LldbSessionExitedEvent extends AbstractLldbEvent { + + public String sessionId; + public Integer exitCode; + + public LldbSessionExitedEvent(String sessionId, Integer exitCode) { + super(exitCode); + this.sessionId = sessionId; + this.exitCode = exitCode; + } + + @Override + public StateType newState() { + return StateType.eStateExited; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionReplacedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionReplacedEvent.java new file mode 100644 index 0000000000..7d99dd1d39 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionReplacedEvent.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugSessionInfo; + +public class LldbSessionReplacedEvent extends AbstractLldbEvent { + + public LldbSessionReplacedEvent(DebugSessionInfo next) { + super(next); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionSelectedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionSelectedEvent.java new file mode 100644 index 0000000000..acca9e6b3b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSessionSelectedEvent.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.SBTarget; +import agent.lldb.lldb.DebugClient; + +public class LldbSessionSelectedEvent extends AbstractLldbEvent { + private final String id; + private SBTarget session; + + /** + * The selected session ID must be specified by lldb. + * + * @param session lldb-defined session + */ + public LldbSessionSelectedEvent(SBTarget session) { + super(DebugClient.getId(session)); + this.session = session; + this.id = DebugClient.getId(session); + } + + /** + * Get the selected session ID + * + * @return the session ID + */ + public String getSessionId() { + return id; + } + + public SBTarget getSession() { + return session; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStateChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStateChangedEvent.java new file mode 100644 index 0000000000..4fc55f7faa --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStateChangedEvent.java @@ -0,0 +1,55 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.SBFrame; +import SWIG.SBThread; +import SWIG.StateType; +import agent.lldb.lldb.DebugProcessInfo; + +/** + * The event corresponding with SBProcess.eBroadcastBitStateChanged + */ +public class LldbStateChangedEvent extends AbstractLldbEvent { + + private long argument; + private StateType state = null; + + public LldbStateChangedEvent(DebugProcessInfo info) { + super(info); + } + + public long getArgument() { + return argument; + } + + public void setArgument(long argument) { + this.argument = argument; + } + + public SBFrame getFrame(SBThread thread) { + return null; + } + + @Override + public StateType newState() { + return state; + } + + public void setState(StateType state) { + this.state = state; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStoppedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStoppedEvent.java new file mode 100644 index 0000000000..4fa4bc8885 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStoppedEvent.java @@ -0,0 +1,58 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.*; + +public class LldbStoppedEvent extends AbstractLldbEvent { + private final String id; + + /** + * Construct a new event, parsing the tail for information + * + * A thread ID must be specified by lldb. + * + * @param id the event info + */ + public LldbStoppedEvent(String id) { + super(id); + this.id = id; + } + + /** + * Get the ID of the thread causing the event + * + * @return the thread ID + */ + public String getThreadId() { + return id; + } + + /** + * Get the current frame, if applicable + * + * @param thread the current thread + * @return the frame + */ + public SBFrame getFrame(SBThread thread) { + return null; + } + + @Override + public StateType newState() { + return StateType.eStateStopped; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStructuredDataEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStructuredDataEvent.java new file mode 100644 index 0000000000..2f1d524e0c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbStructuredDataEvent.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugProcessInfo; + +/** + * The event corresponding with SBProcess.eBroadcastBitStructuredData + */ +public class LldbStructuredDataEvent extends AbstractLldbEvent { + + /** + * The selected target ID must be specified by lldb. + * + * @param targetID lldb-provided id + */ + public LldbStructuredDataEvent(DebugProcessInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSymbolsLoadedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSymbolsLoadedEvent.java new file mode 100644 index 0000000000..decb3e0fa8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSymbolsLoadedEvent.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugEventInfo; + +/** + * The event corresponding with SBTarget.eBroadcastBitSymbolsLoaded + */ +public class LldbSymbolsLoadedEvent extends AbstractLldbEvent { + + /** + * The selected target ID must be specified by lldb. + * + * @param targetID lldb-provided id + */ + public LldbSymbolsLoadedEvent(DebugEventInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSystemsEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSystemsEvent.java new file mode 100644 index 0000000000..6b19656e51 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbSystemsEvent.java @@ -0,0 +1,29 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +public class LldbSystemsEvent extends AbstractLldbEvent { + + /** + * The selected target ID must be specified by lldb. + * + * @param targetID lldb-provided id + */ + public LldbSystemsEvent(Long targetID) { + super(targetID); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadCreatedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadCreatedEvent.java new file mode 100644 index 0000000000..764af3d6be --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadCreatedEvent.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugThreadInfo; + +public class LldbThreadCreatedEvent extends AbstractLldbEvent { + + public LldbThreadCreatedEvent(DebugThreadInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadExitedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadExitedEvent.java new file mode 100644 index 0000000000..b414f57e0e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadExitedEvent.java @@ -0,0 +1,24 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +public class LldbThreadExitedEvent extends AbstractLldbEvent { + + public LldbThreadExitedEvent(Integer exitCode) { + super(exitCode); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadReplacedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadReplacedEvent.java new file mode 100644 index 0000000000..bd74d8e579 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadReplacedEvent.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugThreadInfo; + +public class LldbThreadReplacedEvent extends AbstractLldbEvent { + + public LldbThreadReplacedEvent(DebugThreadInfo info) { + super(info); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadResumedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadResumedEvent.java new file mode 100644 index 0000000000..7134c0b949 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadResumedEvent.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugThreadInfo; + +/** + * The event corresponding with SBThread.eBroadcastBitThreadResumed + */ +public class LldbThreadResumedEvent extends AbstractLldbEvent { + + public LldbThreadResumedEvent(DebugThreadInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSelectedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSelectedEvent.java new file mode 100644 index 0000000000..6fec5169e8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSelectedEvent.java @@ -0,0 +1,66 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.lldb.DebugThreadInfo; + +/** + * The event corresponding with SBThread.eBroadcastBitThreadSelected + */ +public class LldbThreadSelectedEvent extends AbstractLldbEvent { + private final String id; + private StateType state; + private SBThread thread; + private SBFrame frame; + + /** + * The selected thread ID must be specified by lldb. + * + * @param frame + * @param id lldb-provided id + */ + public LldbThreadSelectedEvent(DebugThreadInfo info) { + super(DebugClient.getId(info.thread)); + this.id = DebugClient.getId(info.thread); + this.state = info.thread.GetProcess().GetState(); + this.thread = info.thread; + this.frame = info.frame; + } + + /** + * Get the selected thread ID + * + * @return the thread ID + */ + public String getThreadId() { + return id; + } + + public StateType getState() { + return state; + } + + public SBThread getThread() { + return thread; + } + + public SBFrame getFrame() { + return frame; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadStackChangedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadStackChangedEvent.java new file mode 100644 index 0000000000..c5a6bccb68 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadStackChangedEvent.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugThreadInfo; + +/** + * The event corresponding with SBThread.eBroadcastBitStackChanged + */ +public class LldbThreadStackChangedEvent extends AbstractLldbEvent { + + public LldbThreadStackChangedEvent(DebugThreadInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSuspendedEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSuspendedEvent.java new file mode 100644 index 0000000000..edd8142b37 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbThreadSuspendedEvent.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugThreadInfo; + +/** + * The event corresponding with SBThread.eBroadcastBitThreadSuspended + */ +public class LldbThreadSuspendedEvent extends AbstractLldbEvent { + + public LldbThreadSuspendedEvent(DebugThreadInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbWatchpointHitEvent.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbWatchpointHitEvent.java new file mode 100644 index 0000000000..29cfe42427 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/evt/LldbWatchpointHitEvent.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.evt; + +import agent.lldb.lldb.DebugProcessInfo; + +public class LldbWatchpointHitEvent extends AbstractLldbEvent { + + public LldbWatchpointHitEvent(DebugProcessInfo info) { + super(info); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbDebugOutputCallbacks.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbDebugOutputCallbacks.java new file mode 100644 index 0000000000..c5e74611c2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbDebugOutputCallbacks.java @@ -0,0 +1,33 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.impl; + +import agent.lldb.lldb.DebugOutputCallbacks; +import agent.lldb.manager.evt.LldbConsoleOutputEvent; + +public class LldbDebugOutputCallbacks implements DebugOutputCallbacks { + private LldbManagerImpl manager; + + public LldbDebugOutputCallbacks(LldbManagerImpl manager) { + this.manager = manager; + } + + @Override + public void output(int mask, String text) { + manager.processEvent(new LldbConsoleOutputEvent(mask, text)); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbManagerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbManagerImpl.java new file mode 100644 index 0000000000..3cd65996df --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/manager/impl/LldbManagerImpl.java @@ -0,0 +1,1649 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.manager.impl; + +import static ghidra.async.AsyncUtils.*; + +import java.math.BigInteger; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; + +import org.apache.commons.lang3.tuple.Pair; + +import SWIG.*; +import agent.lldb.gadp.impl.AbstractClientThreadExecutor; +import agent.lldb.gadp.impl.LldbClientThreadExecutor; +import agent.lldb.lldb.*; +import agent.lldb.lldb.DebugClient.DebugEndSessionFlags; +import agent.lldb.lldb.DebugClient.DebugStatus; +import agent.lldb.manager.*; +import agent.lldb.manager.LldbCause.Causes; +import agent.lldb.manager.breakpoint.LldbBreakpointInfo; +import agent.lldb.manager.breakpoint.LldbBreakpointType; +import agent.lldb.manager.cmd.*; +import agent.lldb.manager.evt.*; +import agent.lldb.model.iface1.*; +import ghidra.async.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.util.HandlerMap; +import ghidra.lifecycle.Internal; +import ghidra.util.Msg; +import ghidra.util.datastruct.ListenerSet; + +public class LldbManagerImpl implements LldbManager { + + private String LldbSrvTransport; + + public DebugStatus status; + + protected AbstractClientThreadExecutor executor; + protected DebugClientReentrant reentrantClient; + + private List> activeCmds = new ArrayList<>(); + + protected final Map sessions = new LinkedHashMap<>(); + protected SBTarget curSession = null; + private final Map unmodifiableSessions = + Collections.unmodifiableMap(sessions); + + protected final Map> processes = new LinkedHashMap<>(); + protected final Map> threads = new LinkedHashMap<>(); + protected final Map> modules = new LinkedHashMap<>(); + private final Map> breakpoints = new LinkedHashMap<>(); + + protected final AsyncReference state = new AsyncReference<>(null); + private final HandlerMap, Void, DebugStatus> handlerMap = new HandlerMap<>(); + private final Map, DebugStatus> statusMap = new LinkedHashMap<>(); + private final ListenerSet listenersEvent = + new ListenerSet<>(LldbEventsListener.class); + + private SBEvent currentEvent; + private SBTarget currentSession; + private SBProcess currentProcess; + private SBThread currentThread; + private SBTarget eventSession; + private SBProcess eventProcess; + private SBThread eventThread; + private volatile boolean waiting = false; + private boolean kernelMode = false; + private CompletableFuture continuation; + + /** + * Instantiate a new manager + */ + public LldbManagerImpl() { + defaultHandlers(); + } + + /** + * Use {@link SBThreadImpl#remove()} instead + * + * @param id the thread ID to remove + */ + public void removeThread(String processId, String id) { + synchronized (threads) { + if (threads.get(processId).remove(id) == null) { + throw new IllegalArgumentException("There is no thread with id " + id); + } + } + } + + @Override + public SBThread getThread(SBProcess process, String tid) { + synchronized (threads) { + return threads.get(DebugClient.getId(process)).get(tid); + } + } + + public void addThreadIfAbsent(SBProcess process, SBThread thread) { + synchronized (threads) { + if (!process.IsValid()) + return; + Map map = threads.get(DebugClient.getId(process)); + if (map == null) { + map = new HashMap<>(); + threads.put(DebugClient.getId(process), map); + } + String id = DebugClient.getId(thread); + SBThread pred = map.get(id); + if (!map.containsKey(id) || !thread.equals(pred)) { + if (thread.IsValid()) { + DebugThreadInfo info = new DebugThreadInfo(thread); + if (!map.containsKey(id)) { + getClient().processEvent(new LldbThreadCreatedEvent(info)); + } + else { + getClient().processEvent(new LldbThreadReplacedEvent(info)); + } + map.put(id, thread); + } + } + } + } + + /** + * Use {@link SBProcessImpl#remove(LldbCause)} instead + * + * @param id the process ID to remove + * @param cause the cause of removal + */ + @Internal + public void removeProcess(String sessionId, String id, LldbCause cause) { + synchronized (processes) { + SBProcess proc = processes.get(sessionId).remove(id); + if (proc == null) { + throw new IllegalArgumentException("There is no process with id " + id); + } + Set toRemove = new HashSet<>(); + String processId = DebugClient.getId(proc); + for (String tid : threads.get(processId).keySet()) { + SBThread thread = threads.get(processId).get(tid); + String pid = DebugClient.getId(thread.GetProcess()); + if (pid.equals(id)) { + toRemove.add(tid); + } + } + for (String tid : toRemove) { + removeThread(processId, tid); + } + getEventListeners().fire.processRemoved(id, cause); + } + } + + /** + * Update the selected process + * + * @param process the process that now has focus + * @param cause the cause of the focus change + * @param fire signal listeners + * @return success status + */ + @Override + public SBProcess getProcess(SBTarget session, String id) { + synchronized (processes) { + String sessionId = DebugClient.getId(session); + SBProcess result = processes.get(sessionId).get(id); + if (result == null) { + throw new IllegalArgumentException("There is no process with id " + id); + } + return result; + } + } + + public void addProcessIfAbsent(SBTarget session, SBProcess process) { + synchronized (processes) { + if (!session.IsValid()) + return; + String sessionId = DebugClient.getId(session); + Map map = processes.get(sessionId); + if (map == null) { + map = new HashMap<>(); + processes.put(sessionId, map); + } + String id = DebugClient.getId(process); + SBProcess pred = map.get(id); + if (!map.containsKey(id) || !process.equals(pred)) { + if (process.IsValid()) { + DebugProcessInfo info = new DebugProcessInfo(process); + if (!map.containsKey(id)) { + getClient().processEvent(new LldbProcessCreatedEvent(info)); + } + else { + getClient().processEvent(new LldbProcessReplacedEvent(info)); + } + map.put(id, process); + } + } + } + } + + /** + * Use {@link SBTargetImpl#remove(LldbCause)} instead + * + * @param id the session ID to remove + * @param cause the cause of removal + */ + @Internal + public void removeSession(String id, LldbCause cause) { + synchronized (sessions) { + if (sessions.remove(id) == null) { + throw new IllegalArgumentException("There is no session with id " + id); + } + getEventListeners().fire.sessionRemoved(id, cause); + } + } + + @Override + public SBTarget getSession(String id) { + synchronized (sessions) { + SBTarget result = sessions.get(id); + if (result == null) { + throw new IllegalArgumentException("There is no session with id " + id); + } + return result; + } + } + + public void addSessionIfAbsent(SBTarget session) { + synchronized (sessions) { + String id = DebugClient.getId(session); + SBTarget pred = sessions.get(id); + if (!sessions.containsKey(id) || !session.equals(pred)) { + if (session.IsValid()) { + DebugSessionInfo info = new DebugSessionInfo(session); + if (sessions.containsKey(id)) { + //removeSession(sessions.get(id)); + getClient().processEvent(new LldbSessionReplacedEvent(info)); + } + else { + getClient().processEvent(new LldbSessionCreatedEvent(info)); + } + sessions.put(id, session); + } + } + } + } + + /** + * Use {@link SBModule#remove()} instead + * + * @param id the module name to remove + */ + public void removeModule(SBTarget session, String id) { + synchronized (modules) { + if (modules.get(DebugClient.getId(session)).remove(id) == null) { + throw new IllegalArgumentException("There is no module with id " + id); + } + } + } + + @Override + public SBModule getModule(SBTarget session, String id) { + synchronized (modules) { + return modules.get(DebugClient.getId(session)).get(id); + } + } + + public void addModuleIfAbsent(SBTarget session, SBModule module) { + synchronized (modules) { + if (!session.IsValid()) + return; + String sessionId = DebugClient.getId(session); + Map map = modules.get(sessionId); + if (map == null) { + map = new HashMap<>(); + modules.put(sessionId, map); + } + String id = DebugClient.getId(module); + if (!map.containsKey(id)) { + map.put(id, module); + getClient().processEvent( + new LldbModuleLoadedEvent(new DebugModuleInfo(eventProcess, module))); + } + } + } + + /** + * @param id the module name to remove + */ + public void removeBreakpoint(SBTarget session, String id) { + synchronized (breakpoints) { + String sessionId = DebugClient.getId(session); + if (breakpoints.get(sessionId).remove(id) == null) { + throw new IllegalArgumentException("There is no module with id " + id); + } + } + } + + public Object getBreakpoint(SBTarget session, String id) { + synchronized (breakpoints) { + return getKnownBreakpoints(session).get(id); + } + } + + public void addBreakpointIfAbsent(SBTarget session, Object bpt) { + synchronized (breakpoints) { + if (!session.IsValid()) + return; + String sessionId = DebugClient.getId(session); + Map map = breakpoints.get(sessionId); + if (map == null) { + map = new HashMap<>(); + breakpoints.put(sessionId, map); + } + String id = DebugClient.getId(bpt); + if (!map.containsKey(id)) { + map.put(id, bpt); + getClient().processEvent( + new LldbBreakpointCreatedEvent(new DebugBreakpointInfo(null, bpt))); + } + } + } + + @Override + public Map getKnownThreads(SBProcess process) { + String processId = DebugClient.getId(process); + Map map = threads.get(processId); + if (map == null) { + map = new HashMap<>(); + threads.put(DebugClient.getId(process), map); + } + return map; + } + + @Override + public Map getKnownProcesses(SBTarget session) { + String sessionId = DebugClient.getId(session); + Map map = processes.get(sessionId); + if (map == null) { + map = new HashMap<>(); + processes.put(sessionId, map); + } + return map; + } + + @Override + public Map getKnownSessions() { + return unmodifiableSessions; + } + + @Override + public Map getKnownModules(SBTarget session) { + String sessionId = DebugClient.getId(session); + Map map = modules.get(sessionId); + if (map == null) { + map = new HashMap<>(); + modules.put(sessionId, map); + } + return map; + } + + @Override + public Map getKnownBreakpoints(SBTarget session) { + String sessionId = DebugClient.getId(session); + Map map = breakpoints.get(sessionId); + if (map == null) { + map = new HashMap<>(); + breakpoints.put(sessionId, map); + } + return map; + } + + private Object addKnownBreakpoint(SBTarget session, Object info, boolean expectExisting) { + String bptId = DebugClient.getId(info); + Object old = getKnownBreakpoints(session).put(bptId, info); + if (expectExisting && old == null) { + Msg.warn(this, "Breakpoint " + bptId + " is not known"); + } + else if (!expectExisting && old != null) { + Msg.warn(this, "Breakpoint " + bptId + " is already known"); + } + return old; + } + + private Object getKnownBreakpoint(SBTarget session, String id) { + Object info = getKnownBreakpoints(session).get(id); + if (info == null) { + Msg.warn(this, "Breakpoint " + id + " is not known"); + } + return info; + } + + private Object removeKnownBreakpoint(SBTarget session, String id) { + Object del = getKnownBreakpoints(session).remove(id); + if (del == null) { + Msg.warn(this, "Breakpoint " + id + " is not known"); + } + return del; + } + + @Override + public CompletableFuture insertBreakpoint(String loc, + LldbBreakpointType type) { + return execute(new LldbInsertBreakpointCommand(this, loc, type)); + } + + @Override + public CompletableFuture insertBreakpoint(long loc, int len, + LldbBreakpointType type) { + return execute(new LldbInsertBreakpointCommand(this, loc, len, type)); + } + + @Override + public CompletableFuture disableBreakpoints(String... ids) { + return execute(new LldbDisableBreakpointsCommand(this, ids)); + } + + @Override + public CompletableFuture enableBreakpoints(String... ids) { + return execute(new LldbEnableBreakpointsCommand(this, ids)); + } + + @Override + public CompletableFuture deleteBreakpoints(String... ids) { + return execute(new LldbDeleteBreakpointsCommand(this, ids)); + } + + @Override + public CompletableFuture> listBreakpoints(SBTarget session) { + return execute(new LldbListBreakpointsCommand(this, session)); + } + + @Override + public CompletableFuture> listBreakpointLocations( + SBBreakpoint spec) { + return execute(new LldbListBreakpointLocationsCommand(this, spec)); + } + + @Override + public CompletableFuture start(String[] args) { + state.set(null, Causes.UNCLAIMED); + boolean create = true; + if (args.length == 0) { + executor = + new LldbClientThreadExecutor(() -> DebugClient.debugCreate().createClient()); + } + else { + // TODO - process args + executor = + new LldbClientThreadExecutor(() -> DebugClient.debugCreate().createClient()); + create = false; + } + executor.setManager(this); + AtomicReference creat = new AtomicReference<>(create); + return sequence(TypeSpec.VOID).then(executor, (seq) -> { + doExecute(creat.get()); + seq.exit(); + }).finish().exceptionally((exc) -> { + Msg.error(this, "start failed"); + return null; + }); + } + + protected void doExecute(Boolean create) { + DebugClient client = executor.getClient(); + reentrantClient = client; + + status = client.getExecutionStatus(); + client.setOutputCallbacks(new LldbDebugOutputCallbacks(this)); + } + + @Override + public boolean isRunning() { + return !executor.isShutdown() && !executor.isTerminated(); + } + + @Override + public void terminate() { + executor.execute(100, client -> { + Msg.debug(this, "Disconnecting DebugClient from session"); + client.endSession(DebugEndSessionFlags.DEBUG_END_DISCONNECT); + //client.setOutputCallbacks(null); + }); + executor.shutdown(); + try { + executor.awaitTermination(5000, TimeUnit.MILLISECONDS); + } + catch (InterruptedException e) { + // Eh, just go on + } + } + + @Override + public void close() throws Exception { + terminate(); + } + + /** + * Schedule a command for execution + * + * @param cmd the command to execute + * @return the pending command, which acts as a future for later completion + */ + //@Override + @Override + public CompletableFuture execute(LldbCommand cmd) { + assert cmd != null; + LldbPendingCommand pcmd = new LldbPendingCommand<>(cmd); + + if (executor.isCurrentThread()) { + try { + addCommand(cmd, pcmd); + } + catch (Throwable exc) { + pcmd.completeExceptionally(exc); + } + } + else { + CompletableFuture.runAsync(() -> { + addCommand(cmd, pcmd); + }, executor).exceptionally((exc) -> { + pcmd.completeExceptionally(exc); + return null; + }); + } + return pcmd; + } + + private void addCommand(LldbCommand cmd, LldbPendingCommand pcmd) { + synchronized (this) { + if (!cmd.validInState(state.get())) { + throw new LldbCommandError("Command " + cmd + " is not valid while " + state.get()); + } + activeCmds.add(pcmd); + } + cmd.invoke(); + processEvent(new LldbCommandDoneEvent(cmd)); + } + + @Override + public DebugStatus processEvent(LldbEvent evt) { + if (state == null) { + state.set(StateType.eStateStopped, Causes.UNCLAIMED); + } + StateType newState = evt.newState(); + //System.err.println(evt+":"+newState); + if (newState != null && !(evt instanceof LldbCommandDoneEvent)) { + Msg.debug(this, evt + " transitions state to " + newState); + state.set(newState, evt.getCause()); + } + + boolean cmdFinished = false; + List> toRemove = new ArrayList>(); + for (LldbPendingCommand pcmd : activeCmds) { + cmdFinished = pcmd.handle(evt); + if (cmdFinished) { + pcmd.finish(); + toRemove.add(pcmd); + } + } + for (LldbPendingCommand pcmd : toRemove) { + activeCmds.remove(pcmd); + } + + synchronized (this) { + boolean waitState = isWaiting(); + waiting = false; + DebugStatus ret = evt.isStolen() ? null : handlerMap.handle(evt, null); + if (ret == null) { + ret = DebugStatus.NO_CHANGE; + } + waiting = ret.equals(DebugStatus.NO_DEBUGGEE) ? false : waitState; + return ret; + } + } + + @Override + public void addStateListener(LldbStateListener listener) { + state.addChangeListener(listener); + } + + @Override + public void removeStateListener(LldbStateListener listener) { + state.removeChangeListener(listener); + } + + public ListenerSet getEventListeners() { + return listenersEvent; + } + + @Override + public void addEventsListener(LldbEventsListener listener) { + getEventListeners().add(listener); + } + + @Override + public void removeEventsListener(LldbEventsListener listener) { + getEventListeners().remove(listener); + } + + private void defaultHandlers() { + handlerMap.put(LldbBreakpointHitEvent.class, this::processBreakpoint); + handlerMap.put(LldbExceptionEvent.class, this::processException); + handlerMap.put(LldbInterruptEvent.class, this::processInterrupt); + handlerMap.put(LldbThreadCreatedEvent.class, this::processThreadCreated); + handlerMap.put(LldbThreadReplacedEvent.class, this::processThreadReplaced); + handlerMap.put(LldbThreadExitedEvent.class, this::processThreadExited); + handlerMap.put(LldbThreadSelectedEvent.class, this::processThreadSelected); + handlerMap.put(LldbProcessCreatedEvent.class, this::processProcessCreated); + handlerMap.put(LldbProcessReplacedEvent.class, this::processProcessReplaced); + handlerMap.put(LldbProcessExitedEvent.class, this::processProcessExited); + handlerMap.put(LldbSessionCreatedEvent.class, this::processSessionCreated); + handlerMap.put(LldbSessionReplacedEvent.class, this::processSessionReplaced); + handlerMap.put(LldbSessionExitedEvent.class, this::processSessionExited); + handlerMap.put(LldbProcessSelectedEvent.class, this::processProcessSelected); + handlerMap.put(LldbSelectedFrameChangedEvent.class, this::processFrameSelected); + handlerMap.put(LldbModuleLoadedEvent.class, this::processModuleLoaded); + handlerMap.put(LldbModuleUnloadedEvent.class, this::processModuleUnloaded); + handlerMap.put(LldbStateChangedEvent.class, this::processStateChanged); + //handlerMap.put(LldbTargetSelectedEvent.class, this::processSessionSelected); + handlerMap.put(LldbSystemsEvent.class, this::processSystemsEvent); + handlerMap.putVoid(LldbCommandDoneEvent.class, this::processDefault); + handlerMap.putVoid(LldbStoppedEvent.class, this::processDefault); + handlerMap.putVoid(LldbRunningEvent.class, this::processDefault); + handlerMap.putVoid(LldbConsoleOutputEvent.class, this::processConsoleOutput); + handlerMap.putVoid(LldbBreakpointCreatedEvent.class, this::processBreakpointCreated); + handlerMap.putVoid(LldbBreakpointModifiedEvent.class, this::processBreakpointModified); + handlerMap.putVoid(LldbBreakpointDeletedEvent.class, this::processBreakpointDeleted); + handlerMap.putVoid(LldbBreakpointEnabledEvent.class, this::processBreakpointEnabled); + handlerMap.putVoid(LldbBreakpointDisabledEvent.class, this::processBreakpointDisabled); + handlerMap.putVoid(LldbBreakpointInvalidatedEvent.class, + this::processBreakpointInvalidated); + handlerMap.putVoid(LldbBreakpointLocationsAddedEvent.class, + this::processBreakpointLocationsAdded); + handlerMap.putVoid(LldbBreakpointLocationsResolvedEvent.class, + this::processBreakpointLocationsResolved); + handlerMap.putVoid(LldbBreakpointLocationsRemovedEvent.class, + this::processBreakpointLocationsRemoved); + handlerMap.putVoid(LldbBreakpointAutoContinueChangedEvent.class, + this::processBreakpointAutoContinueChanged); + handlerMap.putVoid(LldbBreakpointCommandChangedEvent.class, + this::processBreakpointCommandChanged); + handlerMap.putVoid(LldbBreakpointConditionChangedEvent.class, + this::processBreakpointConditionChanged); + handlerMap.putVoid(LldbBreakpointConditionChangedEvent.class, + this::processBreakpointConditionChanged); + handlerMap.putVoid(LldbBreakpointIgnoreChangedEvent.class, + this::processBreakpointIgnoreChanged); + handlerMap.putVoid(LldbBreakpointThreadChangedEvent.class, + this::processBreakpointThreadChanged); + handlerMap.putVoid(LldbBreakpointTypeChangedEvent.class, + this::processBreakpointTypeChanged); + handlerMap.putVoid(LldbProfileDataEvent.class, this::processDefault); + handlerMap.putVoid(LldbStructuredDataEvent.class, this::processDefault); + handlerMap.putVoid(LldbSymbolsLoadedEvent.class, this::processDefault); + + statusMap.put(LldbBreakpointHitEvent.class, DebugStatus.BREAK); + statusMap.put(LldbExceptionEvent.class, DebugStatus.BREAK); + statusMap.put(LldbProcessCreatedEvent.class, DebugStatus.BREAK); + statusMap.put(LldbProcessExitedEvent.class, DebugStatus.NO_DEBUGGEE); + statusMap.put(LldbStateChangedEvent.class, DebugStatus.NO_CHANGE); + statusMap.put(LldbStoppedEvent.class, DebugStatus.BREAK); + statusMap.put(LldbInterruptEvent.class, DebugStatus.BREAK); + } + + public void updateState(SBEvent event) { + DebugClientImpl client = (DebugClientImpl) executor.getClient(); + currentProcess = eventProcess = SBProcess.GetProcessFromEvent(event); + SBTarget candidateSession = SBTarget.GetTargetFromEvent(event); + if (candidateSession != null && candidateSession.IsValid()) { + currentSession = eventSession = candidateSession; + } + else { + candidateSession = currentProcess.GetTarget(); + if (candidateSession != null && candidateSession.IsValid()) { + currentSession = eventSession = candidateSession; + } + } + SBThread candidateThread = SBThread.GetThreadFromEvent(event); + if (candidateThread != null && candidateThread.IsValid()) { + currentThread = eventThread = candidateThread; + } + else { + candidateThread = currentProcess.GetSelectedThread(); + if (candidateThread != null && candidateThread.IsValid()) { + currentThread = eventThread = candidateThread; + } + } + addSessionIfAbsent(eventSession); + addProcessIfAbsent(eventSession, eventProcess); + addThreadIfAbsent(eventProcess, eventThread); + client.translateAndFireEvent(event); + } + + @Override + public void updateState(SBProcess process) { + currentProcess = eventProcess = process; + if (currentSession == null || + !currentSession.IsValid() || + !currentSession.equals(process.GetTarget())) { + SBTarget candidateSession = currentProcess.GetTarget(); + if (candidateSession != null && candidateSession.IsValid()) { + currentSession = eventSession = candidateSession; + } + } + if (currentThread == null || + !currentThread.IsValid() || + !currentThread.equals(process.GetSelectedThread())) { + SBThread candidateThread = currentProcess.GetSelectedThread(); + if (candidateThread != null && candidateThread.IsValid()) { + currentThread = eventThread = candidateThread; + } + } + addSessionIfAbsent(eventSession); + addProcessIfAbsent(eventSession, eventProcess); + addThreadIfAbsent(eventProcess, eventThread); + } + + /** + * Default handler for events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processDefault(AbstractLldbEvent evt, Void v) { + return statusMap.get(evt.getClass()); + } + + /** + * Handler for breakpoint events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processBreakpoint(LldbBreakpointHitEvent evt, Void v) { + BigInteger id = eventThread.GetStopReasonDataAtIndex(0); + for (int i = 0; i < currentSession.GetNumBreakpoints(); i++) { + SBBreakpoint bpt = currentSession.GetBreakpointAtIndex(i); + if (bpt.IsValid() && (bpt.GetID() == id.intValue())) { + getEventListeners().fire.breakpointHit(bpt, evt.getCause()); + } + } + return statusMap.get(evt.getClass()); + } + + /** + * Handler for breakpoint events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processException(LldbExceptionEvent evt, Void v) { + /* + Integer eventId = updateState(evt); + + DebugExceptionRecord64 info = evt.getInfo(); + String key = Integer.toHexString(info.code); + if (statusByNameMap.containsKey(key)) { + return statusByNameMap.get(key); + } + */ + return statusMap.get(evt.getClass()); + } + + /** + * Handler for breakpoint events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processInterrupt(LldbInterruptEvent evt, Void v) { + return statusMap.get(evt.getClass()); + } + + /** + * Handler for thread created events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processThreadCreated(LldbThreadCreatedEvent evt, Void v) { + SBThread thread = evt.getInfo().thread; + getEventListeners().fire.threadCreated(thread, LldbCause.Causes.UNCLAIMED); + getEventListeners().fire.threadSelected(thread, null, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for thread created events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processThreadReplaced(LldbThreadReplacedEvent evt, Void v) { + SBThread thread = evt.getInfo().thread; + getEventListeners().fire.threadSelected(thread, null, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for thread exited events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processThreadExited(LldbThreadExitedEvent evt, Void v) { + getEventListeners().fire.threadExited(eventThread, eventProcess, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for thread selected events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processThreadSelected(LldbThreadSelectedEvent evt, Void v) { + currentThread = evt.getThread(); + getEventListeners().fire.threadSelected(currentThread, evt.getFrame(), evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for frame selected events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processFrameSelected(LldbSelectedFrameChangedEvent evt, Void v) { + currentThread = evt.getThread(); + getEventListeners().fire.threadSelected(currentThread, evt.getFrame(), evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for process created events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processProcessCreated(LldbProcessCreatedEvent evt, Void v) { + DebugProcessInfo info = evt.getInfo(); + SBProcess proc = info.process; + getEventListeners().fire.processAdded(proc, LldbCause.Causes.UNCLAIMED); + getEventListeners().fire.processSelected(proc, evt.getCause()); + + SBThread thread = proc.GetSelectedThread(); + getEventListeners().fire.threadSelected(thread, null, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for process replaced events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processProcessReplaced(LldbProcessReplacedEvent evt, Void v) { + DebugProcessInfo info = evt.getInfo(); + SBProcess proc = info.process; + getEventListeners().fire.processReplaced(proc, LldbCause.Causes.UNCLAIMED); + getEventListeners().fire.processSelected(proc, evt.getCause()); + + SBThread thread = proc.GetSelectedThread(); + getEventListeners().fire.threadSelected(thread, null, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for process exited events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processProcessExited(LldbProcessExitedEvent evt, Void v) { + SBThread thread = getCurrentThread(); + SBProcess process = getCurrentProcess(); + getEventListeners().fire.threadExited(thread, process, evt.getCause()); + getEventListeners().fire.processExited(process, evt.getCause()); + getEventListeners().fire.processRemoved(process.GetProcessID().toString(), evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for process selected events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processProcessSelected(LldbProcessSelectedEvent evt, Void v) { + currentProcess = evt.getProcess(); + getEventListeners().fire.processSelected(currentProcess, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for session created events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processSessionCreated(LldbSessionCreatedEvent evt, Void v) { + DebugSessionInfo info = evt.getInfo(); + getEventListeners().fire.sessionAdded(info.session, LldbCause.Causes.UNCLAIMED); + getEventListeners().fire.sessionSelected(info.session, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for session replaced events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processSessionReplaced(LldbSessionReplacedEvent evt, Void v) { + DebugSessionInfo info = evt.getInfo(); + getEventListeners().fire.sessionReplaced(info.session, LldbCause.Causes.UNCLAIMED); + getEventListeners().fire.sessionSelected(info.session, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for session exited events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processSessionExited(LldbSessionExitedEvent evt, Void v) { + removeSession(evt.sessionId, LldbCause.Causes.UNCLAIMED); + getEventListeners().fire.sessionRemoved(evt.sessionId, evt.getCause()); + getEventListeners().fire.threadExited(eventThread, eventProcess, evt.getCause()); + getEventListeners().fire.processExited(eventProcess, evt.getCause()); + getEventListeners().fire.processRemoved(eventProcess.GetProcessID().toString(), + evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for module loaded events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processModuleLoaded(LldbModuleLoadedEvent evt, Void v) { + DebugModuleInfo info = evt.getInfo(); + long n = info.getNumberOfModules(); + SBProcess process = info.getProcess(); + for (int i = 0; i < n; i++) { + getEventListeners().fire.moduleLoaded(process, info, i, evt.getCause()); + } + return statusMap.get(evt.getClass()); + } + + /** + * Handler for module unloaded events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processModuleUnloaded(LldbModuleUnloadedEvent evt, Void v) { + DebugModuleInfo info = evt.getInfo(); + long n = info.getNumberOfModules(); + SBProcess process = info.getProcess(); + for (int i = 0; i < n; i++) { + getEventListeners().fire.moduleUnloaded(process, info, i, evt.getCause()); + } + return statusMap.get(evt.getClass()); + } + + /** + * Handler for state changed events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processStateChanged(LldbStateChangedEvent evt, Void v) { + StateType state = evt.getInfo().state; + status = DebugStatus.fromArgument(state); + + if (status.equals(DebugStatus.NO_DEBUGGEE)) { + waiting = false; + if (state.equals(StateType.eStateExited)) { + processEvent(new LldbRunningEvent(DebugClient.getId(eventThread))); + processEvent(new LldbProcessExitedEvent(0)); + processEvent(new LldbSessionExitedEvent(DebugClient.getId(currentSession), 0)); + } + return DebugStatus.NO_DEBUGGEE; + } + if (status.equals(DebugStatus.BREAK)) { + waiting = false; + SBProcess process = getCurrentProcess(); + if (process != null) { + processEvent(new LldbProcessSelectedEvent(process)); + DebugProcessInfo info = evt.getInfo(); + StopReason stopReason = eventThread.GetStopReason(); + if (stopReason.equals(StopReason.eStopReasonThreadExiting)) { + processEvent(new LldbThreadExitedEvent(0)); + } + if (stopReason.equals(StopReason.eStopReasonBreakpoint)) { + processEvent(new LldbBreakpointHitEvent(info)); + } + if (stopReason.equals(StopReason.eStopReasonWatchpoint)) { + processEvent(new LldbWatchpointHitEvent(info)); + } + if (stopReason.equals(StopReason.eStopReasonException)) { + processEvent(new LldbExceptionEvent(info)); + } + } + DebugThreadInfo info = new DebugThreadInfo(eventThread); + processEvent(new LldbThreadSelectedEvent(info)); + processEvent(new LldbStoppedEvent(DebugClient.getId(eventThread))); + return DebugStatus.BREAK; + } + if (status.equals(DebugStatus.GO)) { + waiting = true; + processEvent(new LldbRunningEvent(DebugClient.getId(eventThread))); + return DebugStatus.GO; + } + + waiting = false; + return DebugStatus.NO_CHANGE; + } + + /** + * Handler for session selected events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processSessionSelected(LldbSessionSelectedEvent evt, Void v) { + SBTarget session = evt.getSession(); + getEventListeners().fire.sessionSelected(session, evt.getCause()); + return statusMap.get(evt.getClass()); + } + + /** + * Handler for systems events + * + * @param evt the event + * @param v nothing + * @return retval handling/break status + */ + protected DebugStatus processSystemsEvent(LldbSystemsEvent evt, Void v) { + return statusMap.get(evt.getClass()); + } + + protected void processConsoleOutput(LldbConsoleOutputEvent evt, Void v) { + if (evt.getOutput() != null) { + getEventListeners().fire.consoleOutput(evt.getOutput(), evt.getMask()); + } + } + + /** + * Handler for breakpoint-created event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointCreated(LldbBreakpointCreatedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointCreated(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointModified(LldbBreakpointModifiedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-deleted event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointDeleted(LldbBreakpointDeletedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + doBreakpointDeleted(session, evt.getInfo().id, evt.getCause()); + } + + /** + * Handler for breakpoint-enable event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointEnabled(LldbBreakpointEnabledEvent evt, Void v) { + SBTarget session = getCurrentSession(); + doBreakpointEnabled(session, evt.getInfo().id, evt.getCause()); + } + + /** + * Handler for breakpoint-deleted event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointDisabled(LldbBreakpointDisabledEvent evt, Void v) { + SBTarget session = getCurrentSession(); + doBreakpointDisabled(session, evt.getInfo().id, evt.getCause()); + } + + /** + * Handler for breakpoint-invalidated event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointInvalidated(LldbBreakpointInvalidatedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + //TODO: not sure this is the right thing to do + doBreakpointDisabled(session, evt.getInfo().id, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointLocationsResolved(LldbBreakpointLocationsResolvedEvent evt, + Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-locations added event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointLocationsAdded(LldbBreakpointLocationsAddedEvent evt, + Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-locations removed event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointLocationsRemoved(LldbBreakpointLocationsRemovedEvent evt, + Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointAutoContinueChanged(LldbBreakpointAutoContinueChangedEvent evt, + Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointCommandChanged(LldbBreakpointCommandChangedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointConditionChanged(LldbBreakpointConditionChangedEvent evt, + Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointIgnoreChanged(LldbBreakpointIgnoreChangedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointThreadChanged(LldbBreakpointThreadChangedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Handler for breakpoint-modified event + * + * @param evt the event + * @param v nothing + */ + protected void processBreakpointTypeChanged(LldbBreakpointTypeChangedEvent evt, Void v) { + SBTarget session = getCurrentSession(); + Object info = evt.getBreakpointInfo(); + doBreakpointModified(session, info, evt.getCause()); + } + + /** + * Fire breakpoint created event + * + * @param newInfo the new information + * @param cause the cause of the creation + */ + @Internal + public void doBreakpointCreated(SBTarget session, Object info, LldbCause cause) { + addKnownBreakpoint(session, info, false); + getEventListeners().fire.breakpointCreated(info, cause); + } + + /** + * Fire breakpoint modified event + * + * @param newInfo the new information + * @param cause the cause of the modification + */ + @Internal + public void doBreakpointModified(SBTarget session, Object info, LldbCause cause) { + addKnownBreakpoint(session, info, true); + getEventListeners().fire.breakpointModified(info, cause); + } + + /** + * Fire breakpoint deleted event + * + * @param number the deleted breakpoint number + * @param cause the cause of the deletion + */ + @Internal + public void doBreakpointDeleted(SBTarget session, String id, LldbCause cause) { + Object oldInfo = removeKnownBreakpoint(session, id); + if (oldInfo == null) { + return; + } + getEventListeners().fire.breakpointDeleted(oldInfo, cause); + } + + protected void doBreakpointModifiedSameLocations(SBTarget session, Object info, + LldbCause cause) { + addKnownBreakpoint(session, info, true); + getEventListeners().fire.breakpointModified(info, cause); + } + + @Internal + public void doBreakpointDisabled(SBTarget session, String id, LldbCause cause) { + Object info = getKnownBreakpoint(session, id); + if (info == null) { + return; + } + if (info instanceof SBBreakpoint) { + ((SBBreakpoint) info).SetEnabled(false); + } + if (info instanceof SBWatchpoint) { + ((SBWatchpoint) info).SetEnabled(false); + } + doBreakpointModifiedSameLocations(session, info, cause); + } + + @Internal + public void doBreakpointEnabled(SBTarget session, String id, LldbCause cause) { + Object info = getKnownBreakpoint(session, id); + if (info == null) { + return; + } + if (info instanceof SBBreakpoint) { + ((SBBreakpoint) info).SetEnabled(true); + } + if (info instanceof SBWatchpoint) { + ((SBWatchpoint) info).SetEnabled(true); + } + doBreakpointModifiedSameLocations(session, info, cause); + } + + @Override + public CompletableFuture> listThreads(SBProcess process) { + return execute(new LldbListThreadsCommand(this, process)); + } + + @Override + public CompletableFuture> listProcesses(SBTarget session) { + return execute(new LldbListProcessesCommand(this, session)); + } + + @Override + public CompletableFuture>> listAvailableProcesses() { + return execute(new LldbListAvailableProcessesCommand(this)); + } + + @Override + public CompletableFuture> listSessions() { + return execute(new LldbListSessionsCommand(this)); + } + + @Override + public CompletableFuture> listStackFrames(SBThread thread) { + return execute(new LldbListStackFramesCommand(this, thread)); + } + + @Override + public CompletableFuture> listStackFrameRegisterBanks(SBFrame frame) { + return execute(new LldbListStackFrameRegisterBanksCommand(this, frame)); + } + + @Override + public CompletableFuture> listStackFrameRegisters(SBValue bank) { + return execute(new LldbListStackFrameRegistersCommand(this, bank)); + } + + @Override + public CompletableFuture> listModules(SBTarget session) { + return execute(new LldbListModulesCommand(this, session)); + } + + @Override + public CompletableFuture> listModuleSections(SBModule module) { + return execute(new LldbListModuleSectionsCommand(this, module)); + } + + @Override + public CompletableFuture> listModuleSymbols(SBModule module) { + return execute(new LldbListModuleSymbolsCommand(this, module)); + } + + @Override + public CompletableFuture> listMemory(SBProcess process) { + return execute(new LldbListMemoryRegionsCommand(this, process)); + } + + @Override + public CompletableFuture> listEnvironment(SBTarget session) { + return execute(new LldbListEnvironmentCommand(this, session)); + } + + @Override + public void sendInterruptNow() { + Msg.info(this, "Interrupting"); + currentSession.GetProcess().SendAsyncInterrupt(); + } + + @Override + public CompletableFuture addProcess() { + return execute(new LldbAddProcessCommand(this)); + } + + @Override + public CompletableFuture removeProcess(SBProcess process) { + return execute(new LldbRemoveProcessCommand(this, process.GetTarget(), + process.GetProcessID().toString())); + } + + @Override + public CompletableFuture addSession() { + return execute(new LldbAddSessionCommand(this)); + } + + @Override + public CompletableFuture attach(String pid) { + return execute(new LldbAttachCommand(this, pid)); + } + + @Override + public CompletableFuture attach(String name, boolean wait) { + return execute(new LldbAttachCommand(this, name, wait)); + } + + @Override + public CompletableFuture attach(String url, boolean wait, boolean async) { + return execute(new LldbAttachCommand(this, url, wait)); + } + + @Override + public CompletableFuture launch(String fileName, List args) { + return execute(new LldbLaunchProcessCommand(this, fileName, args)); + } + + @Override + public CompletableFuture launch(Map args) { + return execute(new LldbLaunchProcessWithOptionsCommand(this, args)); + } + + public CompletableFuture openFile(Map args) { + return execute(new LldbOpenDumpCommand(this, args)); + } + + public CompletableFuture attachKernel(Map args) { + setKernelMode(true); + return execute(new LldbAttachKernelCommand(this, args)); + } + + static class ExitEvent { + final Integer tid; + final long exitCode; + + public ExitEvent(Integer tid, long exitCode) { + this.tid = tid; + this.exitCode = exitCode; + } + } + + static class BreakId { + final Integer tid; + final int bpid; + + public BreakId(Integer tid, int bpid) { + this.tid = tid; + this.bpid = bpid; + } + } + + static class BreakpointTag { + long offset; + + public BreakpointTag(long offset) { + this.offset = offset; + } + } + + class SavedFocus implements AutoCloseable { + Integer tid = null; + + @Override + public void close() { + // Nothing to do + } + } + + public DebugClient getClient() { + return executor.getClient(); + } + + public SBThread getCurrentThread() { + if (!currentThread.IsValid()) { + currentProcess = currentSession.GetProcess(); + for (int i = 0; i < currentProcess.GetNumThreads(); i++) { + SBThread thread = currentProcess.GetThreadAtIndex(i); + System.err.println(thread + ":" + thread.IsValid()); + } + currentThread = SBThread.GetThreadFromEvent(currentEvent); + System.err.println(currentThread.IsValid()); + } + return currentThread != null ? currentThread : eventThread; + } + + public void setCurrentThread(SBThread thread) { + currentThread = thread; + } + + public SBProcess getCurrentProcess() { + return currentProcess != null ? currentProcess : eventProcess; + } + + public SBTarget getCurrentSession() { + return currentSession != null ? currentSession : eventSession; + } + + public SBThread getEventThread() { + return eventThread; + } + + public SBProcess getEventProcess() { + return eventProcess; + } + + public SBTarget getEventSession() { + return eventSession; + } + + public CompletableFuture setActiveFrame(SBThread thread, int index) { + currentThread = thread; + return execute(new LldbSetActiveThreadCommand(this, thread, index)); + } + + public CompletableFuture setActiveThread(SBThread thread) { + currentThread = thread; + return execute(new LldbSetActiveThreadCommand(this, thread, -1L)); + } + + public CompletableFuture setActiveProcess(SBProcess process) { + currentProcess = process; + return execute(new LldbSetActiveProcessCommand(this, process)); + } + + public CompletableFuture setActiveSession(SBTarget session) { + currentSession = session; + return execute(new LldbSetActiveSessionCommand(this, session)); + } + + public CompletableFuture requestFocus(LldbModelTargetFocusScope scope, TargetObject obj) { + return execute(new LldbRequestFocusCommand(this, scope, obj)); + } + + public CompletableFuture requestActivation(LldbModelTargetActiveScope activator, + TargetObject obj) { + return execute(new LldbRequestActivationCommand(this, activator, obj)); + } + + @Override + public CompletableFuture console(String command) { + if (continuation != null) { + String prompt = command.equals("") ? LldbModelTargetInterpreter.LLDB_PROMPT : ">>>"; + getEventListeners().fire.promptChanged(prompt); + continuation.complete(command); + setContinuation(null); + return AsyncUtils.NIL; + } + return execute( + new LldbConsoleExecCommand(this, command, LldbConsoleExecCommand.Output.CONSOLE)) + .thenApply(e -> null); + } + + @Override + public CompletableFuture consoleCapture(String command) { + return execute( + new LldbConsoleExecCommand(this, command, LldbConsoleExecCommand.Output.CAPTURE)); + } + + @Override + public StateType getState() { + if (currentProcess == null) { + return null; + } + if (currentThread != null && !currentThread.IsValid()) { + return StateType.eStateRunning; + } + return currentProcess.GetState(); + } + + @Override + public SBProcess currentProcess() { + return getCurrentProcess(); + } + + @Override + public CompletableFuture waitForEventEx() { + //System.err.println("ENTER"); + waiting = true; + SBEvent event = getClient().waitForEvent(); + //System.err.println("EXIT"); + waiting = false; + updateState(event); + return CompletableFuture.completedFuture(null); + } + + @Override + public CompletableFuture waitForPrompt() { + return CompletableFuture.completedFuture(null); + } + + public CompletableFuture> getRegisterMap(List path) { + return null; + } + + public boolean isWaiting() { + return waiting; + } + + public boolean isKernelMode() { + return kernelMode; + } + + public void setKernelMode(boolean kernelMode) { + this.kernelMode = kernelMode; + } + + public void setContinuation(CompletableFuture continuation) { + this.continuation = continuation; + } + + @Override + public DebugStatus getStatus() { + return status; + } + + @Override + public void setCurrentEvent(SBEvent evt) { + this.currentEvent = evt; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/AbstractLldbModel.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/AbstractLldbModel.java new file mode 100644 index 0000000000..6b6af9fbc9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/AbstractLldbModel.java @@ -0,0 +1,45 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import java.io.IOException; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.manager.LldbManager; +import agent.lldb.model.iface2.LldbModelTargetSession; +import ghidra.dbg.agent.AbstractDebuggerObjectModel; +import ghidra.dbg.target.TargetObject; +import ghidra.program.model.address.AddressFactory; + +public abstract class AbstractLldbModel extends AbstractDebuggerObjectModel { + + public abstract LldbManager getManager(); + + public abstract CompletableFuture startLLDB(String[] args); + + public abstract boolean isRunning(); + + public abstract void terminate() throws IOException; + + public abstract AddressFactory getAddressFactory(); + + public abstract LldbModelTargetSession getSession(); + + public abstract void addModelObject(Object object, TargetObject targetObject); + + public abstract TargetObject getModelObject(Object object); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelSelectableObject.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelSelectableObject.java new file mode 100644 index 0000000000..42d8d40ae9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelSelectableObject.java @@ -0,0 +1,35 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "SelectableObject", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }) +public interface LldbModelSelectableObject extends LldbModelTargetObject { + + public CompletableFuture setActive(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAccessConditioned.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAccessConditioned.java new file mode 100644 index 0000000000..2729b0087e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAccessConditioned.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetAccessConditioned; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetAccessConditioned + extends LldbModelTargetObject, TargetAccessConditioned { + + @Override + public boolean isAccessible(); + + public void setAccessible(boolean accessible); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetActiveScope.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetActiveScope.java new file mode 100644 index 0000000000..f63aa0f0a1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetActiveScope.java @@ -0,0 +1,68 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.async.AsyncUtils; +import ghidra.dbg.error.DebuggerIllegalArgumentException; +import ghidra.dbg.target.TargetActiveScope; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.util.PathUtils; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetActiveScope extends LldbModelTargetObject, TargetActiveScope { + + // NB: requesActivation request change in active object - propagates down to manager + // (but, of course, may then cause change in state) + @Override + public default CompletableFuture requestActivation(TargetObject obj) { + return getModel().gateFuture(getManager().requestActivation(this, obj)); + } + + public default CompletableFuture doRequestActivation(TargetObject obj) { + if (getManager().isWaiting()) { + return AsyncUtils.NIL; + } + getModel().assertMine(TargetObject.class, obj); + if (!PathUtils.isAncestor(this.getPath(), obj.getPath())) { + throw new DebuggerIllegalArgumentException("Can only focus a successor of the scope"); + } + TargetObject cur = obj; + while (cur != null) { + if (cur instanceof LldbModelSelectableObject) { + LldbModelSelectableObject sel = (LldbModelSelectableObject) cur; + //System.err.println("requestActivation " + obj); + return sel.setActive(); + } + if (cur instanceof LldbModelTargetObject) { + LldbModelTargetObject def = (LldbModelTargetObject) cur; + cur = def.getParent(); + continue; + } + throw new AssertionError(); + } + return AsyncUtils.NIL; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttachable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttachable.java new file mode 100644 index 0000000000..05a0070523 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttachable.java @@ -0,0 +1,31 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetAttachable; + +/** + * An interface which indicates this object is capable of launching targets. + * + *

+ * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetAttachable extends LldbModelTargetObject, TargetAttachable { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttacher.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttacher.java new file mode 100644 index 0000000000..7678b3aa3a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetAttacher.java @@ -0,0 +1,40 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetAttachable; +import ghidra.dbg.target.TargetAttacher; + +/** + * An interface which indicates this object is capable of launching targets. + * + *

+ * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetAttacher extends LldbModelTargetObject, TargetAttacher { + + @Override + public CompletableFuture attach(TargetAttachable attachable); + + @Override + public CompletableFuture attach(long pid); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetConfigurable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetConfigurable.java new file mode 100644 index 0000000000..ed3b438d62 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetConfigurable.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetConfigurable; + +/** + * An interface which indicates this object is configurable. + * + * @param type for this + */ +public interface LldbModelTargetConfigurable extends LldbModelTargetObject, TargetConfigurable { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDeletable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDeletable.java new file mode 100644 index 0000000000..397824e506 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDeletable.java @@ -0,0 +1,35 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetDeletable; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetDeletable extends LldbModelTargetObject, TargetDeletable { + + @Override + public CompletableFuture delete(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDetachable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDetachable.java new file mode 100644 index 0000000000..7210bb24cf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetDetachable.java @@ -0,0 +1,35 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetDetachable; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetDetachable extends LldbModelTargetObject, TargetDetachable { + + @Override + public CompletableFuture detach(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEnvironment.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEnvironment.java new file mode 100644 index 0000000000..6938c3ff94 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEnvironment.java @@ -0,0 +1,40 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetEnvironment; + +public interface LldbModelTargetEnvironment extends LldbModelTargetObject, TargetEnvironment { + + public void refreshInternal(); + + @Override + public default String getArchitecture() { + return getTypedAttributeNowByName(ARCH_ATTRIBUTE_NAME, String.class, ""); + } + + @Override + public default String getDebugger() { + return getTypedAttributeNowByName(DEBUGGER_ATTRIBUTE_NAME, String.class, ""); + } + + @Override + public default String getOperatingSystem() { + return getTypedAttributeNowByName(OS_ATTRIBUTE_NAME, String.class, ""); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEventScope.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEventScope.java new file mode 100644 index 0000000000..6c38d3411c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetEventScope.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetEventScope; + +/** + * The object can emit events affecting itself and its successors + * + * @param type for this + */ +public interface LldbModelTargetEventScope extends LldbModelTargetObject, TargetEventScope { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetExecutionStateful.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetExecutionStateful.java new file mode 100644 index 0000000000..4d38e555a4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetExecutionStateful.java @@ -0,0 +1,44 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.List; +import java.util.Map; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetExecutionStateful; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetExecutionStateful + extends LldbModelTargetObject, TargetExecutionStateful { + + public default void setExecutionState(TargetExecutionState state, String reason) { + changeAttributes(List.of(), Map.of( // + STATE_ATTRIBUTE_NAME, state // + ), reason); + if (this instanceof LldbModelTargetAccessConditioned) { + LldbModelTargetAccessConditioned conditioned = (LldbModelTargetAccessConditioned) this; + conditioned.setAccessible(!state.isRunning()); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetFocusScope.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetFocusScope.java new file mode 100644 index 0000000000..a74377971e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetFocusScope.java @@ -0,0 +1,78 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.async.AsyncUtils; +import ghidra.dbg.error.DebuggerIllegalArgumentException; +import ghidra.dbg.target.TargetFocusScope; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.util.PathUtils; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetFocusScope extends LldbModelTargetObject, TargetFocusScope { + + @Override + public LldbModelSelectableObject getFocus(); + + // NB: setFocus changes attributes - propagates up to client + public boolean setFocus(LldbModelSelectableObject sel); + + // NB: requestFocus request change in focused object - propagates down to manager + // (but, of course, may then cause change in state) + @Override + public default CompletableFuture requestFocus(TargetObject obj) { + return getModel().gateFuture(getManager().requestFocus(this, obj)); + } + + public default CompletableFuture doRequestFocus(TargetObject obj) { + if (getManager().isWaiting()) { + return AsyncUtils.NIL; + } + getModel().assertMine(TargetObject.class, obj); + if (obj.equals(getFocus())) { + return AsyncUtils.NIL; + } + if (!PathUtils.isAncestor(this.getPath(), obj.getPath())) { + throw new DebuggerIllegalArgumentException("Can only focus a successor of the scope"); + } + TargetObject cur = obj; + while (cur != null) { + if (cur instanceof LldbModelSelectableObject) { + LldbModelSelectableObject sel = (LldbModelSelectableObject) cur; + //System.err.println("requestFocus " + obj); + setFocus(sel); + return AsyncUtils.NIL; + } + if (cur instanceof LldbModelTargetObject) { + LldbModelTargetObject def = (LldbModelTargetObject) cur; + cur = def.getParent(); + continue; + } + throw new AssertionError(); + } + return AsyncUtils.NIL; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterpreter.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterpreter.java new file mode 100644 index 0000000000..d8e740046c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterpreter.java @@ -0,0 +1,44 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetInterpreter; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetInterpreter extends LldbModelTargetObject, TargetInterpreter { + + public static final String LLDB_PROMPT = "(lldb)"; + + @Override + public default CompletableFuture execute(String cmd) { + return getModel().gateFuture(getManager().console(cmd)); + } + + @Override + public default CompletableFuture executeCapture(String cmd) { + return getModel().gateFuture(getManager().consoleCapture(cmd)); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterruptible.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterruptible.java new file mode 100644 index 0000000000..b3fb799feb --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetInterruptible.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetInterruptible; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetInterruptible extends LldbModelTargetObject, TargetInterruptible { + + @Override + public default CompletableFuture interrupt() { + getManager().sendInterruptNow(); + return CompletableFuture.completedFuture(null); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetKillable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetKillable.java new file mode 100644 index 0000000000..127cdc4379 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetKillable.java @@ -0,0 +1,37 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetKillable; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetKillable extends LldbModelTargetObject, TargetKillable { + + public CompletableFuture destroy(); + + @Override + public CompletableFuture kill(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetLauncher.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetLauncher.java new file mode 100644 index 0000000000..faea786c1e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetLauncher.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetLauncher.TargetCmdLineLauncher; + +/** + * An interface which indicates this object is capable of launching targets. + * + *

+ * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetLauncher extends LldbModelTargetObject, TargetCmdLineLauncher { + + @Override + public CompletableFuture launch(List args); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetMethod.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetMethod.java new file mode 100644 index 0000000000..722a7f2d43 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetMethod.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetMethod; + +/** + * An interface which indicates this object is a method in its parent. + * + * @param type for this + */ +public interface LldbModelTargetMethod extends LldbModelTargetObject, TargetMethod { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetResumable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetResumable.java new file mode 100644 index 0000000000..495a5367b5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetResumable.java @@ -0,0 +1,35 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetResumable; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetResumable extends LldbModelTargetObject, TargetResumable { + + @Override + public CompletableFuture resume(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetSteppable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetSteppable.java new file mode 100644 index 0000000000..ecc7ad0aa4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface1/LldbModelTargetSteppable.java @@ -0,0 +1,30 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface1; + +import agent.lldb.model.iface2.LldbModelTargetObject; +import ghidra.dbg.target.TargetSteppable; + +/** + * An interface which indicates this object is capable of launching targets. + * + * The targets this launcher creates ought to appear in its successors. + * + * @param type for this + */ +public interface LldbModelTargetSteppable extends LldbModelTargetObject, TargetSteppable { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailable.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailable.java new file mode 100644 index 0000000000..74d0db5200 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailable.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetAttachable; + +public interface LldbModelTargetAvailable extends LldbModelTargetObject, TargetAttachable { + String PID_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "pid"; + // TODO: DESCRIPTION, TYPE, USER? + + public Long getPid(); + + public void setBase(Object value); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailableContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailableContainer.java new file mode 100644 index 0000000000..84c9e1ca70 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetAvailableContainer.java @@ -0,0 +1,22 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +public interface LldbModelTargetAvailableContainer extends LldbModelTargetObject { + + public LldbModelTargetAvailable getTargetAttachable(String pid); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointContainer.java new file mode 100644 index 0000000000..00213b289e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointContainer.java @@ -0,0 +1,97 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.Set; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; + +import SWIG.SBTarget; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.manager.breakpoint.LldbBreakpointType; +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.impl.LldbModelTargetAbstractXpointSpec; +import ghidra.async.AsyncFence; +import ghidra.dbg.target.TargetBreakpointSpec.TargetBreakpointKind; +import ghidra.dbg.target.TargetBreakpointSpecContainer; +import ghidra.dbg.target.schema.*; +import ghidra.program.model.address.AddressRange; + +@TargetObjectSchemaInfo( + name = "BreakpointContainer", + elements = { + @TargetElementType(type = LldbModelTargetAbstractXpointSpec.class) }, + attributes = { + @TargetAttributeType(type = Void.class) }, + canonicalContainer = true) +public interface LldbModelTargetBreakpointContainer extends LldbModelTargetObject, // + TargetBreakpointSpecContainer, // + LldbEventsListenerAdapter { + + @Override + public void breakpointCreated(Object info, LldbCause cause); + + @Override + public void breakpointModified(Object info, LldbCause cause); + + @Override + public void breakpointDeleted(Object info, LldbCause cause); + + @Override + public void breakpointHit(Object info, LldbCause cause); + + public default CompletableFuture doPlaceBreakpoint(Set kinds, + Function> placer) { + AsyncFence fence = new AsyncFence(); + if (kinds.contains(TargetBreakpointKind.READ) && + kinds.contains(TargetBreakpointKind.WRITE)) { + fence.include(placer.apply(LldbBreakpointType.ACCESS_WATCHPOINT)); + } + else if (kinds.contains(TargetBreakpointKind.READ)) { + fence.include(placer.apply(LldbBreakpointType.READ_WATCHPOINT)); + } + else if (kinds.contains(TargetBreakpointKind.WRITE)) { + fence.include(placer.apply(LldbBreakpointType.WRITE_WATCHPOINT)); + } + if (kinds.contains(TargetBreakpointKind.HW_EXECUTE)) { + fence.include(placer.apply(LldbBreakpointType.HW_BREAKPOINT)); + } + if (kinds.contains(TargetBreakpointKind.SW_EXECUTE)) { + fence.include(placer.apply(LldbBreakpointType.BREAKPOINT)); + } + return getModel().gateFuture(fence.ready()); + } + + @Override + public default CompletableFuture placeBreakpoint(String expression, + Set kinds) { + LldbManagerImpl manager = getManager(); + return doPlaceBreakpoint(kinds, t -> manager.insertBreakpoint(expression, t)); + } + + @Override + public default CompletableFuture placeBreakpoint(AddressRange range, + Set kinds) { + LldbManagerImpl manager = getManager(); + long offset = range.getMinAddress().getOffset(); + int len = (int) range.getLength(); + return doPlaceBreakpoint(kinds, t -> manager.insertBreakpoint(offset, len, t)); + } + + public SBTarget getSession(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocation.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocation.java new file mode 100644 index 0000000000..a98e183315 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocation.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetBreakpointLocation; +import ghidra.program.model.address.Address; + +public interface LldbModelTargetBreakpointLocation + extends LldbModelTargetObject, TargetBreakpointLocation { + + @Override + public Address getAddress(); + + public int getLocationId(); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocationContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocationContainer.java new file mode 100644 index 0000000000..5cf2b033b0 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointLocationContainer.java @@ -0,0 +1,39 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import agent.lldb.manager.LldbEventsListenerAdapter; +import ghidra.dbg.target.TargetBreakpointLocationContainer; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "BreakpointContainer", + elements = { + @TargetElementType(type = LldbModelTargetBreakpointLocation.class) }, + attributes = { + @TargetAttributeType(type = Void.class) }, + canonicalContainer = true) +public interface LldbModelTargetBreakpointLocationContainer extends LldbModelTargetObject, // + TargetBreakpointLocationContainer, // + LldbEventsListenerAdapter { + + void addBreakpointLocation(LldbModelTargetBreakpointLocation loc); + + void removeBreakpointLocation(LldbModelTargetBreakpointLocation loc); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointSpec.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointSpec.java new file mode 100644 index 0000000000..1cbb1f5755 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetBreakpointSpec.java @@ -0,0 +1,97 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.concurrent.CompletableFuture; + +import agent.lldb.lldb.DebugClient; +import ghidra.dbg.target.TargetBreakpointSpec; +import ghidra.dbg.target.TargetBreakpointSpecContainer.TargetBreakpointKindSet; +import ghidra.dbg.target.TargetDeletable; +import ghidra.util.datastruct.ListenerSet; + +public interface LldbModelTargetBreakpointSpec extends // + LldbModelTargetObject, // + TargetBreakpointSpec, // + TargetDeletable { + + String BPT_ACCESS_ATTRIBUTE_NAME = "Access"; + String BPT_DISP_ATTRIBUTE_NAME = "Enabled"; + String BPT_VALID_ATTRIBUTE_NAME = "Valid"; + String BPT_TIMES_ATTRIBUTE_NAME = "Count"; + String BPT_TYPE_ATTRIBUTE_NAME = "Type"; + String BPT_INDEX_ATTRIBUTE_NAME = "Id"; + + @Override + public default CompletableFuture delete() { + return getModel().gateFuture(getManager().deleteBreakpoints(getId())); + } + + @Override + public default CompletableFuture disable() { + setEnabled(false, "Disabled"); + return getModel().gateFuture(getManager().disableBreakpoints(getId())); + } + + @Override + public default CompletableFuture enable() { + setEnabled(true, "Enabled"); + return getModel().gateFuture(getManager().enableBreakpoints(getId())); + } + + public default String getId() { + return DebugClient.getId(getModelObject()); + } + + @Override + public TargetBreakpointKindSet getKinds(); + + public void updateInfo(Object info, String reason); + + /** + * Update the enabled field + * + * This does not actually toggle the breakpoint. It just updates the field and calls the proper + * listeners. To actually toggle the breakpoint, use {@link #toggle(boolean)} instead, which if + * effective, should eventually cause this method to be called. + * + * @param enabled true if enabled, false if disabled + * @param reason a description of the cause (not really used, yet) + */ + public void setEnabled(boolean enabled, String reason); + + public ListenerSet getActions(); + + @Override + public default void addAction(TargetBreakpointAction action) { + getActions().add(action); + } + + @Override + public default void removeAction(TargetBreakpointAction action) { + getActions().remove(action); + } + + public default void breakpointHit() { + LldbModelTargetThread targetThread = + getParentProcess().getThreads().getTargetThread(getManager().getEventThread()); + getActions().fire.breakpointHit((LldbModelTargetBreakpointSpec) getProxy(), targetThread, + null, findLocation(targetThread)); + } + + public LldbModelTargetBreakpointLocation findLocation(Object object); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnector.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnector.java new file mode 100644 index 0000000000..e59d79a59e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnector.java @@ -0,0 +1,41 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface1.LldbModelSelectableObject; +import ghidra.dbg.target.TargetLauncher; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; + +public interface LldbModelTargetConnector + extends LldbModelSelectableObject, TargetLauncher { + + @Override + public default String getDisplay() { + return getName(); + } + + @Override + public CompletableFuture setActive(); + + @Override + public TargetParameterMap getParameters(); + + @Override + public CompletableFuture launch(Map args); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnectorContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnectorContainer.java new file mode 100644 index 0000000000..ee9381247f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetConnectorContainer.java @@ -0,0 +1,22 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +public interface LldbModelTargetConnectorContainer extends LldbModelTargetObject { + + public LldbModelTargetAvailable getTargetAttachable(int pid); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetDebugContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetDebugContainer.java new file mode 100644 index 0000000000..53e274ff65 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetDebugContainer.java @@ -0,0 +1,24 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetAggregate; + +public interface LldbModelTargetDebugContainer extends LldbModelTargetObject, TargetAggregate { + + public LldbModelTargetBreakpointContainer getBreakpoints(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetFunction.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetFunction.java new file mode 100644 index 0000000000..6ddbccc7ce --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetFunction.java @@ -0,0 +1,20 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +public interface LldbModelTargetFunction extends LldbModelTargetObject { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryContainer.java new file mode 100644 index 0000000000..42a8232049 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryContainer.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.concurrent.CompletableFuture; + +import SWIG.SBMemoryRegionInfo; +import ghidra.dbg.target.TargetMemory; +import ghidra.program.model.address.Address; + +public interface LldbModelTargetMemoryContainer extends LldbModelTargetObject, TargetMemory { + + public LldbModelTargetMemoryRegion getTargetMemory(SBMemoryRegionInfo region); + + @Override + public CompletableFuture readMemory(Address address, int length); + + @Override + public CompletableFuture writeMemory(Address address, byte[] data); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryRegion.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryRegion.java new file mode 100644 index 0000000000..5b81e2ece8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetMemoryRegion.java @@ -0,0 +1,35 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetMemoryRegion; +import ghidra.program.model.address.AddressRange; + +public interface LldbModelTargetMemoryRegion extends LldbModelTargetObject, TargetMemoryRegion { + + @Override + public AddressRange getRange(); + + @Override + public boolean isReadable(); + + @Override + public boolean isWritable(); + + @Override + public boolean isExecutable(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModule.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModule.java new file mode 100644 index 0000000000..387f31ec22 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModule.java @@ -0,0 +1,71 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import SWIG.SBModule; +import ghidra.dbg.target.TargetModule; +import ghidra.dbg.target.TargetObject; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressRange; +import ghidra.program.model.address.AddressRangeImpl; +import ghidra.program.model.address.AddressSpace; + +public interface LldbModelTargetModule extends LldbModelTargetObject, TargetModule { + + SBModule getModule(); + + @Override + public default CompletableFuture init(Map map) { + AddressSpace space = getModel().getAddressSpace("ram"); + return requestNativeAttributes().thenAccept(attrs -> { + if (attrs != null) { + map.putAll(attrs); + TargetObject baseOffset2 = (TargetObject) attrs.get("BaseAddress"); + TargetObject nameAttr = (TargetObject) attrs.get("Name"); + TargetObject size = (TargetObject) attrs.get("Size"); + String basestr = baseOffset2 == null ? "0" + : baseOffset2.getCachedAttribute(VALUE_ATTRIBUTE_NAME).toString(); + String namestr = nameAttr == null ? "" + : nameAttr.getCachedAttribute(VALUE_ATTRIBUTE_NAME).toString(); + String sizestr = + size == null ? "1" : size.getCachedAttribute(VALUE_ATTRIBUTE_NAME).toString(); + String shortnamestr = namestr; + int sep = shortnamestr.lastIndexOf('\\'); + if (sep > 0 && sep < shortnamestr.length()) { + shortnamestr = shortnamestr.substring(sep + 1); + } + Long base = Long.parseUnsignedLong(basestr, 16); + Integer sz = Integer.parseInt(sizestr, 16); + Address min = space.getAddress(base); + Address max = min.add(sz - 1); + AddressRange range = new AddressRangeImpl(min, max); + map.put(RANGE_ATTRIBUTE_NAME, range); + + String oldval = (String) getCachedAttribute(DISPLAY_ATTRIBUTE_NAME); + map.put(MODULE_NAME_ATTRIBUTE_NAME, namestr); + map.put(SHORT_DISPLAY_ATTRIBUTE_NAME, shortnamestr); + map.put(DISPLAY_ATTRIBUTE_NAME, shortnamestr); + setModified(map, !shortnamestr.equals(oldval)); + } + }); + } + + void setRange(AddressRangeImpl addressRangeImpl); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleContainer.java new file mode 100644 index 0000000000..4a19dd7714 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleContainer.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.concurrent.CompletableFuture; + +import SWIG.SBModule; +import agent.lldb.lldb.DebugModuleInfo; +import agent.lldb.model.iface1.LldbModelTargetEventScope; +import ghidra.dbg.target.TargetModule; +import ghidra.dbg.target.TargetModuleContainer; + +public interface LldbModelTargetModuleContainer + extends LldbModelTargetEventScope, TargetModuleContainer { + + @Override + public CompletableFuture addSyntheticModule(String name); + + public LldbModelTargetModule getTargetModule(SBModule module); + + public void libraryLoaded(DebugModuleInfo info, int index); + + public void libraryUnloaded(DebugModuleInfo info, int index); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSection.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSection.java new file mode 100644 index 0000000000..e62e429545 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSection.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetSection; +import ghidra.program.model.address.AddressRange; + +public interface LldbModelTargetModuleSection extends LldbModelTargetObject, TargetSection { + + @Override + public AddressRange getRange(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSectionContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSectionContainer.java new file mode 100644 index 0000000000..dbdb6621e2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetModuleSectionContainer.java @@ -0,0 +1,23 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetSectionContainer; + +public interface LldbModelTargetModuleSectionContainer + extends LldbModelTargetObject, TargetSectionContainer { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetObject.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetObject.java new file mode 100644 index 0000000000..501992ac05 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetObject.java @@ -0,0 +1,87 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.AbstractLldbModel; +import ghidra.async.AsyncUtils; +import ghidra.dbg.DebuggerModelListener; +import ghidra.dbg.agent.SpiTargetObject; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.util.CollectionUtils.Delta; +import ghidra.util.datastruct.ListenerSet; + +public interface LldbModelTargetObject extends SpiTargetObject { + + @Override + public AbstractLldbModel getModel(); + + public default CompletableFuture init(Map map) { + return CompletableFuture.completedFuture(null); + } + + public default LldbManagerImpl getManager() { + return (LldbManagerImpl) getModel().getManager(); + } + + public default LldbManagerImpl getManagerWithCheck() { + LldbManagerImpl impl = (LldbManagerImpl) getModel().getManager(); + if (impl == null) { + return impl; + } + return impl; + } + + public Delta changeAttributes(List remove, Map add, String reason); + + public CompletableFuture> requestNativeAttributes(); + + public default CompletableFuture requestAugmentedAttributes() { + return AsyncUtils.NIL; + } + + public CompletableFuture> requestNativeElements(); + + public ListenerSet getListeners(); + + public LldbModelTargetSession getParentSession(); + + public LldbModelTargetProcess getParentProcess(); + + public LldbModelTargetThread getParentThread(); + + public TargetObject getProxy(); + + public void setModified(Map map, boolean b); + + public void setModified(boolean modified); + + public void resetModified(); + + public Object getModelObject(); + + public void setModelObject(Object modelObject); + + public void addMapObject(Object object, TargetObject targetObject); + + public TargetObject getMapObject(Object object); + + public void deleteMapObject(Object object); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcess.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcess.java new file mode 100644 index 0000000000..7cb3c56d28 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcess.java @@ -0,0 +1,52 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.concurrent.CompletableFuture; + +import SWIG.*; +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.model.iface1.*; +import ghidra.dbg.target.TargetAggregate; +import ghidra.dbg.target.TargetProcess; + +public interface LldbModelTargetProcess extends // + TargetAggregate, // + TargetProcess, // + LldbModelTargetExecutionStateful, // + LldbModelTargetAccessConditioned, // + LldbModelTargetAttacher, // + LldbModelTargetAttachable, // + LldbModelTargetLauncher, // + LldbModelTargetDeletable, // + LldbModelTargetDetachable, // + LldbModelTargetKillable, // + LldbModelTargetResumable, // + LldbModelTargetSteppable, // + LldbModelTargetInterruptible, // + LldbEventsListenerAdapter, // + LldbModelSelectableObject { + + public void processStarted(SBProcess proc); + + public LldbModelTargetThreadContainer getThreads(); + + public SBProcess getProcess(); + + @Override + public CompletableFuture setActive(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcessContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcessContainer.java new file mode 100644 index 0000000000..b24855b840 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetProcessContainer.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBProcess; +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.model.iface1.LldbModelTargetEventScope; + +public interface LldbModelTargetProcessContainer extends // + LldbModelTargetEventScope, // + LldbEventsListenerAdapter { + + public LldbModelTargetProcess getTargetProcess(SBProcess process); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegister.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegister.java new file mode 100644 index 0000000000..e851678c1c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegister.java @@ -0,0 +1,37 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.math.BigInteger; + +import SWIG.SBValue; +import ghidra.dbg.target.TargetRegister; +import ghidra.dbg.util.ConversionUtils; + +public interface LldbModelTargetRegister extends LldbModelTargetObject, TargetRegister { + + @Override + public int getBitLength(); + + public SBValue getRegister(); + + public default byte[] getBytes() { + String val = (String) getCachedAttributes().get(VALUE_ATTRIBUTE_NAME); + BigInteger value = new BigInteger(val, 16); + return ConversionUtils.bigIntegerToBytes(getBitLength() / 8, value); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterBank.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterBank.java new file mode 100644 index 0000000000..84801f5452 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterBank.java @@ -0,0 +1,59 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.CompletableFuture; + +import SWIG.SBValue; +import SWIG.StateType; +import agent.lldb.manager.LldbReason; +import ghidra.dbg.target.TargetRegisterBank; + +public interface LldbModelTargetRegisterBank extends LldbModelTargetObject, TargetRegisterBank { + + public LldbModelTargetRegister getTargetRegister(SBValue register); + + public default void threadStateChangedSpecific(StateType state, LldbReason reason) { + readRegistersNamed(getCachedElements().keySet()); + } + + @Override + public CompletableFuture> readRegistersNamed( + Collection names); + + @Override + public CompletableFuture writeRegistersNamed(Map values); + + @Override + public default Map getCachedRegisters() { + return getValues(); + } + + public default Map getValues() { + Map result = new HashMap<>(); + for (Entry entry : this.getCachedAttributes().entrySet()) { + if (entry.getValue() instanceof LldbModelTargetRegister) { + LldbModelTargetRegister reg = (LldbModelTargetRegister) entry.getValue(); + byte[] bytes = reg.getBytes(); + result.put(entry.getKey(), bytes); + } + } + return result; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainer.java new file mode 100644 index 0000000000..8ee16a6ac6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainer.java @@ -0,0 +1,23 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetRegisterContainer; + +public interface LldbModelTargetRegisterContainer + extends LldbModelTargetObject, TargetRegisterContainer { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainerAndBank.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainerAndBank.java new file mode 100644 index 0000000000..4e8cfc9c01 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRegisterContainerAndBank.java @@ -0,0 +1,29 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBValue; +import ghidra.dbg.target.TargetRegisterBank; +import ghidra.dbg.target.TargetRegisterContainer; + +public interface LldbModelTargetRegisterContainerAndBank extends // + LldbModelTargetObject, // + TargetRegisterContainer, // + TargetRegisterBank { + + public LldbModelTargetRegister getTargetRegister(SBValue register); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRoot.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRoot.java new file mode 100644 index 0000000000..92773a5e85 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetRoot.java @@ -0,0 +1,40 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.model.iface1.LldbModelTargetAccessConditioned; +import agent.lldb.model.iface1.LldbModelTargetActiveScope; +import agent.lldb.model.iface1.LldbModelTargetAttacher; +import agent.lldb.model.iface1.LldbModelTargetEventScope; +import agent.lldb.model.iface1.LldbModelTargetFocusScope; +import agent.lldb.model.iface1.LldbModelTargetLauncher; + +public interface LldbModelTargetRoot extends // + ///LldbModelTargetObject, + LldbModelTargetAccessConditioned, // + LldbModelTargetAttacher, // + LldbModelTargetActiveScope, // + LldbModelTargetEventScope, // + LldbModelTargetLauncher, // + LldbModelTargetFocusScope, // + LldbEventsListenerAdapter { + + void setDefaultConnector(LldbModelTargetConnector defaultConnector); + + // getActive & requestActivation implemented by LldbModelTargetObject & LldbModelTargetActiveScope + // getFocus & requestFocus implemented by LldbModelTargetObject & LldbModelTargetFocusScope +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSession.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSession.java new file mode 100644 index 0000000000..8c5f2d2db2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSession.java @@ -0,0 +1,66 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.List; +import java.util.Map; + +import agent.lldb.lldb.DebugClient.DebugOutputFlags; +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.model.iface1.*; +import ghidra.dbg.target.TargetAggregate; +import ghidra.dbg.target.TargetConsole; +import ghidra.dbg.target.TargetConsole.Channel; + +public interface LldbModelTargetSession extends // + LldbModelTargetAccessConditioned, // + //LldbModelTargetFocusScope, // + LldbModelTargetExecutionStateful, // + LldbModelTargetInterpreter, // + LldbModelTargetInterruptible, // + LldbModelTargetResumable, // + LldbEventsListenerAdapter, // + LldbModelSelectableObject, // + TargetAggregate { + + LldbModelTargetProcessContainer getProcesses(); + + LldbModelTargetModuleContainer getModules(); + + @Override + public default void consoleOutput(String output, int mask) { + + Channel chan = TargetConsole.Channel.STDOUT; + if (((mask & DebugOutputFlags.DEBUG_OUTPUT_ERROR.getValue()) // + == DebugOutputFlags.DEBUG_OUTPUT_ERROR.getValue()) || // + ((mask & DebugOutputFlags.DEBUG_OUTPUT_WARNING.getValue()) // + == DebugOutputFlags.DEBUG_OUTPUT_WARNING.getValue())) { + chan = TargetConsole.Channel.STDERR; + } + if (output.contains("loaded *kernel* extension dll for usermode")) { + return; + } + getListeners().fire.consoleOutput(getProxy(), chan, output); + } + + @Override + public default void promptChanged(String prompt) { + changeAttributes(List.of(), Map.of( // + PROMPT_ATTRIBUTE_NAME, prompt // + ), "Refreshed"); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributes.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributes.java new file mode 100644 index 0000000000..4f2e1e2a12 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributes.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.model.iface1.LldbModelTargetEnvironment; + +public interface LldbModelTargetSessionAttributes extends + LldbModelTargetEnvironment, // + LldbEventsListenerAdapter { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesEnvironment.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesEnvironment.java new file mode 100644 index 0000000000..1954603d65 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesEnvironment.java @@ -0,0 +1,24 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import agent.lldb.manager.LldbEventsListenerAdapter; + +public interface LldbModelTargetSessionAttributesEnvironment extends // + LldbModelTargetObject, // + LldbEventsListenerAdapter { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesPlatform.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesPlatform.java new file mode 100644 index 0000000000..4792ec5346 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionAttributesPlatform.java @@ -0,0 +1,24 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import agent.lldb.manager.LldbEventsListenerAdapter; + +public interface LldbModelTargetSessionAttributesPlatform extends // + LldbModelTargetObject, // + LldbEventsListenerAdapter { + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionContainer.java new file mode 100644 index 0000000000..874285d7da --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSessionContainer.java @@ -0,0 +1,36 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBTarget; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbEventsListenerAdapter; + +public interface LldbModelTargetSessionContainer + extends LldbModelTargetObject, LldbEventsListenerAdapter { + + @Override + public void sessionAdded(SBTarget session, LldbCause cause); + + @Override + public void sessionReplaced(SBTarget session, LldbCause cause); + + @Override + public void sessionRemoved(String sessionId, LldbCause cause); + + public LldbModelTargetSession getTargetSession(SBTarget session); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStack.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStack.java new file mode 100644 index 0000000000..ff7c5be23e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStack.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBFrame; +import ghidra.dbg.target.TargetStack; + +public interface LldbModelTargetStack + extends LldbModelTargetObject, TargetStack { + + public LldbModelTargetStackFrame getTargetFrame(SBFrame frame); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrame.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrame.java new file mode 100644 index 0000000000..b60cbd8b84 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrame.java @@ -0,0 +1,106 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import SWIG.SBFrame; +import SWIG.SBThread; +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.iface1.LldbModelSelectableObject; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.TargetStackFrame; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressSpace; + +public interface LldbModelTargetStackFrame extends // + TargetStackFrame, // + LldbEventsListenerAdapter, // + LldbModelSelectableObject { + + public static final String FUNC_ATTRIBUTE_NAME = "function"; + public static final String FUNC_TABLE_ENTRY_ATTRIBUTE_NAME = "Table Entry"; + public static final String FRAME_OFFSET_ATTRIBUTE_NAME = "Frame Offset"; + public static final String INST_OFFSET_ATTRIBUTE_NAME = "Inst. Offset"; + public static final String RETURN_OFFSET_ATTRIBUTE_NAME = "Return Offset"; + public static final String CALL_FRAME_OFFSET_ATTRIBUTE_NAME = "Call Frame Offset"; + public static final String STACK_OFFSET_ATTRIBUTE_NAME = "Stack Offset"; + public static final String VIRTUAL_ATTRIBUTE_NAME = "Virtual"; + public static final String PARAM0_ATTRIBUTE_NAME = "Param[0]"; + public static final String PARAM1_ATTRIBUTE_NAME = "Param[1]"; + public static final String PARAM2_ATTRIBUTE_NAME = "Param[2]"; + public static final String PARAM3_ATTRIBUTE_NAME = "Param[3]"; + + @Override + public default CompletableFuture setActive() { + LldbManagerImpl manager = getManager(); + SBThread thread = manager.getCurrentThread(); + String name = this.getName(); + String stripped = name.substring(1, name.length() - 1); + int index = Integer.decode(stripped); + return manager.setActiveFrame(thread, index); + } + + @Override + public default CompletableFuture init(Map map) { + AddressSpace space = getModel().getAddressSpace("ram"); + return requestNativeAttributes().thenCompose(attrs -> { + if (attrs == null) { + return CompletableFuture.completedFuture(null); + } + map.putAll(attrs); + LldbModelTargetObject attributes = (LldbModelTargetObject) attrs.get("Attributes"); + if (attributes == null) { + return CompletableFuture.completedFuture(null); + } + return attributes.requestAugmentedAttributes().thenCompose(ax -> { + Map subattrs = attributes.getCachedAttributes(); + if (subattrs == null) { + return CompletableFuture.completedFuture(null); + } + LldbModelTargetObject frameNumber = + (LldbModelTargetObject) subattrs.get("FrameNumber"); + return frameNumber.requestAugmentedAttributes().thenCompose(bx -> { + Object noval = frameNumber.getCachedAttribute(VALUE_ATTRIBUTE_NAME); + String nostr = noval.toString(); + LldbModelTargetObject instructionOffset = + (LldbModelTargetObject) subattrs.get("InstructionOffset"); + return instructionOffset.requestAugmentedAttributes().thenAccept(cx -> { + String oldval = (String) getCachedAttribute(DISPLAY_ATTRIBUTE_NAME); + Object pcval = instructionOffset.getCachedAttribute(VALUE_ATTRIBUTE_NAME); + String pcstr = pcval.toString(); + long pc = Long.parseUnsignedLong(pcstr, 16); + map.put(PC_ATTRIBUTE_NAME, space.getAddress(pc)); + String display = String.format("#%s 0x%s", nostr, pcstr); + map.put(DISPLAY_ATTRIBUTE_NAME, display); + setModified(map, !display.equals(oldval)); + }); + }); + }); + }); + } + + public void setFrame(SBFrame frame); + + public TargetObject getThread(); + + public Address getPC(); + + public LldbModelTargetProcess getProcess(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegister.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegister.java new file mode 100644 index 0000000000..f14986517b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegister.java @@ -0,0 +1,50 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.math.BigInteger; + +import SWIG.SBValue; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.dbg.util.ConversionUtils; + +@TargetObjectSchemaInfo( + name = "RegisterValueInterface", + elementResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Object.class) + }, + canonicalContainer = true) +public interface LldbModelTargetStackFrameRegister extends LldbModelTargetRegister { + + @Override + public int getBitLength(); + + public SBValue getRegister(); + + public default byte[] getBytes() { + String val = (String) getCachedAttributes().get(VALUE_ATTRIBUTE_NAME); + BigInteger value = new BigInteger(val, 16); + return ConversionUtils.bigIntegerToBytes(16, value); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterBank.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterBank.java new file mode 100644 index 0000000000..e3c63f11a8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterBank.java @@ -0,0 +1,38 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBValue; +import agent.lldb.model.impl.LldbModelTargetStackFrameRegisterImpl; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; + +@TargetObjectSchemaInfo( + name = "RegisterValueBankInterface", + elementResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = LldbModelTargetStackFrameRegisterImpl.class) + }, + attributes = { + @TargetAttributeType(type = Object.class) + }, + canonicalContainer = true) +public interface LldbModelTargetStackFrameRegisterBank + extends LldbModelTargetRegisterBank { + + public LldbModelTargetRegister getTargetRegister(SBValue register); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterContainer.java new file mode 100644 index 0000000000..2a70edcc0c --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetStackFrameRegisterContainer.java @@ -0,0 +1,46 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBValue; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; + +@TargetObjectSchemaInfo( + name = "RegisterContainerInterface", + attributeResync = ResyncMode.ALWAYS, + attributes = { + @TargetAttributeType( + name = "General Purpose Registers", + type = LldbModelTargetStackFrameRegisterBank.class, + required = true), + @TargetAttributeType( + name = "Exception State Registers", + type = LldbModelTargetStackFrameRegisterBank.class, + required = true), + @TargetAttributeType( + name = "Floating Point Registers", + type = LldbModelTargetStackFrameRegisterBank.class, + required = true), + @TargetAttributeType(type = Void.class) + }) +public interface LldbModelTargetStackFrameRegisterContainer + extends LldbModelTargetRegisterContainer { + + public LldbModelTargetObject getTargetRegisterBank(SBValue val); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbol.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbol.java new file mode 100644 index 0000000000..2ed0e34f9b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbol.java @@ -0,0 +1,31 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import ghidra.dbg.target.TargetSymbol; +import ghidra.program.model.address.Address; + +public interface LldbModelTargetSymbol extends LldbModelTargetObject, TargetSymbol { + + @Override + public boolean isConstant(); + + @Override + public Address getValue(); + + @Override + public long getSize(); +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbolContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbolContainer.java new file mode 100644 index 0000000000..ca276df0d5 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetSymbolContainer.java @@ -0,0 +1,27 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBSymbol; +import agent.lldb.model.impl.LldbModelTargetSymbolImpl; +import ghidra.dbg.target.TargetSymbolNamespace; + +public interface LldbModelTargetSymbolContainer + extends LldbModelTargetObject, TargetSymbolNamespace { + + public LldbModelTargetSymbolImpl getTargetSymbol(SBSymbol symbol); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThread.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThread.java new file mode 100644 index 0000000000..18c803169f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThread.java @@ -0,0 +1,62 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import java.util.concurrent.CompletableFuture; + +import SWIG.SBThread; +import SWIG.StateType; +import agent.lldb.manager.*; +import agent.lldb.manager.cmd.LldbSetActiveThreadCommand; +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.iface1.*; +import agent.lldb.model.impl.LldbModelTargetStackImpl; +import ghidra.dbg.target.*; + +public interface LldbModelTargetThread extends // + TargetThread, // + LldbModelTargetAccessConditioned, // + LldbModelTargetExecutionStateful, // + LldbModelTargetSteppable, // + LldbStateListener, // + LldbEventsListenerAdapter, // + LldbModelSelectableObject { + + public default SBThread getThread() { + return (SBThread) getModelObject(); + } + + public default void threadStateChangedSpecific(StateType state, LldbReason reason) { + TargetRegisterContainer container = + (TargetRegisterContainer) getCachedAttribute("Registers"); + TargetRegisterBank bank = (TargetRegisterBank) container.getCachedAttribute("User"); + if (state.equals(StateType.eStateStopped)) { + bank.readRegistersNamed(getCachedElements().keySet()); + } + } + + @Override + public default CompletableFuture setActive() { + LldbManagerImpl manager = getManager(); + SBThread thread = getThread(); + return manager.execute(new LldbSetActiveThreadCommand(manager, thread, -1)); + } + + public LldbModelTargetStackImpl getStack(); + + public String getExecutingProcessorType(); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThreadContainer.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThreadContainer.java new file mode 100644 index 0000000000..111f76fa97 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/iface2/LldbModelTargetThreadContainer.java @@ -0,0 +1,34 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.iface2; + +import SWIG.SBThread; +import agent.lldb.manager.LldbEventsListenerAdapter; +import agent.lldb.model.iface1.LldbModelTargetEventScope; + +public interface LldbModelTargetThreadContainer extends // + LldbModelTargetEventScope, // + LldbEventsListenerAdapter { + + public LldbModelTargetThread getTargetThread(SBThread thread); + + public void threadCreated(SBThread thread); + + public void threadReplaced(SBThread thread); + + public void threadExited(SBThread thread); + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelDefaultTargetModelRoot.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelDefaultTargetModelRoot.java new file mode 100644 index 0000000000..dc1d9b2aae --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelDefaultTargetModelRoot.java @@ -0,0 +1,33 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import ghidra.dbg.target.TargetAggregate; +import ghidra.dbg.target.schema.TargetObjectSchema; + +public class LldbModelDefaultTargetModelRoot extends LldbModelTargetObjectImpl + implements TargetAggregate { + + public LldbModelDefaultTargetModelRoot(LldbModelImpl model, String typeHint) { + super(model, null, null, null, typeHint); + } + + public LldbModelDefaultTargetModelRoot(LldbModelImpl model, String typeHint, + TargetObjectSchema schema) { + super(model, null, null, null, typeHint, schema); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelImpl.java new file mode 100644 index 0000000000..fc1db4d62e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelImpl.java @@ -0,0 +1,188 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.RejectedExecutionException; + +import org.apache.commons.lang3.exception.ExceptionUtils; + +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbManager; +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.AbstractLldbModel; +import agent.lldb.model.iface2.LldbModelTargetProcess; +import agent.lldb.model.iface2.LldbModelTargetSession; +import ghidra.async.AsyncUtils; +import ghidra.dbg.DebuggerModelClosedReason; +import ghidra.dbg.DebuggerObjectModelWithMemory; +import ghidra.dbg.error.DebuggerModelTerminatingException; +import ghidra.dbg.target.TargetMemory; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.AnnotatedSchemaContext; +import ghidra.dbg.target.schema.TargetObjectSchema; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressFactory; +import ghidra.program.model.address.AddressSpace; +import ghidra.program.model.address.DefaultAddressFactory; +import ghidra.program.model.address.GenericAddressSpace; + +public class LldbModelImpl extends AbstractLldbModel implements DebuggerObjectModelWithMemory { + // TODO: Need some minimal memory modeling per architecture on the model/agent side. + // The model must convert to and from Ghidra's address space names + protected static final String SPACE_NAME = "ram"; + + protected static final AnnotatedSchemaContext SCHEMA_CTX = new AnnotatedSchemaContext(); + protected static final TargetObjectSchema ROOT_SCHEMA = + SCHEMA_CTX.getSchemaForClass(LldbModelTargetRootImpl.class); + + // Don't make this static, so each model has a unique "LLDB" space + protected final AddressSpace space = + new GenericAddressSpace(SPACE_NAME, 64, AddressSpace.TYPE_RAM, 0); + protected final AddressFactory addressFactory = + new DefaultAddressFactory(new AddressSpace[] { space }); + + protected LldbManager manager; + protected final LldbModelTargetRootImpl root; + protected LldbModelTargetSession session; + + protected final CompletableFuture completedRoot; + + protected Map objectMap = new HashMap<>(); + + public LldbModelImpl() { + this.manager = LldbManager.newInstance(); + //System.out.println(XmlSchemaContext.serialize(SCHEMA_CTX)); + this.root = new LldbModelTargetRootImpl(this, ROOT_SCHEMA); + this.completedRoot = CompletableFuture.completedFuture(root); + /* + SBTarget s = manager.getSession(new DebugSessionId(0)); + LldbModelTargetSessionContainer sessions = root.sessions; + this.session = sessions.getTargetSession(s); + */ + addModelRoot(root); + } + + @Override + public String getBrief() { + return "LLDB@" + Integer.toHexString(System.identityHashCode(this)); + } + + @Override + public AddressSpace getAddressSpace(String name) { + if (!SPACE_NAME.equals(name)) { + return null; + } + return space; + } + + // TODO: Place make this a model method? + @Override + public AddressFactory getAddressFactory() { + return addressFactory; + } + + @Override + public CompletableFuture startLLDB(String[] args) { + return manager.start(args).thenApplyAsync(__ -> null, clientExecutor); + } + + @Override + public boolean isRunning() { + return manager.isRunning(); + } + + @Override + public void terminate() throws IOException { + listeners.fire.modelClosed(DebuggerModelClosedReason.NORMAL); + root.invalidateSubtree(root, "LLDB is terminating"); + manager.terminate(); + } + + @Override + public TargetObjectSchema getRootSchema() { + return root.getSchema(); + } + + @Override + public CompletableFuture fetchModelRoot() { + return completedRoot; + } + + @Override + public LldbManagerImpl getManager() { + return (LldbManagerImpl) manager; + } + + @Override + public CompletableFuture close() { + try { + terminate(); + return super.close(); + } + catch (RejectedExecutionException e) { + reportError(this, "Model is already closing", e); + return AsyncUtils.NIL; + } + catch (Throwable t) { + return CompletableFuture.failedFuture(t); + } + } + + @Override + public LldbModelTargetSession getSession() { + return session; + } + + @Override + public TargetMemory getMemory(TargetObject target, Address address, int length) { + if (target instanceof LldbModelTargetProcess) { + LldbModelTargetProcess process = (LldbModelTargetProcess) target; + return new LldbModelTargetMemoryContainerImpl(process); + } + return null; + } + + @Override + public void addModelObject(Object object, TargetObject targetObject) { + objectMap.put(DebugClient.getModelKey(object), targetObject); + } + + @Override + public TargetObject getModelObject(Object object) { + return objectMap.get(DebugClient.getModelKey(object)); + } + + public void deleteModelObject(Object object) { + objectMap.remove(DebugClient.getModelKey(object)); + } + + @Override + public CompletableFuture gateFuture(CompletableFuture future) { + return super.gateFuture(future).exceptionally(ex -> { + for (Throwable cause = ex; cause != null; cause = cause.getCause()) { + if (cause instanceof RejectedExecutionException) { + throw new DebuggerModelTerminatingException("LLDB is terminating", ex); + } + } + return ExceptionUtils.rethrow(ex); + }); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAbstractXpointSpec.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAbstractXpointSpec.java new file mode 100644 index 0000000000..61e8bee985 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAbstractXpointSpec.java @@ -0,0 +1,184 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import SWIG.SBBreakpointLocation; +import SWIG.SBTarget; +import agent.lldb.lldb.DebugClient; +import agent.lldb.model.iface2.*; +import ghidra.async.AsyncUtils; +import ghidra.dbg.target.TargetBreakpointSpecContainer.TargetBreakpointKindSet; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; +import ghidra.util.datastruct.ListenerSet; +import ghidra.util.datastruct.WeakValueHashMap; + +@TargetObjectSchemaInfo( + name = "BreakpointSpec", + elements = { // + @TargetElementType(type = LldbModelTargetBreakpointLocationImpl.class) // + }, + attributes = { + @TargetAttributeType(name = "Type", type = String.class), + @TargetAttributeType(name = "Valid", type = Boolean.class), + @TargetAttributeType(name = "Enabled", type = Boolean.class), + @TargetAttributeType(name = "Count", type = Long.class), + @TargetAttributeType(type = Void.class) + }, + canonicalContainer = true) +public abstract class LldbModelTargetAbstractXpointSpec extends LldbModelTargetObjectImpl + implements LldbModelTargetBreakpointSpec { + + protected static String keyBreakpoint(Object bpt) { + return PathUtils.makeKey(DebugClient.getId(bpt)); + } + + protected long number; + protected boolean enabled; + protected String expression; + protected String display; + protected TargetBreakpointKindSet kinds; + + protected final Map breaksBySub = + new WeakValueHashMap<>(); + protected final ListenerSet actions = + new ListenerSet<>(TargetBreakpointAction.class) { + // Use strong references on actions + protected Map createMap() { + return Collections.synchronizedMap(new LinkedHashMap<>()); + }; + }; + + public LldbModelTargetAbstractXpointSpec(LldbModelTargetBreakpointContainer breakpoints, + Object info, String title) { + super(breakpoints.getModel(), breakpoints, keyBreakpoint(info), info, title); + + changeAttributes(List.of(), Map.of(CONTAINER_ATTRIBUTE_NAME, breakpoints), "Initialized"); + } + + @Override + public void setModelObject(Object modelObject) { + super.setModelObject(modelObject); + getModel().addModelObject(modelObject, this); + } + + protected CompletableFuture init() { + Object info = getModelObject(); + updateInfo(info, "Created"); + return AsyncUtils.NIL; + } + + @Override + public abstract String getDescription(int level); + + @Override + public abstract void updateInfo(Object info, String reason); + + protected abstract TargetBreakpointKindSet computeKinds(Object from); + + protected abstract void updateAttributesFromInfo(String reason); + + @Override + public CompletableFuture delete() { + String id = DebugClient.getId(getModelObject()); + return getModel().gateFuture(getManager().deleteBreakpoints(id)); + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public String getExpression() { + return expression; + } + + @Override + public TargetBreakpointKindSet getKinds() { + return kinds; + } + + @Override + public void addAction(TargetBreakpointAction action) { + actions.add(action); + } + + @Override + public void removeAction(TargetBreakpointAction action) { + actions.remove(action); + } + + protected CompletableFuture getInfo(boolean refresh) { + SBTarget session = getManager().getCurrentSession(); + String id = DebugClient.getId(getModelObject()); + if (!refresh) { + return CompletableFuture + .completedFuture(getManager().getKnownBreakpoints(session).get(id)); + } + return getManager().listBreakpoints(session) + .thenApply(__ -> getManager().getKnownBreakpoints(session).get(id)); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getInfo(refresh).thenAccept(i -> { + updateInfo(i, "Refreshed"); + }); + } + + @Override + public CompletableFuture disable() { + String id = DebugClient.getId(getModelObject()); + return getModel().gateFuture(getManager().disableBreakpoints(id)); + } + + @Override + public CompletableFuture enable() { + String id = DebugClient.getId(getModelObject()); + return getModel().gateFuture(getManager().enableBreakpoints(id)); + } + + protected void breakpointHit(LldbModelTargetStackFrame frame, + LldbModelTargetBreakpointLocation eb) { + actions.fire.breakpointHit(this, frame.getParentThread(), frame, eb); + } + + public synchronized LldbModelTargetBreakpointLocation getTargetBreakpointLocation( + SBBreakpointLocation loc) { + return breaksBySub.computeIfAbsent(loc.GetID(), + i -> new LldbModelTargetBreakpointLocationImpl(this, loc)); + } + + @Override + public String getDisplay() { + return display; + } + + @Override + public void setEnabled(boolean enabled, String reason) { + this.enabled = enabled; + } + + @Override + public ListenerSet getActions() { + return new ListenerSet(null); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableContainerImpl.java new file mode 100644 index 0000000000..667961fa2d --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableContainerImpl.java @@ -0,0 +1,104 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.tuple.Pair; + +import agent.lldb.model.iface1.LldbModelTargetConfigurable; +import agent.lldb.model.iface2.LldbModelTargetAvailable; +import agent.lldb.model.iface2.LldbModelTargetAvailableContainer; +import agent.lldb.model.iface2.LldbModelTargetRoot; +import ghidra.async.AsyncUtils; +import ghidra.dbg.error.DebuggerIllegalArgumentException; +import ghidra.dbg.target.TargetConfigurable; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.util.datastruct.WeakValueHashMap; + +@TargetObjectSchemaInfo( + name = "AvailableContainer", + elements = { + @TargetElementType(type = LldbModelTargetAvailableImpl.class) // + }, + elementResync = ResyncMode.ALWAYS, + attributes = { // + @TargetAttributeType(name = TargetConfigurable.BASE_ATTRIBUTE_NAME, type = Integer.class), // + @TargetAttributeType(type = Void.class) // + }, + canonicalContainer = true) +public class LldbModelTargetAvailableContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetAvailableContainer, LldbModelTargetConfigurable { + + protected final Map attachablesById = + new WeakValueHashMap<>(); + + public LldbModelTargetAvailableContainerImpl(LldbModelTargetRoot root) { + super(root.getModel(), root, "Available", "AvailableContainer"); + this.changeAttributes(List.of(), Map.of(BASE_ATTRIBUTE_NAME, 16), "Initialized"); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listAvailableProcesses().thenAccept(list -> { + List available; + synchronized (this) { + // NOTE: If more details added to entries, should clear attachablesById + available = + list.stream().map(this::getTargetAttachableEx).collect(Collectors.toList()); + } + setElements(available, Map.of(), "Refreshed"); + }); + } + + public synchronized LldbModelTargetAvailable getTargetAttachableEx(Pair pair) { + return attachablesById.computeIfAbsent(pair.getLeft(), + i -> new LldbModelTargetAvailableImpl(this, pair.getLeft(), pair.getRight())); + } + + @Override + public synchronized LldbModelTargetAvailable getTargetAttachable(String pid) { + return attachablesById.computeIfAbsent(pid, + i -> new LldbModelTargetAvailableImpl(this, pid)); + } + + @Override + public CompletableFuture writeConfigurationOption(String key, Object value) { + switch (key) { + case BASE_ATTRIBUTE_NAME: + if (value instanceof Integer) { + this.changeAttributes(List.of(), Map.of(BASE_ATTRIBUTE_NAME, value), + "Modified"); + for (LldbModelTargetAvailable child : attachablesById.values()) { + child.setBase(value); + } + } + else { + throw new DebuggerIllegalArgumentException("Base should be numeric"); + } + default: + } + return AsyncUtils.NIL; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableImpl.java new file mode 100644 index 0000000000..ef6913b04a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetAvailableImpl.java @@ -0,0 +1,91 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import agent.lldb.model.iface2.LldbModelTargetAvailable; +import agent.lldb.model.iface2.LldbModelTargetAvailableContainer; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; + +@TargetObjectSchemaInfo( + name = "Available", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetAvailableImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetAvailable { + + protected static String keyAttachable(String pid) { + return PathUtils.makeKey(pid); + } + + protected final String pid; + protected final String name; + private Integer base = 16; + + public LldbModelTargetAvailableImpl(LldbModelTargetAvailableContainer parent, String pid, + String name) { + super(parent.getModel(), parent, keyAttachable(pid), name); + this.name = name; + this.pid = pid; + + this.changeAttributes(List.of(), List.of(), Map.of(// + PID_ATTRIBUTE_NAME, Long.parseLong(pid, 10), // + DISPLAY_ATTRIBUTE_NAME, getDisplay() // + ), "Initialized"); + } + + public LldbModelTargetAvailableImpl(LldbModelTargetAvailableContainer parent, String pid) { + super(parent.getModel(), parent, keyAttachable(pid), "Attachable"); + this.pid = pid; + this.name = ""; + + this.changeAttributes(List.of(), List.of(), Map.of(// + PID_ATTRIBUTE_NAME, Long.parseLong(pid, 10), // + DISPLAY_ATTRIBUTE_NAME, keyAttachable(pid) // + ), "Initialized"); + } + + @TargetAttributeType(name = PID_ATTRIBUTE_NAME, hidden = true) + @Override + public Long getPid() { + return Long.parseLong(pid); + } + + @Override + public String getDisplay() { + Long p = Long.decode(pid); + String pidstr = ""; + if (base == 16) { + pidstr = "0x" + Long.toHexString(p); + } else { + pidstr = pid; + } + return "[" + pidstr + "] : " + name.trim(); + } + + public void setBase(Object value) { + this.base = (Integer) value; + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay()// + ), "Started"); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointContainerImpl.java new file mode 100644 index 0000000000..efaec668d8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointContainerImpl.java @@ -0,0 +1,154 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.math.BigInteger; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetBreakpointSpec.TargetBreakpointKind; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.util.Msg; + +@TargetObjectSchemaInfo( + name = "BreakpointContainer", + elements = { // + @TargetElementType(type = LldbModelTargetAbstractXpointSpec.class) // + }, + attributes = { // + @TargetAttributeType(type = Void.class) // + }, + canonicalContainer = true) +public class LldbModelTargetBreakpointContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetBreakpointContainer { + + protected static final TargetBreakpointKindSet SUPPORTED_KINDS = + TargetBreakpointKindSet.of( + TargetBreakpointKind.SW_EXECUTE, + //TargetBreakpointKind.HW_EXECUTE, + TargetBreakpointKind.READ, + TargetBreakpointKind.WRITE + ); + + private final SBTarget session; + + public LldbModelTargetBreakpointContainerImpl(LldbModelTargetDebugContainer debug, + SBTarget session) { + super(debug.getModel(), debug, "Breakpoints", "BreakpointContainer"); + this.session = session; + + getManager().addEventsListener(this); + + changeAttributes(List.of(), List.of(), Map.of( // + // TODO: Seems terrible to duplicate this static attribute on each instance + SUPPORTED_BREAK_KINDS_ATTRIBUTE_NAME, SUPPORTED_KINDS // + ), "Initialized"); + } + + @Override + public void breakpointCreated(Object info, LldbCause cause) { + LldbModelTargetBreakpointSpec spec = getTargetBreakpointSpec(info); + spec.updateInfo(info, "Created"); + changeElements(List.of(), List.of(getTargetBreakpointSpec(info)), Map.of(), "Created"); + } + + @Override + public void breakpointModified(Object info, LldbCause cause) { + getTargetBreakpointSpec(info).updateInfo(info, "Modified"); + } + + @Override + public void breakpointDeleted(Object info, LldbCause cause) { + LldbModelImpl impl = (LldbModelImpl) model; + impl.deleteModelObject(info); + changeElements(List.of( // + DebugClient.getId(getModelObject()) // + ), List.of(), Map.of(), "Deleted"); + } + + @Override + public void breakpointHit(Object obj, LldbCause cause) { + SBBreakpoint bpt = (SBBreakpoint) obj; + SBProcess eventProcess = getManager().getEventProcess(); + long nthreads = eventProcess.GetNumThreads(); + for (int i = 0; i < nthreads; i++) { + SBThread t = eventProcess.GetThreadAtIndex(i); + StopReason reason = t.GetStopReason(); + if (reason.equals(StopReason.eStopReasonBreakpoint)) { + BigInteger bptId = t.GetStopReasonDataAtIndex(0); + BigInteger locId = t.GetStopReasonDataAtIndex(1); + if (bpt.GetID() == bptId.intValue()) { + LldbModelTargetProcess targetProcess = (LldbModelTargetProcess) getModel().getModelObject(eventProcess); + LldbModelTargetThread targetThread = + targetProcess.getThreads().getTargetThread(t); + LldbModelTargetBreakpointSpec spec = getTargetBreakpointSpec(bpt); + if (spec == null) { + Msg.error(this, "Stopped for breakpoint unknown to the agent: " + bpt + " (pc=" + + targetThread + ")"); + return; + } + + LldbModelTargetBreakpointLocation loc = spec.findLocation(locId); + if (loc == null) { + Msg.warn(this, + "Stopped for a breakpoint whose location is unknown to the agent: " + spec); + } + listeners.fire.breakpointHit(this, targetThread, null, spec, loc); + } + } + } + } + + public LldbModelTargetBreakpointSpec getTargetBreakpointSpec(Object bpt) { + TargetObject targetObject = getMapObject(bpt); + if (targetObject != null) { + LldbModelTargetBreakpointSpec spec = (LldbModelTargetBreakpointSpec) targetObject; + spec.setModelObject(bpt); + return spec; + } + if (bpt instanceof SBBreakpoint) { + return new LldbModelTargetBreakpointSpecImpl(this, bpt); + } + else { + return new LldbModelTargetWatchpointSpecImpl(this, bpt); + } + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listBreakpoints(getSession()).thenAccept(byNumber -> { + List specs; + synchronized (this) { + specs = byNumber.values() + .stream() + .map(this::getTargetBreakpointSpec) + .collect(Collectors.toList()); + } + setElements(specs, Map.of(), "Refreshed"); + }); + } + + public SBTarget getSession() { + return session; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationContainerImpl.java new file mode 100644 index 0000000000..42da93aa91 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationContainerImpl.java @@ -0,0 +1,90 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.SBBreakpointLocation; +import SWIG.SBTarget; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "BreakpointLocationContainer", + elements = { // + @TargetElementType(type = LldbModelTargetBreakpointLocationImpl.class) // + }, + attributes = { // + @TargetAttributeType(type = Void.class) // + }, + canonicalContainer = true) +public class LldbModelTargetBreakpointLocationContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetBreakpointLocationContainer { + + protected final LldbModelTargetProcessImpl targetProcess; + + public LldbModelTargetBreakpointLocationContainerImpl(LldbModelTargetProcess targetProcess) { + super(targetProcess.getModel(), targetProcess, "Breakpoints", + "BreakpointLocationContainer"); + this.targetProcess = (LldbModelTargetProcessImpl) targetProcess; + + getManager().addEventsListener(this); + requestElements(false); + } + + public LldbModelTargetBreakpointLocation getTargetBreakpointLocation(SBBreakpointLocation loc) { + TargetObject targetObject = getMapObject(loc); + if (targetObject != null) { + LldbModelTargetBreakpointLocation location = + (LldbModelTargetBreakpointLocation) targetObject; + location.setModelObject(loc); + return location; + } + TargetObject spec = getModel().getModelObject(loc.GetBreakpoint()); + return new LldbModelTargetBreakpointLocationImpl((LldbModelTargetAbstractXpointSpec) spec, + loc); + } + + /* + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listBreakpointLocations((SBBreakpoint)(targetBreakpoint).getBreakpointInfo()).thenAccept(byNumber -> { + List locs; + synchronized (this) { + locs = byNumber.values() + .stream() + .map(this::getTargetBreakpointLocation) + .collect(Collectors.toList()); + } + setElements(locs, Map.of(), "Refreshed"); + }); + } + */ + + public void addBreakpointLocation(LldbModelTargetBreakpointLocation loc) { + changeElements(List.of(), Map.of(loc.getName(), loc), "Added"); + } + + public void removeBreakpointLocation(LldbModelTargetBreakpointLocation loc) { + changeElements(List.of(loc.getName()), Map.of(), "Removed"); + } + + public SBTarget getSession() { + return (SBTarget) getModelObject(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationImpl.java new file mode 100644 index 0000000000..8969f48389 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointLocationImpl.java @@ -0,0 +1,145 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; + +@TargetObjectSchemaInfo( + name = "BreakpointLocation", + attributes = { + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetBreakpointLocationImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetBreakpointLocation { + + protected static String keyLocation(SBBreakpointLocation loc) { + return PathUtils.makeKey(DebugClient.getId(loc)); + } + + protected static String keyLocation(SBWatchpoint wpt) { + return PathUtils.makeKey(DebugClient.getId(wpt) + ".0"); + } + + protected LldbModelTargetAbstractXpointSpec spec; + protected SBBreakpointLocation loc; + + protected Address address; + protected Integer length; + protected String display; + + + public LldbModelTargetBreakpointLocationImpl(LldbModelTargetAbstractXpointSpec spec, + SBBreakpointLocation loc) { + super(spec.getModel(), spec, keyLocation(loc), loc, "BreakpointLocation"); + this.spec = spec; + this.loc = loc; + + doChangeAttributes("Initialization"); + } + + public LldbModelTargetBreakpointLocationImpl(LldbModelTargetAbstractXpointSpec spec, + SBWatchpoint wpt) { + super(spec.getModel(), spec, keyLocation(wpt), wpt, "BreakpointLocation"); + this.loc = null; + + address = getModel().getAddress("ram", wpt.GetWatchAddress().longValue()); + this.changeAttributes(List.of(), Map.of( + SPEC_ATTRIBUTE_NAME, parent, + ADDRESS_ATTRIBUTE_NAME, address, + LENGTH_ATTRIBUTE_NAME, length = (int) wpt.GetWatchSize(), + DISPLAY_ATTRIBUTE_NAME, display = getDescription(1)), + "Initialization"); + placeLocations(); + } + + public String getDescription(int level) { + Object modelObject = getModelObject(); + SBStream stream = new SBStream(); + DescriptionLevel detail = DescriptionLevel.swigToEnum(level); + if (modelObject instanceof SBBreakpointLocation) { + SBBreakpointLocation loc = (SBBreakpointLocation) getModelObject(); + loc.GetDescription(stream, detail); + } + if (modelObject instanceof SBWatchpoint) { + SBWatchpoint wpt = (SBWatchpoint) getModelObject(); + wpt.GetDescription(stream, detail); + } + return stream.GetData(); + } + + protected void doChangeAttributes(String reason) { + address = getModel().getAddress("ram", loc.GetLoadAddress().longValue()); + length = 1; + this.changeAttributes(List.of(), Map.of( + SPEC_ATTRIBUTE_NAME, parent, + ADDRESS_ATTRIBUTE_NAME, address, + LENGTH_ATTRIBUTE_NAME, length, + DISPLAY_ATTRIBUTE_NAME, display = getDescription(1)), + reason); + placeLocations(); + } + + protected void placeLocations() { + LldbModelTargetSession parentSession = getParentSession(); + Map cachedElements = parentSession.getProcesses().getCachedElements(); + for (TargetObject obj : cachedElements.values()) { + if (obj instanceof LldbModelTargetProcess) { + LldbModelTargetProcessImpl process = (LldbModelTargetProcessImpl) obj; + process.addBreakpointLocation(this); + } + } + } + + @Override + protected void doInvalidate(TargetObject branch, String reason) { + removeLocations(); + super.doInvalidate(branch, reason); + } + + protected void removeLocations() { + TargetObject modelObject = getModel().getModelObject(getManager().getCurrentProcess()); + if (modelObject instanceof LldbModelTargetProcess) { + LldbModelTargetProcess targetProcess = (LldbModelTargetProcess) modelObject; + LldbModelTargetBreakpointLocationContainer locs = (LldbModelTargetBreakpointLocationContainer) targetProcess.getCachedAttribute("Breakpoints"); + locs.removeBreakpointLocation(this); + } + } + + @Override + public Integer getLength() { + return length; + } + + @Override + public Address getAddress() { + return address; + } + + @Override + public int getLocationId() { + return loc.GetID(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointSpecImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointSpecImpl.java new file mode 100644 index 0000000000..9ff4607982 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetBreakpointSpecImpl.java @@ -0,0 +1,143 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.math.BigInteger; +import java.util.*; +import java.util.stream.Collectors; + +import SWIG.*; +import agent.lldb.model.iface2.LldbModelTargetBreakpointContainer; +import agent.lldb.model.iface2.LldbModelTargetBreakpointLocation; +import ghidra.dbg.target.TargetBreakpointLocation; +import ghidra.dbg.target.TargetBreakpointSpecContainer.TargetBreakpointKindSet; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.util.datastruct.ListenerSet; + +@TargetObjectSchemaInfo( + name = "BreakpointSpec", + elements = { // + @TargetElementType(type = LldbModelTargetBreakpointLocationImpl.class) // + }, + attributes = { + @TargetAttributeType(name = "Type", type = String.class), + @TargetAttributeType(name = "Valid", type = Boolean.class), + @TargetAttributeType(name = "Enabled", type = Boolean.class), + @TargetAttributeType(name = "Count", type = Long.class), + @TargetAttributeType(type = Void.class) + }, + canonicalContainer = true) +public class LldbModelTargetBreakpointSpecImpl extends LldbModelTargetAbstractXpointSpec { + + protected final ListenerSet actions = + new ListenerSet<>(TargetBreakpointAction.class) { + // Use strong references on actions + protected Map createMap() { + return Collections.synchronizedMap(new LinkedHashMap<>()); + }; + }; + + public LldbModelTargetBreakpointSpecImpl(LldbModelTargetBreakpointContainer breakpoints, + Object info) { + super(breakpoints, info, "BreakpointSpec"); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBBreakpoint bpt = (SBBreakpoint) getModelObject(); + bpt.GetDescription(stream); + return stream.GetData(); + } + + protected TargetBreakpointKindSet computeKinds(Object from) { + if (from instanceof SBBreakpoint) { + SBBreakpoint bpt = (SBBreakpoint) from; + return bpt.IsHardware() ? + TargetBreakpointKindSet.of(TargetBreakpointKind.HW_EXECUTE) : + TargetBreakpointKindSet.of(TargetBreakpointKind.SW_EXECUTE); + } + return TargetBreakpointKindSet.of(); + } + + public void updateInfo(Object info, String reason) { + setModelObject(info); + updateAttributesFromInfo(reason); + getManager().listBreakpointLocations((SBBreakpoint) info).thenAccept(byNumber -> { + if (!valid) { + return; + } + List locs; + synchronized (this) { + locs = byNumber.values() + .stream() + .map(this::getTargetBreakpointLocation) + .collect(Collectors.toList()); + } + setElements(locs, Map.of(), "Refreshed"); + }); + } + + public void updateAttributesFromInfo(String reason) { + SBBreakpoint bpt = (SBBreakpoint) getModelObject(); + String description = getDescription(1); + String[] split = description.split(","); + if (split[1].contains("regex")) { + expression = split[1]; + expression = expression.substring(expression.indexOf("'")+1); + expression = expression.substring(0, expression.indexOf("'")); + } + this.changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, display = getDescription(0), // + KINDS_ATTRIBUTE_NAME, kinds = computeKinds(bpt), // + ENABLED_ATTRIBUTE_NAME, enabled = bpt.IsEnabled(), // + EXPRESSION_ATTRIBUTE_NAME, "" // + ), reason); + this.changeAttributes(List.of(), List.of(), Map.of( // + BPT_TYPE_ATTRIBUTE_NAME, bpt.IsHardware() ? "Hardware" : "Software", // + BPT_DISP_ATTRIBUTE_NAME, bpt.IsEnabled(), // + BPT_VALID_ATTRIBUTE_NAME, bpt.IsValid(), // + BPT_TIMES_ATTRIBUTE_NAME, bpt.GetHitCount() // + ), reason); + Map cachedElements = getCachedElements(); + if (!cachedElements.isEmpty()) { + Object[] elements = cachedElements.values().toArray(); + LldbModelTargetBreakpointLocationImpl loc = + (LldbModelTargetBreakpointLocationImpl) elements[0]; + this.changeAttributes(List.of(), List.of(), Map.of( // + TargetBreakpointLocation.ADDRESS_ATTRIBUTE_NAME, loc.address // + ), reason); + } + } + + public ListenerSet getActions() { + return actions; + } + + public LldbModelTargetBreakpointLocation findLocation(Object obj) { + if (!(obj instanceof BigInteger)) { + return null; + } + BigInteger id = (BigInteger) obj; + for (LldbModelTargetBreakpointLocation bp : breaksBySub.values()) { + if (bp.getLocationId() == id.intValue()) { + return bp; + } + } + return null; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetConnectorContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetConnectorContainerImpl.java new file mode 100644 index 0000000000..9111a0e8e1 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetConnectorContainerImpl.java @@ -0,0 +1,120 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import agent.lldb.model.iface2.LldbModelTargetRoot; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "ConnectorContainer", + attributes = { + @TargetAttributeType( + name = "Launch process", + type = LldbModelTargetProcessLaunchConnectorImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Launch process w/ options", + type = LldbModelTargetProcessLaunchWithOptionsConnectorImpl.class, + required = false, + fixed = true), + @TargetAttributeType( + name = "Attach to process by pid", + type = LldbModelTargetProcessAttachByPidConnectorImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Attach to process by name", + type = LldbModelTargetProcessAttachByNameConnectorImpl.class, + required = false, + fixed = true), + @TargetAttributeType( + name = "Attach to process by path", + type = LldbModelTargetProcessAttachByPathConnectorImpl.class, + required = false, + fixed = true), + @TargetAttributeType( + name = "Load trace/dump", + type = LldbModelTargetTraceOrDumpConnectorImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Attach to kernel", + type = LldbModelTargetKernelConnectorImpl.class, + required = false, + fixed = true), + @TargetAttributeType(type = Void.class) + }, + canonicalContainer = true) +public class LldbModelTargetConnectorContainerImpl extends LldbModelTargetObjectImpl { + + protected final LldbModelTargetRoot root; + + private LldbModelTargetConnector defaultConnector; + + protected final LldbModelTargetProcessLaunchConnectorImpl processLauncher; + protected final LldbModelTargetProcessLaunchWithOptionsConnectorImpl processLauncherEx; + protected final LldbModelTargetProcessAttachByPidConnectorImpl processAttacherByPid; + protected final LldbModelTargetProcessAttachByNameConnectorImpl processAttacherByName; + protected final LldbModelTargetProcessAttachByPathConnectorImpl processAttacherByPath; + protected final LldbModelTargetTraceOrDumpConnectorImpl traceLoader; + protected final LldbModelTargetKernelConnectorImpl kernelAttacher; + + public LldbModelTargetConnectorContainerImpl(LldbModelTargetRoot root) { + super(root.getModel(), root, "Connectors", "ConnectorsContainer"); + this.root = root; + + this.processLauncher = + new LldbModelTargetProcessLaunchConnectorImpl(this, "Launch process"); + this.processLauncherEx = + new LldbModelTargetProcessLaunchWithOptionsConnectorImpl(this, "Launch process w/ options"); + this.processAttacherByPid = + new LldbModelTargetProcessAttachByPidConnectorImpl(this, "Attach to process by pid"); + this.processAttacherByName = + new LldbModelTargetProcessAttachByNameConnectorImpl(this, "Attach to process by name"); + this.processAttacherByPath = + new LldbModelTargetProcessAttachByPathConnectorImpl(this, "Attach to process by path"); + this.traceLoader = new LldbModelTargetTraceOrDumpConnectorImpl(this, "Load trace/dump"); + this.kernelAttacher = new LldbModelTargetKernelConnectorImpl(this, "Attach to kernel"); + this.defaultConnector = processLauncher; + + changeAttributes(List.of(), List.of( // + processAttacherByPid, // + processAttacherByName, // + processAttacherByPath, // + processLauncher, // + processLauncherEx, // + traceLoader // + ), Map.of( // + DISPLAY_ATTRIBUTE_NAME, "Connectors" // + ), "Initialized"); + } + + public LldbModelTargetConnector getDefaultConnector() { + return defaultConnector; + } + + public void setDefaultConnector(LldbModelTargetConnector defaultConnector) { + this.defaultConnector = defaultConnector; + root.setDefaultConnector(defaultConnector); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetDebugContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetDebugContainerImpl.java new file mode 100644 index 0000000000..7ef6086d33 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetDebugContainerImpl.java @@ -0,0 +1,57 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import agent.lldb.model.iface2.LldbModelTargetBreakpointContainer; +import agent.lldb.model.iface2.LldbModelTargetDebugContainer; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "DebugContainer", + attributes = { + @TargetAttributeType( + name = "Breakpoints", + type = LldbModelTargetBreakpointContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType(type = Void.class) + }, + canonicalContainer = true) +public class LldbModelTargetDebugContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetDebugContainer { + + protected final LldbModelTargetBreakpointContainerImpl breakpoints; + + public LldbModelTargetDebugContainerImpl(LldbModelTargetSessionImpl session) { + super(session.getModel(), session, "Debug", "DebugContainer"); + + this.breakpoints = new LldbModelTargetBreakpointContainerImpl(this, session.getSession()); + + changeAttributes(List.of(), List.of( // + breakpoints // + ), Map.of(), "Initialized"); + } + + @Override + public LldbModelTargetBreakpointContainer getBreakpoints() { + return breakpoints; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetFunctionImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetFunctionImpl.java new file mode 100644 index 0000000000..a02a416bf6 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetFunctionImpl.java @@ -0,0 +1,96 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.model.iface2.LldbModelTargetFunction; +import agent.lldb.model.iface2.LldbModelTargetStackFrame; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressSpace; +import ghidra.util.datastruct.WeakValueHashMap; + +@TargetObjectSchemaInfo( + name = "Function", + attributes = { + @TargetAttributeType(type = Object.class) + }, + canonicalContainer = true) +public class LldbModelTargetFunctionImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetFunction { + + protected static String keyFunction(SBFunction fn) { + return PathUtils.makeKey(DebugClient.getId(fn)); + } + + protected final LldbModelTargetStackFrame frame; + + protected final Map framesByLevel = + new WeakValueHashMap<>(); + + public LldbModelTargetFunctionImpl(LldbModelTargetStackFrame frame, SBFunction function) { + super(frame.getModel(), frame, "Function", function, "Function"); + this.frame = frame; + + if (function.IsValid()) { + AddressSpace space = getModel().getAddressSpace("ram"); + Address min = space.getAddress(function.GetStartAddress().GetOffset().longValue()); + Address max = space.getAddress(function.GetStartAddress().GetOffset().longValue()); + + String name = function.GetName(); + String displayName = function.GetDisplayName(); + if (displayName == null) { + displayName = name; + } + String mangledName = function.GetMangledName(); + if (mangledName == null) { + mangledName = name; + } + long prologSize = function.GetPrologueByteSize(); + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDescription(0), // + "Start", min, // + "End", max, // + "Language", function.GetLanguage().toString(), // + "Name", name, // + "Display Name", displayName, // + "Mangled Name", mangledName, // + "Prolog Size", prologSize, // + "Block", getBlockDescription(function.GetBlock()) // + ), "Initialized"); + } + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBFunction function = (SBFunction) getModelObject(); + function.GetDescription(stream); + return stream.GetData(); + } + + public String getBlockDescription(SBBlock block) { + SBStream stream = new SBStream(); + block.GetDescription(stream); + return stream.GetData(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetKernelConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetKernelConnectorImpl.java new file mode 100644 index 0000000000..06c56ad900 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetKernelConnectorImpl.java @@ -0,0 +1,94 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "KernelConnector", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetKernelConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetKernelConnectorImpl(LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new HashMap>(); + ParameterDescription flags = ParameterDescription.create(Long.class, "Flags", true, + 0L, "Flags", "0=target 1=eXDI driver"); + ParameterDescription options = ParameterDescription.create(String.class, "Options", + true, "", "Options", "-k connection options"); + map.put("Flags", flags); + map.put("Options", options); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + LldbManagerImpl manager = getManager(); + manager.addProcess(); + manager.attachKernel(args).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryContainerImpl.java new file mode 100644 index 0000000000..7cae74b368 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryContainerImpl.java @@ -0,0 +1,147 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import com.google.common.collect.Range; +import com.google.common.collect.RangeSet; + +import SWIG.SBMemoryRegionInfo; +import agent.lldb.manager.cmd.*; +import agent.lldb.manager.impl.LldbManagerImpl; +import agent.lldb.model.iface2.*; +import ghidra.dbg.error.DebuggerMemoryAccessException; +import ghidra.dbg.error.DebuggerModelAccessException; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.program.model.address.Address; +import ghidra.util.datastruct.WeakValueHashMap; + +@TargetObjectSchemaInfo( + name = "Memory", + elementResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = LldbModelTargetMemoryRegionImpl.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }, + canonicalContainer = true) +public class LldbModelTargetMemoryContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetMemoryContainer { + + protected final LldbModelTargetProcess process; + + protected final Map memoryRegions = + new WeakValueHashMap<>(); + + public LldbModelTargetMemoryContainerImpl(LldbModelTargetProcess process) { + super(process.getModel(), process, "Memory", "MemoryContainer"); + this.process = process; + requestElements(false); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listMemory(process.getProcess()).thenAccept(byName -> { + List regions; + synchronized (this) { + regions = byName.stream().map(this::getTargetMemory).collect(Collectors.toList()); + } + setElements(regions, Map.of(), "Refreshed"); + }); + } + + @Override + public synchronized LldbModelTargetMemoryRegion getTargetMemory(SBMemoryRegionInfo region) { + TargetObject targetObject = getMapObject(region); + if (targetObject != null) { + LldbModelTargetMemoryRegion targetRegion = (LldbModelTargetMemoryRegion) targetObject; + targetRegion.setModelObject(region); + return targetRegion; + } + return new LldbModelTargetMemoryRegionImpl(this, region); + } + + private byte[] readAssist(Address address, ByteBuffer buf, long offset, RangeSet set) { + if (set == null) { + return new byte[0]; + } + Range range = set.rangeContaining(offset); + if (range == null) { + throw new DebuggerMemoryAccessException("Cannot read at " + address); + } + listeners.fire.memoryUpdated(getProxy(), address, buf.array()); + return Arrays.copyOf(buf.array(), (int) (range.upperEndpoint() - range.lowerEndpoint())); + } + + private void writeAssist(Address address, byte[] data) { + listeners.fire.memoryUpdated(getProxy(), address, data); + } + + @Override + public CompletableFuture readMemory(Address address, int length) { + return model.gateFuture(doReadMemory(address, length)); + } + + protected CompletableFuture doReadMemory(Address address, int length) { + LldbManagerImpl manager = getManager(); + if (manager.isWaiting()) { + throw new DebuggerModelAccessException( + "Cannot process command readMemory while engine is waiting for events"); + } + ByteBuffer buf = ByteBuffer.allocate(length); + long offset = address.getOffset(); + if (!manager.isKernelMode() || address.getAddressSpace().getName().equals("ram")) { + return manager + .execute(new LldbReadMemoryCommand(manager, process.getProcess(), address, buf, + buf.remaining())) + .thenApply(set -> { + return readAssist(address, buf, offset, set); + }); + } + return CompletableFuture.completedFuture(new byte[length]); + } + + @Override + public CompletableFuture writeMemory(Address address, byte[] data) { + return model.gateFuture(doWriteMemory(address, data)); + } + + protected CompletableFuture doWriteMemory(Address address, byte[] data) { + LldbManagerImpl manager = getManager(); + if (manager.isWaiting()) { + throw new DebuggerModelAccessException( + "Cannot process command writeMemory while engine is waiting for events"); + } + ByteBuffer buf = ByteBuffer.wrap(data); + if (!manager.isKernelMode() || address.getAddressSpace().getName().equals("ram")) { + return manager + .execute(new LldbWriteMemoryCommand(manager, process.getProcess(), address, buf, + buf.remaining())) + .thenAccept(___ -> { + writeAssist(address, data); + }); + } + return CompletableFuture.completedFuture(null); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryRegionImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryRegionImpl.java new file mode 100644 index 0000000000..3779d43d75 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetMemoryRegionImpl.java @@ -0,0 +1,115 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.SBMemoryRegionInfo; +import SWIG.SBStream; +import agent.lldb.model.iface2.LldbModelTargetMemoryContainer; +import agent.lldb.model.iface2.LldbModelTargetMemoryRegion; +import ghidra.dbg.target.TargetMemoryRegion; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.*; + +@TargetObjectSchemaInfo( + name = "MemoryRegion", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = TargetMemoryRegion.MEMORY_ATTRIBUTE_NAME, + type = LldbModelTargetMemoryContainerImpl.class), + @TargetAttributeType(name = "RegionBase", type = Address.class), + @TargetAttributeType(name = "RegionEnd", type = Address.class), + @TargetAttributeType(name = "RegionSize", type = String.class), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetMemoryRegionImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetMemoryRegion { + + protected static String keySection(SBMemoryRegionInfo region) { + return PathUtils.makeKey(region.GetRegionBase().toString(16)); + } + + protected AddressRange range; + protected List protect; + protected List allocProtect; + private boolean isRead; + private boolean isWrite; + private boolean isExec; + + public LldbModelTargetMemoryRegionImpl(LldbModelTargetMemoryContainer memory, + SBMemoryRegionInfo region) { + super(memory.getModel(), memory, keySection(region), region, "Region"); + + this.changeAttributes(List.of(), List.of(), Map.of( // + MEMORY_ATTRIBUTE_NAME, memory, // + RANGE_ATTRIBUTE_NAME, range = doGetRange(region), // + READABLE_ATTRIBUTE_NAME, region.IsReadable(), // + WRITABLE_ATTRIBUTE_NAME, region.IsWritable(), // + EXECUTABLE_ATTRIBUTE_NAME, region.IsExecutable() // + ), "Initialized"); + + this.changeAttributes(List.of(), List.of(), Map.of( // + "RegionBase", range.getMinAddress(), // + "RegionEnd", range.getMaxAddress(), // + "RegionSize", Long.toHexString(range.getMaxAddress().subtract(range.getMinAddress()) + 1) // + ), "Initialized"); + } + + @Override + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBMemoryRegionInfo region = (SBMemoryRegionInfo) getModelObject(); + region.GetDescription(stream); + return stream.GetData(); + } + + protected AddressRange doGetRange(SBMemoryRegionInfo s) { + AddressSpace addressSpace = getModel().getAddressSpace("ram"); + Address min = addressSpace.getAddress(s.GetRegionBase().longValue()); + Address max = addressSpace.getAddress(s.GetRegionEnd().longValue() - 1); + return max.getOffset() > min.getOffset() ? new AddressRangeImpl(min, max) + : new AddressRangeImpl(min, min); + } + + @Override + public AddressRange getRange() { + return range; + } + + @Override + public boolean isReadable() { + return isRead; + } + + @Override + public boolean isWritable() { + return isWrite; + } + + @Override + public boolean isExecutable() { + return isExec; + } + + public boolean isSame(SBMemoryRegionInfo section) { + return range.equals(doGetRange(section)); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleContainerImpl.java new file mode 100644 index 0000000000..df62057e33 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleContainerImpl.java @@ -0,0 +1,129 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import SWIG.*; +import agent.lldb.lldb.DebugModuleInfo; +import agent.lldb.model.iface2.LldbModelTargetModule; +import agent.lldb.model.iface2.LldbModelTargetModuleContainer; +import ghidra.dbg.target.*; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.lifecycle.Internal; + +@TargetObjectSchemaInfo( + name = "ModuleContainer", + elements = { // + @TargetElementType(type = LldbModelTargetModuleImpl.class) // + }, // + elementResync = ResyncMode.ONCE, // + attributes = { // + @TargetAttributeType(type = Void.class) // + }, + canonicalContainer = true) +public class LldbModelTargetModuleContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetModuleContainer { + + protected final LldbModelTargetSessionImpl targetSession; + protected final SBTarget session; + + public LldbModelTargetModuleContainerImpl(LldbModelTargetSessionImpl session) { + super(session.getModel(), session, "Modules", "ModuleContainer"); + this.targetSession = session; + this.session = session.getSession(); + requestElements(false); + } + + @Override + @Internal + public void libraryLoaded(DebugModuleInfo info, int index) { + LldbModelTargetModule targetModule; + SBModule module = info.getModule(index); + synchronized (this) { + /** + * It's not a good idea to remove "stale" entries. If the entry's already present, it's + * probably because several modules were loaded at once, at it has already had its + * sections loaded. Removing it will cause it to load all module sections again! + */ + //modulesByName.remove(name); + targetModule = getTargetModule(module); + } + if (targetModule == null) { + System.err.println("Module " + info.getModuleName(index) + " not found!"); + return; + } + SBThread thread = getManager().getEventThread(); + TargetThread eventThread = + (TargetThread) getModel().getModelObject(thread); + changeElements(List.of(), List.of(targetModule), Map.of(), "Loaded"); + getListeners().fire.event(getProxy(), eventThread, TargetEventType.MODULE_LOADED, + "Library " + info.getModuleName(index) + " loaded", List.of(targetModule)); + } + + @Override + @Internal + public void libraryUnloaded(DebugModuleInfo info, int index) { + LldbModelTargetModule targetModule = getTargetModule(info.getModule(index)); + if (targetModule != null) { + SBThread thread = getManager().getEventThread(); + TargetThread eventThread = + (TargetThread) getModel().getModelObject(thread); + getListeners().fire.event(getProxy(), eventThread, TargetEventType.MODULE_UNLOADED, + "Library " + info.getModuleName(index) + " unloaded", List.of(targetModule)); + LldbModelImpl impl = (LldbModelImpl) model; + impl.deleteModelObject(targetModule.getModule()); + } + changeElements(List.of(info.getModuleName(index)), List.of(), Map.of(), "Unloaded"); + } + + @Override + public boolean supportsSyntheticModules() { + return false; + } + + @Override + public CompletableFuture addSyntheticModule(String name) { + throw new UnsupportedOperationException("lldb does not support synthetic modules"); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listModules(session).thenAccept(byName -> { + List result = new ArrayList<>(); + synchronized (this) { + for (Map.Entry ent : byName.entrySet()) { + result.add(getTargetModule(ent.getValue())); + } + } + changeElements(List.of(), result, Map.of(), "Refreshed"); + }); + } + + @Override + public LldbModelTargetModule getTargetModule(SBModule module) { + TargetObject targetObject = getMapObject(module); + if (targetObject != null) { + LldbModelTargetModule targetModule = (LldbModelTargetModule) targetObject; + targetModule.setModelObject(module); + return targetModule; + } + return new LldbModelTargetModuleImpl(this, module); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleImpl.java new file mode 100644 index 0000000000..35b165766e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleImpl.java @@ -0,0 +1,122 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.model.iface2.LldbModelTargetModule; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressRangeImpl; + +@TargetObjectSchemaInfo( + name = "Module", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType( + name = "Sections", + type = LldbModelTargetModuleSectionContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Symbols", + type = LldbModelTargetSymbolContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType(name = "BaseAddress", type = Address.class), + @TargetAttributeType(name = "ImageName", type = String.class), + @TargetAttributeType(name = "UUID", type = String.class), + @TargetAttributeType(name = "Len", type = String.class), + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetModuleImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetModule { + + protected static String indexModule(SBModule module) { + return DebugClient.getId(module); + } + + protected static String keyModule(SBModule module) { + return PathUtils.makeKey(indexModule(module)); + } + + protected final SBTarget session; + + protected final LldbModelTargetSymbolContainerImpl symbols; + protected final LldbModelTargetModuleSectionContainerImpl sections; + + public LldbModelTargetModuleImpl(LldbModelTargetModuleContainerImpl modules, SBModule module) { + super(modules.getModel(), modules, keyModule(module), module, "Module"); + this.session = modules.session; + + this.symbols = new LldbModelTargetSymbolContainerImpl(this); + this.sections = new LldbModelTargetModuleSectionContainerImpl(this); + + SBFileSpec fspec = module.GetFileSpec(); + changeAttributes(List.of(), List.of( // + sections, // + symbols // + ), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDescription(0), // + SHORT_DISPLAY_ATTRIBUTE_NAME, fspec.GetFilename(), // + MODULE_NAME_ATTRIBUTE_NAME, fspec.GetDirectory() + "/" + fspec.GetFilename(), // + "ImageName", fspec.GetDirectory() + "/" + fspec.GetFilename(), // + "UUID", module.GetUUIDString() // + /* + "BaseAddress", space.getAddress(module.getKnownBase()), // + "TimeStamp", module.getTimeStamp(), // + "Len", Integer.toHexString(module.getSize()) // + */ + ), "Initialized"); + + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBModule module = (SBModule) getModelObject(); + module.GetDescription(stream); + return stream.GetData(); + } + + protected Address doGetBase() { + return null; //getModel().getAddressSpace("ram").getAddress(module.getKnownBase()); + } + + @Override + public SBModule getModule() { + return (SBModule) getModelObject(); + } + + public SBTarget getSession() { + return session; + } + + @Override + public void setRange(AddressRangeImpl range) { + changeAttributes(List.of(), List.of(), Map.of( // + RANGE_ATTRIBUTE_NAME, range, // + "BaseAddress", range.getMinAddress(), // + "Len", Long.toHexString(range.getLength()) // + ), "Initialized"); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionContainerImpl.java new file mode 100644 index 0000000000..4d0aa07330 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionContainerImpl.java @@ -0,0 +1,101 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.SBModule; +import SWIG.SBSection; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.program.model.address.Address; +import ghidra.program.model.address.AddressRangeImpl; + +@TargetObjectSchemaInfo( + name = "SectionContainer", + elements = { + @TargetElementType(type = LldbModelTargetModuleSectionImpl.class) }, + attributes = { + @TargetAttributeType(type = Void.class) }, + canonicalContainer = true) +public class LldbModelTargetModuleSectionContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetModuleSectionContainer { + + protected final LldbModelTargetModule module; + + public LldbModelTargetModuleSectionContainerImpl(LldbModelTargetModule module) { + super(module.getModel(), module, "Sections", "ModuleSections"); + this.module = module; + requestElements(false); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listModuleSections(module.getModule()).thenAccept(byStart -> { + List sections; + synchronized (this) { + sections = byStart.values() + .stream() + .map(this::getModuleSection) + .collect(Collectors.toList()); + setElements(sections, "Refreshed"); + updateRange(); + } + }); + } + + protected synchronized LldbModelTargetModuleSection getModuleSection(SBSection section) { + TargetObject targetObject = getMapObject(section); + if (targetObject != null) { + LldbModelTargetModuleSection targetSection = + (LldbModelTargetModuleSection) targetObject; + targetSection.setModelObject(section); + return targetSection; + } + return new LldbModelTargetModuleSectionImpl(this, section); + } + + public void updateRange() { + Map elements = getCachedElements(); + Address min = null; + Address max = null; + for (TargetObject element : elements.values()) { + LldbModelTargetModuleSectionImpl section = (LldbModelTargetModuleSectionImpl) element; + Address start = section.getStart(); + if (start.getOffset() > 0) { + if (min == null || min.getOffset() > start.getOffset()) { + min = start; + } + } + Address stop = section.getEnd(); + if (stop.getOffset() > 0) { + if (max == null || max.getOffset() < stop.getOffset()) { + max = stop; + } + } + } + module.setRange(new AddressRangeImpl(min, max)); + } + + public SBModule getModule() { + return module.getModule(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionImpl.java new file mode 100644 index 0000000000..5b475a0289 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetModuleSectionImpl.java @@ -0,0 +1,83 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.model.iface2.LldbModelTargetModuleSection; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.*; + +@TargetObjectSchemaInfo( + name = "Section", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType(type = Object.class) }) +public class LldbModelTargetModuleSectionImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetModuleSection { + + protected static String keySection(SBSection section) { + return PathUtils.makeKey(section.GetName()); + } + + protected static final String OBJFILE_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "objfile"; + + protected AddressRange range; + + public LldbModelTargetModuleSectionImpl(LldbModelTargetModuleSectionContainerImpl sections, + SBSection section) { + super(sections.getModel(), sections, keySection(section), section, "Section"); + + AddressSpace space = getModel().getAddressSpace("ram"); + Address min = space.getAddress(0L); + SBTarget currentSession = getManager().getCurrentSession(); + long lval = section.GetLoadAddress(currentSession).longValue(); + if (lval != -1) { + min = space.getAddress(lval); + } + // Ghidra ranges are not inclusive at the end. + long sz = section.GetFileByteSize().longValue(); + Address max = min.add(sz); + range = new AddressRangeImpl(min, max); + + changeAttributes(List.of(), List.of(), Map.of( // + MODULE_ATTRIBUTE_NAME, sections.getParent(), // + RANGE_ATTRIBUTE_NAME, range, // + DISPLAY_ATTRIBUTE_NAME, getDescription(0), // + "Address", min, // + "File Offset", section.GetFileOffset().toString(16), // + "Size", Long.toHexString(sz), // + "Permissions", section.GetPermissions() // + ), "Initialized"); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBSection section = (SBSection) getModelObject(); + section.GetDescription(stream); + return stream.GetData(); + } + + @Override + public AddressRange getRange() { + return range; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetObjectImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetObjectImpl.java new file mode 100644 index 0000000000..36b10f0b83 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetObjectImpl.java @@ -0,0 +1,257 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import SWIG.StateType; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbStateListener; +import agent.lldb.model.AbstractLldbModel; +import agent.lldb.model.iface1.LldbModelTargetAccessConditioned; +import agent.lldb.model.iface1.LldbModelTargetExecutionStateful; +import agent.lldb.model.iface2.*; +import ghidra.dbg.agent.DefaultTargetObject; +import ghidra.dbg.target.*; +import ghidra.dbg.target.TargetExecutionStateful.TargetExecutionState; +import ghidra.dbg.target.schema.TargetObjectSchema; + +public class LldbModelTargetObjectImpl extends DefaultTargetObject + implements LldbModelTargetObject { + + protected boolean accessible = true; + protected final LldbStateListener accessListener = this::checkExited; + private boolean modified; + + private Object modelObject; + protected Map objectMap = new HashMap<>(); + + public LldbModelTargetObjectImpl(AbstractLldbModel impl, TargetObject parent, String name, + String typeHint) { + super(impl, parent, name, typeHint); + this.setModelObject(((LldbModelTargetObject) parent).getModelObject()); + getManager().addStateListener(accessListener); + } + + public LldbModelTargetObjectImpl(AbstractLldbModel impl, TargetObject parent, String name, + Object modelObject, + String typeHint) { + super(impl, parent, name, typeHint); + //((LldbModelTargetObject) parent).addMapObject(modelObject, this); + this.setModelObject(modelObject); + getManager().addStateListener(accessListener); + } + + public LldbModelTargetObjectImpl(AbstractLldbModel impl, TargetObject parent, String name, + Object modelObject, + String typeHint, TargetObjectSchema schema) { + super(impl, parent, name, typeHint, schema); + this.setModelObject(modelObject); + getManager().addStateListener(accessListener); + } + + public void setAttribute(String key, String value) { + changeAttributes(List.of(), List.of(), Map.of( // + key, value), "Initialized"); + } + + @Override + protected void doInvalidate(TargetObject branch, String reason) { + super.doInvalidate(branch, reason); + getManager().removeStateListener(accessListener); + } + + public void setAccessible(boolean accessible) { + synchronized (attributes) { + if (this.accessible == accessible) { + return; + } + this.accessible = accessible; + } + if (this instanceof LldbModelTargetAccessConditioned) { + changeAttributes(List.of(), List.of(), Map.of( // + TargetAccessConditioned.ACCESSIBLE_ATTRIBUTE_NAME, accessible // + ), "Accessibility changed"); + } + } + + @Override + public AbstractLldbModel getModel() { + return (AbstractLldbModel) model; + } + + public void onRunning() { + setAccessible(false); + } + + public void onStopped() { + setAccessible(true); + } + + public void onExit() { + setAccessible(true); + } + + protected void checkExited(StateType state, LldbCause cause) { + TargetExecutionState exec = TargetExecutionState.INACTIVE; + switch (state.swigValue()) { + case 0: // eStateInvalid + case 9: // eStateDetached + { + exec = TargetExecutionState.INACTIVE; + break; + } + case 2: // eStateConnected + case 3: // eStateAttaching + case 4: // eStateLaunching + { + exec = TargetExecutionState.ALIVE; + break; + } + case 5: { // eStateStopped + exec = TargetExecutionState.STOPPED; + onStopped(); + break; + } + case 6: // eStateRunning + case 7: // eStateStepping + { + exec = TargetExecutionState.RUNNING; + resetModified(); + onRunning(); + break; + } + case 10: { // eStateExited + exec = TargetExecutionState.TERMINATED; + if (getParentProcess() != null || this instanceof TargetProcess) { + getManager().removeStateListener(accessListener); + } + onExit(); + break; + } + case 1: // eStateUnloaded + case 8: // eStateCrashed + { + getModel().close(); + return; + } + } + if (this instanceof LldbModelTargetExecutionStateful) { + LldbModelTargetExecutionStateful stateful = (LldbModelTargetExecutionStateful) this; + stateful.setExecutionState(exec, "Refreshed"); + } + } + + @Override + public CompletableFuture> requestNativeAttributes() { + throw new AssertionError(); // shouldn't ever be here + } + + @Override + public CompletableFuture> requestNativeElements() { + throw new AssertionError(); // shouldn't ever be here + } + + @Override + public LldbModelTargetSession getParentSession() { + LldbModelTargetObject test = (LldbModelTargetObject) parent; + while (test != null && !(test instanceof LldbModelTargetSession)) { + test = (LldbModelTargetObject) test.getParent(); + } + return test == null ? null : (LldbModelTargetSession) test; + } + + @Override + public LldbModelTargetProcess getParentProcess() { + LldbModelTargetObject test = (LldbModelTargetObject) parent; + while (test != null && !(test instanceof TargetProcess)) { + test = (LldbModelTargetObject) test.getParent(); + } + return test == null ? null : (LldbModelTargetProcess) test; + } + + @Override + public LldbModelTargetThread getParentThread() { + LldbModelTargetObject test = (LldbModelTargetObject) parent; + while (test != null && !(test instanceof TargetThread)) { + test = (LldbModelTargetObject) test.getParent(); + } + return test == null ? null : (LldbModelTargetThread) test; + } + + @Override + public void setModified(Map map, boolean b) { + if (modified) { + map.put(MODIFIED_ATTRIBUTE_NAME, modified); + } + } + + @Override + public void setModified(boolean modified) { + if (modified) { + changeAttributes(List.of(), List.of(), Map.of( // + MODIFIED_ATTRIBUTE_NAME, modified // + ), "Refreshed"); + } + } + + @Override + public void resetModified() { + changeAttributes(List.of(), List.of(), Map.of( // + MODIFIED_ATTRIBUTE_NAME, false // + ), "Refreshed"); + } + + public TargetObject searchForSuitable(Class type) { + List pathToClass = model.getRootSchema().searchForSuitable(type, path); + return model.getModelObject(pathToClass); + } + + public String getDescription(int level) { + return getName(); + } + + @Override + public Object getModelObject() { + return modelObject; + } + + @Override + public void setModelObject(Object modelObject) { + if (modelObject != null) { + ((LldbModelTargetObject) parent).addMapObject(modelObject, this); + } + this.modelObject = modelObject; + } + + @Override + public void addMapObject(Object object, TargetObject targetObject) { + objectMap.put(DebugClient.getModelKey(object), targetObject); + } + + @Override + public TargetObject getMapObject(Object object) { + return objectMap.get(DebugClient.getModelKey(object)); + } + + @Override + public void deleteMapObject(Object object) { + objectMap.remove(DebugClient.getModelKey(object)); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByNameConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByNameConnectorImpl.java new file mode 100644 index 0000000000..8e9ab0445b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByNameConnectorImpl.java @@ -0,0 +1,90 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "ProcessAttachByNameConnector", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetProcessAttachByNameConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetProcessAttachByNameConnectorImpl( + LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new HashMap>(); + ParameterDescription p0 = ParameterDescription.create( + String.class, "Name", true, "", "Name", "name for the target process"); + map.put("Name", p0); + ParameterDescription p1 = ParameterDescription.create( + Boolean.class, "Exists", false, true, "Exists", "target process is running"); + map.put("Exists", p1); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + String name = (String) args.get("Name"); + Boolean exists = (Boolean) args.get("Exists"); + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().attach(name, !exists).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPathConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPathConnectorImpl.java new file mode 100644 index 0000000000..13d4ac62e3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPathConnectorImpl.java @@ -0,0 +1,94 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "ProcessAttachByPathConnector", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetProcessAttachByPathConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetProcessAttachByPathConnectorImpl( + LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new LinkedHashMap>(); + ParameterDescription p0 = ParameterDescription.create( + String.class, "Path", true, "", "Path", "path for the target process"); + map.put("Path", p0); + ParameterDescription p1 = ParameterDescription.create( + Boolean.class, "Exists", false, true, "Exists", "target process is running"); + map.put("Exists", p1); + ParameterDescription p2 = ParameterDescription.create( + Boolean.class, "Async", false, true, "Async", "connect asynchronously"); + map.put("Async", p2); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + String path1 = (String) args.get("Path"); + Boolean exists = (Boolean) args.get("Exists"); + Boolean async = (Boolean) args.get("Async"); + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().attach(path1, !exists, async).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPidConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPidConnectorImpl.java new file mode 100644 index 0000000000..232768d145 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessAttachByPidConnectorImpl.java @@ -0,0 +1,86 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "ProcessAttachByPidConnector", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetProcessAttachByPidConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetProcessAttachByPidConnectorImpl( + LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new HashMap>(); + ParameterDescription param = ParameterDescription.create(String.class, "Pid", true, + "", "Pid", "process id for the target process"); + map.put("Pid", param); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + String pidstr = (String) args.get("Pid"); + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().attach(pidstr).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessContainerImpl.java new file mode 100644 index 0000000000..478c80c784 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessContainerImpl.java @@ -0,0 +1,193 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.lldb.DebugModuleInfo; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbReason; +import agent.lldb.model.iface1.LldbModelTargetConfigurable; +import agent.lldb.model.iface2.*; +import ghidra.async.AsyncUtils; +import ghidra.dbg.error.DebuggerIllegalArgumentException; +import ghidra.dbg.target.TargetConfigurable; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "ProcessContainer", + elements = { // + @TargetElementType(type = LldbModelTargetProcessImpl.class) // + }, + attributes = { // + @TargetAttributeType(name = TargetConfigurable.BASE_ATTRIBUTE_NAME, type = Integer.class), // + @TargetAttributeType(type = Void.class) // + }, + canonicalContainer = true) +public class LldbModelTargetProcessContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetProcessContainer, LldbModelTargetConfigurable { + + private LldbModelTargetSessionImpl session; + + public LldbModelTargetProcessContainerImpl(LldbModelTargetSessionImpl session) { + super(session.getModel(), session, "Processes", "ProcessContainer"); + this.session = session; + this.changeAttributes(List.of(), Map.of(BASE_ATTRIBUTE_NAME, 16), "Initialized"); + + getManager().addEventsListener(this); + } + + @Override + public void processAdded(SBProcess proc, LldbCause cause) { + LldbModelTargetSession session = (LldbModelTargetSession) getParent(); + SBTarget parentTarget = (SBTarget) session.getModelObject(); + SBTarget procTarget = proc.GetTarget(); + if (!DebugClient.getId(parentTarget).equals(DebugClient.getId(procTarget))) { + return; + } + session.setAccessible(true); + LldbModelTargetProcess process = getTargetProcess(proc); + changeElements(List.of(), List.of(process), Map.of(), "Added"); + process.processStarted(proc); + getListeners().fire.event(getProxy(), null, TargetEventType.PROCESS_CREATED, + "Process " + DebugClient.getId(proc) + " started " + process.getName(), + List.of(process)); + } + + @Override + public void processReplaced(SBProcess proc, LldbCause cause) { + LldbModelTargetSession session = (LldbModelTargetSession) getParent(); + session.setAccessible(true); + LldbModelTargetProcess process = getTargetProcess(proc); + changeElements(List.of(), List.of(process), Map.of(), "Added"); + } + + @Override + public void processStarted(SBProcess proc, LldbCause cause) { + LldbModelTargetProcess process = getTargetProcess(proc); + process.processStarted(proc); + } + + @Override + public void processRemoved(String processId, LldbCause cause) { + changeElements(List.of( // + processId // + ), List.of(), Map.of(), "Removed"); + } + + @Override + public void threadCreated(SBThread thread, LldbCause cause) { + LldbModelTargetProcess process = getTargetProcess(thread.GetProcess()); + LldbModelTargetThreadContainer threads = process.getThreads(); + if (threads != null) { + threads.threadCreated(thread); + } + } + + @Override + public void threadReplaced(SBThread thread, LldbCause cause) { + LldbModelTargetProcess process = getTargetProcess(thread.GetProcess()); + process.getThreads().threadReplaced(thread); + } + + @Override + public void threadStateChanged(SBThread thread, StateType state, LldbCause cause, + LldbReason reason) { + LldbModelTargetProcess process = getTargetProcess(thread.GetProcess()); + process.threadStateChanged(thread, state, cause, reason); + } + + @Override + public void threadExited(SBThread thread, SBProcess proc, LldbCause cause) { + LldbModelTargetProcess process = getTargetProcess(proc); + if (process != null) { + process.getThreads().threadExited(thread); + } + } + + @Override + public void moduleLoaded(SBProcess proc, DebugModuleInfo info, int index, LldbCause cause) { + LldbModelTargetModuleContainer modules = session.getModules(); + if (modules != null) { + modules.libraryLoaded(info, index); + } + } + + @Override + public void moduleUnloaded(SBProcess proc, DebugModuleInfo info, int index, LldbCause cause) { + LldbModelTargetModuleContainer modules = session.getModules(); + if (modules != null) { + modules.libraryUnloaded(info, index); + } + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listProcesses(session.getSession()).thenAccept(byIID -> { + List processes; + synchronized (this) { + processes = byIID.values() + .stream() + .map(this::getTargetProcess) + .collect(Collectors.toList()); + } + setElements(processes, Map.of(), "Refreshed"); + }); + } + + @Override + public synchronized LldbModelTargetProcess getTargetProcess(SBProcess process) { + TargetObject targetObject = getMapObject(process); + if (targetObject != null) { + LldbModelTargetProcess targetProcess = (LldbModelTargetProcess) targetObject; + targetProcess.setModelObject(process); + return targetProcess; + } + return new LldbModelTargetProcessImpl(this, process); + } + + @Override + public CompletableFuture writeConfigurationOption(String key, Object value) { + switch (key) { + case BASE_ATTRIBUTE_NAME: + if (value instanceof Integer) { + this.changeAttributes(List.of(), Map.of(BASE_ATTRIBUTE_NAME, value), + "Modified"); + for (TargetObject child : getCachedElements().values()) { + if (child instanceof LldbModelTargetProcessImpl) { + LldbModelTargetProcessImpl targetProcess = + (LldbModelTargetProcessImpl) child; + targetProcess.setBase(value); + } + } + } + else { + throw new DebuggerIllegalArgumentException("Base should be numeric"); + } + default: + } + return AsyncUtils.NIL; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessImpl.java new file mode 100644 index 0000000000..741da8603f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessImpl.java @@ -0,0 +1,285 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbReason; +import agent.lldb.manager.cmd.*; +import agent.lldb.model.iface1.LldbModelTargetFocusScope; +import agent.lldb.model.iface2.*; +import ghidra.async.AsyncUtils; +import ghidra.dbg.target.*; +import ghidra.dbg.target.TargetEventScope.TargetEventType; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.util.PathUtils; + +@TargetObjectSchemaInfo( + name = "Process", + attributeResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = "Memory", + type = LldbModelTargetMemoryContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Threads", + type = LldbModelTargetThreadContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Breakpoints", + type = LldbModelTargetBreakpointLocationContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = LldbModelTargetProcessImpl.EXIT_CODE_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetProcessImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetProcess { + + public static final String PID_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "pid"; + public static final String EXIT_CODE_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "exit_code"; + + public static final TargetAttachKindSet SUPPORTED_KINDS = TargetAttachKindSet.of( // + TargetAttachKind.BY_OBJECT_REF, TargetAttachKind.BY_ID); + + protected static String indexProcess(SBProcess process) { + return DebugClient.getId(process); + } + + protected static String keyProcess(SBProcess process) { + return PathUtils.makeKey(indexProcess(process)); + } + + protected final LldbModelTargetMemoryContainer memory; + protected final LldbModelTargetThreadContainer threads; + protected final LldbModelTargetBreakpointLocationContainer breakpoints; + // Note: not sure section info is available from the lldb + //protected final LldbModelTargetProcessSectionContainer sections; + + private Integer base = 16; + + public LldbModelTargetProcessImpl(LldbModelTargetProcessContainer processes, + SBProcess process) { + super(processes.getModel(), processes, keyProcess(process), process, "Process"); + getModel().addModelObject(process, this); + getManager().getClient().addBroadcaster(process); + + this.memory = new LldbModelTargetMemoryContainerImpl(this); + this.threads = new LldbModelTargetThreadContainerImpl(this); + this.breakpoints = new LldbModelTargetBreakpointLocationContainerImpl(this); + TargetExecutionState state = DebugClient.convertState(process.GetState()); + + changeAttributes(List.of(), List.of( // + memory, // + threads, // + breakpoints // + ), Map.of( // + ACCESSIBLE_ATTRIBUTE_NAME, accessible = false, // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, PARAMETERS, // + STATE_ATTRIBUTE_NAME, state, // + SUPPORTED_ATTACH_KINDS_ATTRIBUTE_NAME, SUPPORTED_KINDS, // + SUPPORTED_STEP_KINDS_ATTRIBUTE_NAME, LldbModelTargetThreadImpl.SUPPORTED_KINDS // + ), "Initialized"); + setExecutionState(state, "Initialized"); + + getManager().addEventsListener(this); + } + + @Override + public void setModelObject(Object modelObject) { + super.setModelObject(modelObject); + getModel().addModelObject(modelObject, this); + } + + @Override + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBProcess process = (SBProcess) getModelObject(); + process.GetDescription(stream); + return stream.GetData(); + } + + @Override + public String getDisplay() { + String pidstr = DebugClient.getId(getProcess()); + if (base == 16) { + pidstr = "0x" + pidstr; + } + else { + pidstr = Long.toString(Long.parseLong(pidstr, 16)); + } + return "[" + pidstr + "]"; + } + + @Override + public void processSelected(SBProcess eventProcess, LldbCause cause) { + if (eventProcess.GetProcessID().equals(getProcess().GetProcessID())) { + ((LldbModelTargetFocusScope) searchForSuitable(TargetFocusScope.class)).setFocus(this); + } + } + + @Override + public void threadStateChanged(SBThread thread, StateType state, LldbCause cause, + LldbReason reason) { + TargetExecutionState targetState = DebugClient.convertState(state); + setExecutionState(targetState, "ThreadStateChanged"); + if (state.equals(StateType.eStateStopped)) { + ((LldbModelTargetThreadContainerImpl) threads).requestElements(true); + } + } + + @Override + public CompletableFuture launch(List args) { + model.gateFuture(getManager().execute(new LldbLaunchProcessCommand(getManager(), + getProcess().GetProcessInfo().GetName(), args))); + return AsyncUtils.NIL; + } + + @Override + public CompletableFuture resume() { + return model.gateFuture( + getManager().execute(new LldbContinueCommand(getManager(), getProcess()))); + } + + @Override + public CompletableFuture kill() { + return model.gateFuture(getManager().execute(new LldbKillCommand(getManager()))); + } + + @Override + public CompletableFuture destroy() { + return model.gateFuture(getManager().execute(new LldbDestroyCommand(getManager()))); + } + + @Override + public CompletableFuture attach(TargetAttachable attachable) { + getModel().assertMine(TargetObject.class, attachable); + // NOTE: Get the object and type check it myself. + // The typed ref could have been unsafely cast + SBProcess proc = (SBProcess) getModelObject(); + long pid = proc.GetProcessID().longValue(); + return model.gateFuture( + getManager().execute(new LldbAttachCommand(getManager(), Long.toString(pid))) + .thenApply(__ -> null)); + } + + @Override + public CompletableFuture attach(long pid) { + return model.gateFuture( + getManager().execute(new LldbAttachCommand(getManager(), Long.toString(pid))) + .thenApply(__ -> null)); + } + + @Override + public CompletableFuture detach() { + return model.gateFuture( + getManager().execute(new LldbDetachCommand(getManager(), getProcess()))); + } + + @Override + public CompletableFuture delete() { + return AsyncUtils.NIL; + //return model.gateFuture(process.remove()); + } + + @Override + public CompletableFuture step(TargetStepKind kind) { + return getManager().execute(new LldbStepCommand(getManager(), null, kind, null)); + } + + @Override + public CompletableFuture step(Map args) { + return getManager().execute(new LldbStepCommand(getManager(), null, null, args)); + } + + @Override + public void processStarted(SBProcess proc) { + if (proc != null) { + changeAttributes(List.of(), List.of(), Map.of( // + PID_ATTRIBUTE_NAME, getProcess().GetProcessID().longValue(), // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + STATE_ATTRIBUTE_NAME, TargetExecutionState.STOPPED // + ), "Started"); + } + setExecutionState(TargetExecutionState.STOPPED, "Started"); + } + + @Override + public void processExited(SBProcess proc, LldbCause cause) { + if (proc.GetProcessID().equals(this.getProcess().GetProcessID())) { + String exitDesc = proc.GetExitDescription(); + if (exitDesc == null) { + exitDesc = "NONE"; + } + changeAttributes(List.of(), List.of(), Map.of( // + STATE_ATTRIBUTE_NAME, TargetExecutionState.TERMINATED, // + EXIT_CODE_ATTRIBUTE_NAME, exitDesc // + ), "Exited"); + getListeners().fire.event(getProxy(), null, TargetEventType.PROCESS_EXITED, + "Process " + DebugClient.getId(getProcess()) + " exited code=" + exitDesc, + List.of(getProxy())); + } + } + + @Override + public CompletableFuture setActive() { + return getManager().setActiveProcess(getProcess()); + } + + @Override + public LldbModelTargetThreadContainer getThreads() { + return threads; + } + + @Override + public SBProcess getProcess() { + return (SBProcess) getModelObject(); + } + + @Override + public boolean isAccessible() { + return accessible; + } + + public void setBase(Object value) { + this.base = (Integer) value; + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay()// + ), "Started"); + } + + public void addBreakpointLocation(LldbModelTargetBreakpointLocation loc) { + breakpoints.addBreakpointLocation(loc); + } + + public void removeBreakpointLocation(LldbModelTargetBreakpointLocation loc) { + breakpoints.removeBreakpointLocation(loc); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchConnectorImpl.java new file mode 100644 index 0000000000..052f3caa98 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchConnectorImpl.java @@ -0,0 +1,97 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "ProcessLaunchConnector", + elements = { // + @TargetElementType(type = Void.class) // + }, + attributes = { // + @TargetAttributeType(type = Void.class) // + }) +public class LldbModelTargetProcessLaunchConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetProcessLaunchConnectorImpl( + LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new HashMap>(); + ParameterDescription param = ParameterDescription.create(String.class, "args", true, + "", "Cmd", "executable to be launched"); + map.put("args", param); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + return launch( + CmdLineParser.tokenize(TargetCmdLineLauncher.PARAMETER_CMDLINE_ARGS.get(args))); + } + + public CompletableFuture launch(List args) { + String fileName = args.get(0); + List nargs = new ArrayList<>(); + for (int i = 1; i < args.size(); i++) { + nargs.add(args.get(i)); + } + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().launch(fileName, nargs).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchWithOptionsConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchWithOptionsConnectorImpl.java new file mode 100644 index 0000000000..799de11e36 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetProcessLaunchWithOptionsConnectorImpl.java @@ -0,0 +1,160 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "ProcessLaunchWithOptionsConnector", + elements = { // + @TargetElementType(type = Void.class) // + }, + attributes = { // + @TargetAttributeType(type = Void.class) // + }) +public class LldbModelTargetProcessLaunchWithOptionsConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetProcessLaunchWithOptionsConnectorImpl( + LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new LinkedHashMap>(); + ParameterDescription p0 = ParameterDescription.create(String.class, "File", true, + "", "File", "executable to be launched"); + map.put("File", p0); + ParameterDescription p1 = ParameterDescription.create(String.class, "Args", false, + "", "Args", "command-line arguments"); + map.put("Args", p1); + ParameterDescription p2 = ParameterDescription.create(String.class, "Env", false, + "", "Env", "environment arguments"); + map.put("Env", p2); + ParameterDescription p3 = ParameterDescription.create(String.class, "STDIN", false, + "", "STDIN", "path for STDIN"); + map.put("STDIN", p3); + ParameterDescription p4 = ParameterDescription.create(String.class, "STDOUT", false, + "", "STDOUT", "path for STDOUT"); + map.put("STDOUT", p4); + ParameterDescription p5 = ParameterDescription.create(String.class, "STDERR", false, + "", "STDERR", "path for STDERR"); + map.put("STDERR", p5); + ParameterDescription p6 = ParameterDescription.create(String.class, "Dir", false, + "", "Dir", "working directory"); + map.put("Dir", p6); + + ParameterDescription pF0 = ParameterDescription.create(Boolean.class, "Exec", + false, + false, "Exec", "exec when launching and turn the calling process into a new process"); + map.put("Exec", pF0); + ParameterDescription pF1 = + ParameterDescription.create(Boolean.class, "BreakOnLaunch", false, + true, "Break on launch", + "stop as soon as the process launches to allow the process to be debugged"); + map.put("BreakOnLaunch", pF1); + ParameterDescription pF2 = ParameterDescription.create(Boolean.class, + "BreakOnEntry", false, + true, "Break on entry", "stop at the program entry point instead of auto-continuing"); + map.put("BreakOnEntry", pF2); + ParameterDescription pF3 = + ParameterDescription.create(Boolean.class, "ASLR", false, + false, "Disable ASLR", "disable Address Space Layout Randomization (ASLR)"); + map.put("ASLR", pF3); + ParameterDescription pF4 = + ParameterDescription.create(Boolean.class, "STDIO", false, + false, "Disable STDIO", "disable stdio for inferior process (e.g. for a GUI app)"); + map.put("STDIO", pF4); + ParameterDescription pF5 = + ParameterDescription.create(Boolean.class, "NewTTY", false, + false, "New TTY", "launch the process in a new TTY if supported by the host"); + map.put("NewTTY", pF5); + ParameterDescription pF6 = ParameterDescription.create(Boolean.class, "Shell", + false, + false, "Launch from shell", "launch the process inside a shell to get shell expansion"); + map.put("Shell", pF6); + ParameterDescription pF7 = ParameterDescription.create(Boolean.class, "NewGroup", + false, + false, "New group", + "launch the process in a separate process group if you are going to hand the process off (e.g. to debugserver)"); + map.put("NewGroup", pF7); + ParameterDescription pF8 = + ParameterDescription.create(Boolean.class, "ExitRace", false, + false, "Suppress race on exit", + "set this flag so lldb & the handee don’t race to set its exit status"); + map.put("ExitRace", pF8); + ParameterDescription pF9 = ParameterDescription.create(Boolean.class, "Detach", + false, + false, "Detach on disconnect", + "client stub should detach rather than killing the debugee if it loses connection with lldb"); + map.put("Detach", pF9); + ParameterDescription pFA = + ParameterDescription.create(Boolean.class, "ExpandArgs", false, + false, "Shell-style expansion", "perform shell-style argument expansion"); + map.put("ExpandArgs", pFA); + ParameterDescription pFB = + ParameterDescription.create(Boolean.class, "CloseTTY", false, + false, "Close TTY on exit", "close the open TTY on exit"); + map.put("CloseTTY", pFB); + ParameterDescription pFC = + ParameterDescription.create(Boolean.class, "Inherit", false, + false, "Inherit TCC", "inherit TCC permissions from the parent"); + map.put("Inherit", pFC); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().launch(args).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetRootImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetRootImpl.java new file mode 100644 index 0000000000..2bb9aaabe7 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetRootImpl.java @@ -0,0 +1,169 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import SWIG.SBThread; +import SWIG.StateType; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbReason; +import agent.lldb.manager.cmd.LldbAttachCommand; +import agent.lldb.model.iface1.LldbModelSelectableObject; +import agent.lldb.model.iface2.*; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.*; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; + +@TargetObjectSchemaInfo( + name = "Debugger", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = "Available", + type = LldbModelTargetAvailableContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Connectors", + type = LldbModelTargetConnectorContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Sessions", + type = LldbModelTargetSessionContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetRootImpl extends LldbModelDefaultTargetModelRoot + implements LldbModelTargetRoot { + + protected final LldbModelTargetAvailableContainerImpl available; + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final LldbModelTargetSessionContainerImpl sessions; + + protected String debugger = "kd"; // Used by LldbModelTargetEnvironment + + protected LldbModelSelectableObject focus; + + public LldbModelTargetRootImpl(LldbModelImpl impl, TargetObjectSchema schema) { + super(impl, "Debugger", schema); + + this.available = new LldbModelTargetAvailableContainerImpl(this); + this.connectors = new LldbModelTargetConnectorContainerImpl(this); + this.sessions = new LldbModelTargetSessionContainerImpl(this); + + LldbModelTargetConnector defaultConnector = connectors.getDefaultConnector(); + changeAttributes(List.of(), List.of( // + available, // + connectors, // + sessions // + ), Map.of( // + ACCESSIBLE_ATTRIBUTE_NAME, accessible, // + DISPLAY_ATTRIBUTE_NAME, "Debugger", // + FOCUS_ATTRIBUTE_NAME, this, // + SUPPORTED_ATTACH_KINDS_ATTRIBUTE_NAME, LldbModelTargetProcessImpl.SUPPORTED_KINDS, // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, defaultConnector.getParameters() // + ), "Initialized"); + impl.getManager().addEventsListener(this); + } + + @Override + public LldbModelSelectableObject getFocus() { + return focus; + } + + @Override + public void setDefaultConnector(LldbModelTargetConnector defaultConnector) { + changeAttributes(List.of(), List.of(), + Map.of(TargetMethod.PARAMETERS_ATTRIBUTE_NAME, defaultConnector.getParameters()), + "Default connector changed"); + } + + @Override + public boolean setFocus(LldbModelSelectableObject sel) { + boolean doFire; + synchronized (this) { + doFire = !Objects.equals(this.focus, sel); + if (doFire && focus != null) { + List focusPath = focus.getPath(); + List selPath = sel.getPath(); + doFire = !PathUtils.isAncestor(selPath, focusPath); + } + } + if (doFire) { + this.focus = sel; + changeAttributes(List.of(), List.of(), Map.of( // + TargetFocusScope.FOCUS_ATTRIBUTE_NAME, focus // + ), "Focus changed"); + } + return doFire; + } + + @Override + public CompletableFuture launch(List args) { + LldbModelTargetProcessLaunchConnectorImpl targetConnector = connectors.processLauncher; + return model.gateFuture(targetConnector.launch(args)).exceptionally(exc -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } + + @Override + public CompletableFuture launch(Map args) { + LldbModelTargetConnector targetConnector = connectors.getDefaultConnector(); + return model.gateFuture(targetConnector.launch(args)).exceptionally(exc -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } + + @Override + public CompletableFuture attach(TargetAttachable attachable) { + LldbModelTargetProcessAttachByPidConnectorImpl targetConnector = + connectors.processAttacherByPid; + String key = attachable.getName(); + Map map = new HashMap<>(); + map.put("Pid", key.substring(1, key.length() - 1)); + return model.gateFuture(targetConnector.launch(map)).exceptionally(exc -> { + throw new DebuggerUserException("Launch failed for " + key); + }); + } + + @Override + public CompletableFuture attach(long pid) { + return model.gateFuture( + getManager().execute(new LldbAttachCommand(getManager(), Long.toString(pid))) + .thenApply(__ -> null)); + } + + @Override + public void threadStateChanged(SBThread thread, StateType state, LldbCause cause, + LldbReason reason) { + LldbModelTargetThread targetThread = + (LldbModelTargetThread) getModel().getModelObject(thread); + changeAttributes(List.of(), List.of(), Map.of( // + TargetEventScope.EVENT_OBJECT_ATTRIBUTE_NAME, targetThread // + ), reason.desc()); + } + + @Override + public boolean isAccessible() { + return accessible; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesEnvironmentImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesEnvironmentImpl.java new file mode 100644 index 0000000000..20966e2ff9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesEnvironmentImpl.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; + +import SWIG.SBTarget; +import agent.lldb.model.iface2.LldbModelTargetSessionAttributes; +import agent.lldb.model.iface2.LldbModelTargetSessionAttributesEnvironment; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "SessionAttributesEnvironment", + attributes = { + @TargetAttributeType(type = Object.class) + }) +public class LldbModelTargetSessionAttributesEnvironmentImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSessionAttributesEnvironment { + + SBTarget session; + + public LldbModelTargetSessionAttributesEnvironmentImpl( + LldbModelTargetSessionAttributes attributes) { + super(attributes.getModel(), attributes, "Environment", "SessionAttributesEnvironment"); + + session = (SBTarget) getModelObject(); + + getManager().addEventsListener(this); + getManager().listEnvironment(session).thenAccept(f -> { + setAttributes(List.of(), f, "Initialized"); + }); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesImpl.java new file mode 100644 index 0000000000..46291e1e29 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesImpl.java @@ -0,0 +1,95 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import SWIG.ByteOrder; +import SWIG.SBTarget; +import agent.lldb.model.iface2.LldbModelTargetSession; +import agent.lldb.model.iface2.LldbModelTargetSessionAttributes; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "SessionAttributes", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType( + name = "Environment", + type = LldbModelTargetSessionAttributesEnvironmentImpl.class, + fixed = true), + @TargetAttributeType( + name = "Platform", + type = LldbModelTargetSessionAttributesPlatformImpl.class, + fixed = true), + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetSessionAttributesImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSessionAttributes { + + protected final LldbModelTargetSessionAttributesPlatformImpl platformAttributes; + protected final LldbModelTargetSessionAttributesEnvironmentImpl environment; + + public LldbModelTargetSessionAttributesImpl(LldbModelTargetSession session) { + super(session.getModel(), session, "Attributes", "SessionAttributes"); + + this.platformAttributes = new LldbModelTargetSessionAttributesPlatformImpl(this); + this.environment = new LldbModelTargetSessionAttributesEnvironmentImpl(this); + + SBTarget target = (SBTarget) session.getModelObject(); + String[] triple = target.GetTriple().split("-"); + ByteOrder order = target.GetByteOrder(); + String orderStr = "invalid"; + if (order.equals(ByteOrder.eByteOrderLittle)) { + orderStr = "little"; + } + if (order.equals(ByteOrder.eByteOrderBig)) { + orderStr = "big"; + } + if (order.equals(ByteOrder.eByteOrderPDP)) { + orderStr = "pdp"; + } + + changeAttributes(List.of(), List.of( // + platformAttributes, // + environment // + ), Map.of( // + ARCH_ATTRIBUTE_NAME, triple[0], // + DEBUGGER_ATTRIBUTE_NAME, "lldb", // + OS_ATTRIBUTE_NAME, triple[2], // + ENDIAN_ATTRIBUTE_NAME, orderStr // + ), "Initialized"); + + getManager().addEventsListener(this); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return CompletableFuture.completedFuture(null); + } + + @Override + public void refreshInternal() { + platformAttributes.refreshInternal(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesPlatformImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesPlatformImpl.java new file mode 100644 index 0000000000..855234516f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionAttributesPlatformImpl.java @@ -0,0 +1,116 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.model.iface2.LldbModelTargetSessionAttributes; +import agent.lldb.model.iface2.LldbModelTargetSessionAttributesPlatform; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "SessionAttributesPlatform", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Object.class) + }) +public class LldbModelTargetSessionAttributesPlatformImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSessionAttributesPlatform { + + static String ARCH_ATTRIBUTE_NAME = "Arch"; + static String MANUFACTURER_ATTRIBUTE_NAME = "Manufacturer"; + static String OS_ATTRIBUTE_NAME = "OS"; + static String OS_MM_ATTRIBUTE_NAME = "Major:Minor"; + static String OS_DESC_ATTRIBUTE_NAME = "Description"; + static String DEBUGGER_ATTRIBUTE_NAME = "Debugger"; + static String BUILD_ATTRIBUTE_NAME = "Build"; + static String ENDIAN_ATTRIBUTE_NAME = "Endian"; + static String DIRECTORY_ATTRIBUTE_NAME = "Working Dir"; + + SBTarget session; + + public LldbModelTargetSessionAttributesPlatformImpl( + LldbModelTargetSessionAttributes attributes) { + super(attributes.getModel(), attributes, "Platform", "SessionAttributesPlatform"); + + session = (SBTarget) getModelObject(); + String[] triple = session.GetTriple().split("-"); + ByteOrder order = session.GetByteOrder(); + SBPlatform platform = session.GetPlatform(); + + long major = platform.GetOSMajorVersion(); + long minor = platform.GetOSMinorVersion(); + String build = platform.GetOSBuild(); + if (build == null) { + build = "unknown"; + } + String desc = platform.GetOSDescription(); + if (desc == null) { + desc = "unknown"; + } + String wdir = platform.GetWorkingDirectory(); + + changeAttributes(List.of(), List.of(), Map.of( // + ARCH_ATTRIBUTE_NAME, triple[0], // + MANUFACTURER_ATTRIBUTE_NAME, triple[1], // + OS_ATTRIBUTE_NAME, triple[2], // + OS_DESC_ATTRIBUTE_NAME, desc, // + DEBUGGER_ATTRIBUTE_NAME, "lldb", // + OS_MM_ATTRIBUTE_NAME, major + ":" + minor, // + BUILD_ATTRIBUTE_NAME, build, // + ENDIAN_ATTRIBUTE_NAME, order.toString(), // + DIRECTORY_ATTRIBUTE_NAME, wdir // + ), "Initialized"); + + getManager().addEventsListener(this); + } + + @Override + public void sessionAdded(SBTarget session, LldbCause cause) { + refreshInternal(); + } + + @Override + public void processAdded(SBProcess process, LldbCause cause) { + SBTarget procTarget = process.GetTarget(); + if (!DebugClient.getId(session).equals(DebugClient.getId(procTarget))) { + return; + } + refreshInternal(); + } + + public void refreshInternal() { + AtomicReference capture = new AtomicReference<>(); + AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().consoleCapture("version").handle(seq::next); + }, capture).then(seq -> { + changeAttributes(List.of(), List.of(), Map.of( // + DEBUGGER_ATTRIBUTE_NAME, capture.get()), "Refreshed"); + }).finish(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionContainerImpl.java new file mode 100644 index 0000000000..f28c521034 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionContainerImpl.java @@ -0,0 +1,89 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.SBTarget; +import agent.lldb.manager.LldbCause; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "SessionContainer", + elements = { + @TargetElementType(type = LldbModelTargetSessionImpl.class) }, + attributes = { + @TargetAttributeType(type = Void.class) }, + canonicalContainer = true) +public class LldbModelTargetSessionContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSessionContainer { + + public LldbModelTargetSessionContainerImpl(LldbModelTargetRoot root) { + super(root.getModel(), root, "Sessions", "SessionContainer"); + + getManager().addEventsListener(this); + } + + @Override + public void sessionAdded(SBTarget sess, LldbCause cause) { + LldbModelTargetSession session = getTargetSession(sess); + changeElements(List.of(), List.of(session), Map.of(), "Added"); + } + + @Override + public void sessionReplaced(SBTarget sess, LldbCause cause) { + LldbModelTargetSession session = getTargetSession(sess); + changeElements(List.of(), List.of(session), Map.of(), "Replaced"); + } + + @Override + public void sessionRemoved(String sessionId, LldbCause cause) { + changeElements(List.of( // + sessionId // + ), List.of(), Map.of(), "Removed"); + } + + @Override + public synchronized LldbModelTargetSession getTargetSession(SBTarget session) { + TargetObject targetObject = getMapObject(session); + if (targetObject != null) { + LldbModelTargetSession targetSession = (LldbModelTargetSession) targetObject; + targetSession.setModelObject(session); + return targetSession; + } + return new LldbModelTargetSessionImpl(this, session); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listSessions().thenAccept(byIID -> { + List sessions; + synchronized (this) { + sessions = byIID.values() + .stream() + .map(this::getTargetSession) + .collect(Collectors.toList()); + } + setElements(sessions, "Refreshed"); + }); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionImpl.java new file mode 100644 index 0000000000..f911befb7a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSessionImpl.java @@ -0,0 +1,142 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.cmd.LldbContinueCommand; +import agent.lldb.model.iface1.LldbModelTargetInterpreter; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.PathUtils; + +@TargetObjectSchemaInfo( + name = "Session", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = "Debug", + type = LldbModelTargetDebugContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Attributes", + type = LldbModelTargetSessionAttributesImpl.class, + fixed = true), + @TargetAttributeType( + name = "Processes", + type = LldbModelTargetProcessContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType( + name = "Modules", + type = LldbModelTargetModuleContainerImpl.class, + required = true, + fixed = true), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetSessionImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSession { + + protected static final String Lldb_PROMPT = "(kd)"; + //private Integer base = 16; + + // NB: This should almost certainly always be implemented by the root of the object tree + + protected static String indexSession(SBTarget session) { + return DebugClient.getId(session); + } + + protected static String keySession(SBTarget session) { + return PathUtils.makeKey(indexSession(session)); + } + + protected final LldbModelTargetDebugContainer debug; + protected final LldbModelTargetModuleContainer modules; + protected final LldbModelTargetSessionAttributesImpl attributes; + protected final LldbModelTargetProcessContainerImpl processes; + //private LldbModelSelectableObject focus; + + protected String debugger = "kd"; // Used by LldbModelTargetEnvironment + + public LldbModelTargetSessionImpl(LldbModelTargetSessionContainerImpl sessions, + SBTarget session) { + super(sessions.getModel(), sessions, keySession(session), session, "Session"); + getManager().getClient().addBroadcaster(session); + + this.debug = new LldbModelTargetDebugContainerImpl(this); + this.attributes = new LldbModelTargetSessionAttributesImpl(this); + this.processes = new LldbModelTargetProcessContainerImpl(this); + this.modules = new LldbModelTargetModuleContainerImpl(this); + + changeAttributes(List.of(), List.of( // + debug, // + attributes, // + processes, // + modules // + ), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDescription(0), // + ACCESSIBLE_ATTRIBUTE_NAME, accessible, // + PROMPT_ATTRIBUTE_NAME, LldbModelTargetInterpreter.LLDB_PROMPT, // + STATE_ATTRIBUTE_NAME, TargetExecutionState.ALIVE // + ), "Initialized"); + + getManager().addEventsListener(this); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBTarget session = (SBTarget) getModelObject(); + DescriptionLevel detail = DescriptionLevel.swigToEnum(level); + session.GetDescription(stream, detail); + return stream.GetData(); + } + + @Override + public CompletableFuture setActive() { + return getManager().setActiveSession(getSession()); + } + + @Override + public boolean isAccessible() { + return accessible; + } + + @Override + public LldbModelTargetProcessContainer getProcesses() { + return processes; + } + + @Override + public LldbModelTargetModuleContainer getModules() { + return modules; + } + + public SBTarget getSession() { + return (SBTarget) getModelObject(); + } + + @Override + public CompletableFuture resume() { + SBProcess currentProcess = getManager().getCurrentProcess(); + return model.gateFuture(getManager().execute(new LldbContinueCommand(getManager(), currentProcess))); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameImpl.java new file mode 100644 index 0000000000..21a9c3be78 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameImpl.java @@ -0,0 +1,201 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.math.BigInteger; +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbReason; +import agent.lldb.model.iface1.LldbModelTargetFocusScope; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetFocusScope; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; + +@TargetObjectSchemaInfo( + name = "StackFrame", + attributeResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = "Registers", + type = LldbModelTargetStackFrameRegisterContainerImpl.class, + required = true), + @TargetAttributeType( + name = "Function", + type = LldbModelTargetFunctionImpl.class), + @TargetAttributeType( + name = LldbModelTargetStackFrame.FUNC_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType( + name = LldbModelTargetStackFrame.INST_OFFSET_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType( + name = LldbModelTargetStackFrame.FRAME_OFFSET_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType( + name = LldbModelTargetStackFrame.RETURN_OFFSET_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType( + name = LldbModelTargetStackFrame.CALL_FRAME_OFFSET_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType( + name = LldbModelTargetStackFrame.STACK_OFFSET_ATTRIBUTE_NAME, + type = String.class), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetStackFrameImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetStackFrame { + + protected static String indexFrame(SBFrame frame) { + return DebugClient.getId(frame); + } + + protected static String keyFrame(SBFrame frame) { + return PathUtils.makeKey(indexFrame(frame)); + } + + protected final LldbModelTargetThread thread; + + protected Address pc; + protected String func; + protected String display; + + private final LldbModelTargetStackFrameRegisterContainerImpl registers; + private final LldbModelTargetFunctionImpl function; + + private Long frameOffset = -1L; + private Long stackOffset = -1L; + private Long callFrameOffset = -1L; + //private Long returnOffset = -1L; + + public LldbModelTargetStackFrameImpl(LldbModelTargetStack stack, LldbModelTargetThread thread, + SBFrame frame) { + super(stack.getModel(), stack, keyFrame(frame), frame, "StackFrame"); + this.thread = thread; + this.pc = getModel().getAddressSpace("ram").getAddress(-1); + + if (!valid) { + registers = null; + function = null; + return; + } + + this.registers = new LldbModelTargetStackFrameRegisterContainerImpl(this); + this.function = new LldbModelTargetFunctionImpl(this, frame.GetFunction()); + + changeAttributes(List.of(), List.of( + registers, // + function // + ), Map.of( // + DISPLAY_ATTRIBUTE_NAME, display = getDescription(0), //computeDisplay(frame), // + PC_ATTRIBUTE_NAME, pc // + ), "Initialized"); + setFrame(frame); + + getManager().addEventsListener(this); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBFrame frame = (SBFrame) getModelObject(); + frame.GetDescription(stream); + return stream.GetData(); + } + + protected static String computeDisplay(SBFrame frame) { + if (frame.GetFunction() == null) { + return String.format("#%d 0x%s", DebugClient.getId(frame), frame.GetPC().toString(16)); + } + return String.format("#%d 0x%s in %s ()", DebugClient.getId(frame), frame.GetPC().toString(16), + frame.GetDisplayFunctionName()); + } + + @Override + public void threadSelected(SBThread eventThread, SBFrame eventFrame, LldbCause cause) { + if (eventFrame != null && eventFrame.equals(getFrame())) { + ((LldbModelTargetFocusScope) searchForSuitable(TargetFocusScope.class)).setFocus(this); + } + } + + @TargetAttributeType( + name = LldbModelTargetStackFrameRegisterContainerImpl.NAME, + required = true, + fixed = true) + public LldbModelTargetStackFrameRegisterContainer getRegisters() { + return registers; + } + + @Override + public void setFrame(SBFrame frame) { + if (!frame.IsValid()) { + System.err.println("Error in frame"); + } + setModelObject(frame); + BigInteger address = frame.GetPC(); + long lval = address == null ? -1 : address.longValue(); + this.pc = getModel().getAddressSpace("ram").getAddress(lval); + this.func = frame.GetFunctionName(); + if (func == null) { + func = "UNKNOWN"; + } + this.frameOffset = frame.GetFP().longValue(); + this.stackOffset = frame.GetSP().longValue(); + this.callFrameOffset = frame.GetCFA().longValue(); + + changeAttributes(List.of(), List.of(), Map.of( // + PC_ATTRIBUTE_NAME, pc, // + DISPLAY_ATTRIBUTE_NAME, display = getDescription(0), //computeDisplay(frame), // + FUNC_ATTRIBUTE_NAME, func, // + INST_OFFSET_ATTRIBUTE_NAME, Long.toHexString(lval), // + FRAME_OFFSET_ATTRIBUTE_NAME, Long.toHexString(frameOffset), // + STACK_OFFSET_ATTRIBUTE_NAME, Long.toHexString(stackOffset), // + CALL_FRAME_OFFSET_ATTRIBUTE_NAME, Long.toHexString(callFrameOffset) // + ), "Refreshed"); + } + + @Override + public TargetObject getThread() { + return thread; + } + + public SBFrame getFrame() { + return (SBFrame) getModelObject(); + } + + @Override + public Address getPC() { + return pc; + } + + @Override + public LldbModelTargetProcess getProcess() { + return ((LldbModelTargetThreadImpl) thread).getProcess(); + } + + public void threadStateChangedSpecific(StateType state, LldbReason reason) { + setFrame(getFrame()); + registers.threadStateChangedSpecific(state, reason); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterBankImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterBankImpl.java new file mode 100644 index 0000000000..da4b0792dc --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterBankImpl.java @@ -0,0 +1,160 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.math.BigInteger; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.*; +import agent.lldb.manager.LldbReason; +import agent.lldb.model.iface2.LldbModelTargetRegister; +import agent.lldb.model.iface2.LldbModelTargetStackFrameRegisterBank; +import ghidra.async.AsyncUtils; +import ghidra.dbg.DebuggerModelListener; +import ghidra.dbg.error.DebuggerRegisterAccessException; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.util.PathUtils; +import ghidra.util.datastruct.ListenerSet; + +@TargetObjectSchemaInfo( + name = "RegisterValueBank", + elementResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = LldbModelTargetStackFrameRegisterImpl.class) + }, + attributes = { + @TargetAttributeType(type = Object.class) + }, + canonicalContainer = true) +public class LldbModelTargetStackFrameRegisterBankImpl + extends LldbModelTargetObjectImpl + implements LldbModelTargetStackFrameRegisterBank { + public static final String NAME = "Registers"; + + protected static String keyValue(SBValue value) { + return PathUtils.makeKey(value.GetName()); + } + + protected final LldbModelTargetStackFrameRegisterContainerImpl container; + + public LldbModelTargetStackFrameRegisterBankImpl( + LldbModelTargetStackFrameRegisterContainerImpl container, SBValue val) { + super(container.getModel(), container, val.GetName(), val, "StackFrameRegisterBank"); + this.container = container; + + changeAttributes(List.of(), List.of(), Map.of( + DISPLAY_ATTRIBUTE_NAME, getName(), + DESCRIPTIONS_ATTRIBUTE_NAME, container), "Initialized"); + + requestElements(false); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBValue val = (SBValue) getModelObject(); + val.GetDescription(stream); + return stream.GetData(); + } + + /** + * Does both descriptions and then populates values + */ + @Override + public CompletableFuture requestElements(boolean refresh) { + SBValue bank = (SBValue) getModelObject(); + return getManager().listStackFrameRegisters(bank).thenAccept(regs -> { + List registers; + synchronized (this) { + registers = regs.values() + .stream() + .map(this::getTargetRegister) + .collect(Collectors.toList()); + } + setElements(registers, Map.of(), "Refreshed"); + if (!getCachedElements().isEmpty()) { + readRegistersNamed(getCachedElements().keySet()); + } + }); + } + + @Override + public LldbModelTargetRegister getTargetRegister(SBValue register) { + TargetObject targetObject = getMapObject(register); + if (targetObject != null) { + LldbModelTargetRegister targetRegister = (LldbModelTargetRegister) targetObject; + targetRegister.setModelObject(register); + return targetRegister; + } + return new LldbModelTargetStackFrameRegisterImpl(this, register); + } + + public void threadStateChangedSpecific(StateType state, LldbReason reason) { + if (state.equals(StateType.eStateStopped)) { + requestElements(false).thenAccept(__ -> { + readRegistersNamed(getCachedElements().keySet()); + }); + } + } + + @Override + public CompletableFuture> readRegistersNamed( + Collection names) { + Map result = new HashMap<>(); + Map elements = getCachedElements(); + for (String regname : names) { + if (!elements.containsKey(regname)) { + throw new DebuggerRegisterAccessException("No such register: " + regname); + } + LldbModelTargetStackFrameRegisterImpl register = + (LldbModelTargetStackFrameRegisterImpl) elements.get(regname); + byte[] bytes = register.getBytes(); + result.put(regname, bytes); + } + ListenerSet listeners = getListeners(); + if (listeners != null) { + //if (getName().contains("General")) { + listeners.fire.registersUpdated(this, result); + //} + } + return CompletableFuture.completedFuture(result); + } + + @Override + public CompletableFuture writeRegistersNamed(Map values) { + Map elements = getCachedElements(); + for (Map.Entry ent : values.entrySet()) { + String regname = ent.getKey(); + LldbModelTargetStackFrameRegisterImpl reg = + (LldbModelTargetStackFrameRegisterImpl) elements.get(regname); + if (reg == null) { + throw new DebuggerRegisterAccessException("No such register: " + regname); + } + BigInteger val = new BigInteger(1, ent.getValue()); + reg.getRegister().SetValueFromCString(val.toString()); + } + getListeners().fire.registersUpdated(getProxy(), values); + return AsyncUtils.NIL; + } + + public Object getContainer() { + return container; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterContainerImpl.java new file mode 100644 index 0000000000..b7e3770ae8 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterContainerImpl.java @@ -0,0 +1,100 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.SBValue; +import SWIG.StateType; +import agent.lldb.manager.LldbReason; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; + +@TargetObjectSchemaInfo( + name = "RegisterContainer", + attributeResync = ResyncMode.ALWAYS, + attributes = { + @TargetAttributeType( + name = "General Purpose Registers", + type = LldbModelTargetStackFrameRegisterBank.class, + required = true), + @TargetAttributeType( + name = "Floating Point Registers", + type = LldbModelTargetStackFrameRegisterBank.class, + required = false), + @TargetAttributeType(type = LldbModelTargetStackFrameRegisterBank.class) + }) +public class LldbModelTargetStackFrameRegisterContainerImpl + extends LldbModelTargetObjectImpl + implements LldbModelTargetStackFrameRegisterContainer { + public static final String NAME = "Registers"; + + protected final LldbModelTargetStackFrameImpl frame; + + public LldbModelTargetStackFrameRegisterContainerImpl(LldbModelTargetStackFrameImpl frame) { + super(frame.getModel(), frame, NAME, "StackFrameRegisterContainer"); + this.frame = frame; + requestAttributes(true); + } + + /** + * Does both descriptions and then populates values + */ + @Override + public CompletableFuture requestAttributes(boolean refresh) { + return getManager().listStackFrameRegisterBanks(frame.getFrame()).thenAccept(banks -> { + List targetBanks; + synchronized (this) { + targetBanks = banks.values() + .stream() + .map(this::getTargetRegisterBank) + .collect(Collectors.toList()); + } + changeAttributes(List.of(), targetBanks, Map.of(), "Refreshed"); + }); + } + + @Override + public LldbModelTargetObject getTargetRegisterBank(SBValue val) { + TargetObject targetObject = getMapObject(val); + if (targetObject != null) { + LldbModelTargetObject targetBank = (LldbModelTargetObject) targetObject; + targetBank.setModelObject(val); + return targetBank; + } + return new LldbModelTargetStackFrameRegisterBankImpl(this, val); + } + + public void threadStateChangedSpecific(StateType state, LldbReason reason) { + if (state.equals(StateType.eStateStopped)) { + requestAttributes(false).thenAccept(__ -> { + for (Object attribute : getCachedAttributes().values()) { + if (attribute instanceof LldbModelTargetRegisterBank) { + LldbModelTargetRegisterBank bank = (LldbModelTargetRegisterBank) attribute; + bank.threadStateChangedSpecific(state, reason); + } + } + }); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterImpl.java new file mode 100644 index 0000000000..294ee8ba41 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackFrameRegisterImpl.java @@ -0,0 +1,117 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.math.BigInteger; +import java.util.List; +import java.util.Map; + +import SWIG.SBStream; +import SWIG.SBValue; +import agent.lldb.model.iface2.LldbModelTargetStackFrameRegister; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.util.ConversionUtils; +import ghidra.dbg.util.PathUtils; + +@TargetObjectSchemaInfo( + name = "RegisterValue", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType(type = Object.class) }) +public class LldbModelTargetStackFrameRegisterImpl + extends LldbModelTargetObjectImpl + implements LldbModelTargetStackFrameRegister { + + protected static String indexRegister(SBValue register) { + return register.GetName(); + } + + protected static String keyRegister(SBValue register) { + return PathUtils.makeKey(indexRegister(register)); + } + + String value = ""; + + public LldbModelTargetStackFrameRegisterImpl(LldbModelTargetStackFrameRegisterBankImpl bank, + SBValue register) { + super(bank.getModel(), bank, keyRegister(register), register, "Register"); + value = getValue(); + + changeAttributes(List.of(), Map.of( // + CONTAINER_ATTRIBUTE_NAME, bank.getContainer(), // + LENGTH_ATTRIBUTE_NAME, getBitLength(), // + DISPLAY_ATTRIBUTE_NAME, getDescription(0), // + VALUE_ATTRIBUTE_NAME, value == null ? "0" : value, // + MODIFIED_ATTRIBUTE_NAME, false // + ), "Initialized"); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBValue val = (SBValue) getModelObject(); + val.GetDescription(stream); + return stream.GetData(); + } + + @Override + public int getBitLength() { + return (int) (getRegister().GetByteSize() * 8); + } + + @Override + public String getValue() { + String val = getRegister().GetValue(); + if (val == null) { + return null; + } + if (!val.startsWith("0x")) { + return val; + } + return val.substring(2); + } + + @Override + public SBValue getRegister() { + return (SBValue) getModelObject(); + } + + public byte[] getBytes() { + String oldValue = value; + value = getValue(); + if (value == null) { + return new byte[0]; + } + BigInteger val = new BigInteger(value, 16); + byte[] bytes = ConversionUtils.bigIntegerToBytes((int) getRegister().GetByteSize(), val); + changeAttributes(List.of(), Map.of( // + VALUE_ATTRIBUTE_NAME, value // + ), "Refreshed"); + if (val.longValue() != 0) { + String newval = getDescription(0); + changeAttributes(List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, newval // + ), "Refreshed"); + setModified(!value.equals(oldValue)); + } + return bytes; + } + + public String getDisplay() { + return getValue() == null ? getName() : getName() + " : " + getValue(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackImpl.java new file mode 100644 index 0000000000..8a9f96d895 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetStackImpl.java @@ -0,0 +1,95 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.SBFrame; +import SWIG.StateType; +import agent.lldb.manager.LldbReason; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.util.datastruct.WeakValueHashMap; + +@TargetObjectSchemaInfo( + name = "Stack", + elementResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = LldbModelTargetStackFrameImpl.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }, + canonicalContainer = true) +public class LldbModelTargetStackImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetStack { + + protected final LldbModelTargetThread thread; + + public static final String NAME = "Stack"; + + protected final Map framesByLevel = + new WeakValueHashMap<>(); + + public LldbModelTargetStackImpl(LldbModelTargetThread thread, LldbModelTargetProcess process) { + super(thread.getModel(), thread, NAME, "Stack"); + this.thread = thread; + requestElements(false); + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listStackFrames(thread.getThread()).thenAccept(f -> { + List frames; + synchronized (this) { + frames = + f.values().stream().map(this::getTargetFrame).collect(Collectors.toList()); + } + setElements(frames, Map.of(), "Refreshed"); + }); + } + + @Override + public synchronized LldbModelTargetStackFrame getTargetFrame(SBFrame frame) { + return framesByLevel.compute((int) frame.GetFrameID(), (l, f) -> { + if (f == null) { + return new LldbModelTargetStackFrameImpl(this, thread, frame); + } + f.setFrame(frame); + return f; + }); + } + + public void threadStateChangedSpecific(StateType state, LldbReason reason) { + if (state.equals(StateType.eStateStopped)) { + requestElements(true).thenAccept(__ -> { + for (TargetObject element : getCachedElements().values()) { + if (element instanceof LldbModelTargetStackFrame) { + LldbModelTargetStackFrameImpl frame = + (LldbModelTargetStackFrameImpl) element; + frame.threadStateChangedSpecific(state, reason); + } + } + }); + } + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolContainerImpl.java new file mode 100644 index 0000000000..5f32f5e4de --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolContainerImpl.java @@ -0,0 +1,71 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.SBSymbol; +import agent.lldb.model.iface2.LldbModelTargetSymbolContainer; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; + +@TargetObjectSchemaInfo( + name = "SymbolContainer", + elements = { + @TargetElementType(type = LldbModelTargetSymbolImpl.class) }, + elementResync = ResyncMode.ONCE, + attributes = { + @TargetAttributeType(type = Void.class) }, + canonicalContainer = true) +public class LldbModelTargetSymbolContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSymbolContainer { + + protected final LldbModelTargetModuleImpl module; + + public LldbModelTargetSymbolContainerImpl(LldbModelTargetModuleImpl module) { + super(module.getModel(), module, "Symbols", "SymbolContainer"); + this.module = module; + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listModuleSymbols(module.getModule()).thenAccept(byName -> { + List symbols; + synchronized (this) { + symbols = byName.values() + .stream() + .map(this::getTargetSymbol) + .collect(Collectors.toList()); + } + setElements(symbols, Map.of(), "Refreshed"); + }); + } + + @Override + public synchronized LldbModelTargetSymbolImpl getTargetSymbol(SBSymbol symbol) { + TargetObject targetObject = getMapObject(symbol); + if (targetObject != null) { + LldbModelTargetSymbolImpl targetSymbol = (LldbModelTargetSymbolImpl) targetObject; + targetSymbol.setModelObject(symbol); + return targetSymbol; + } + return new LldbModelTargetSymbolImpl(this, symbol); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java new file mode 100644 index 0000000000..5ba29d29f2 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java @@ -0,0 +1,110 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; + +import SWIG.*; +import agent.lldb.model.iface2.LldbModelTargetSession; +import agent.lldb.model.iface2.LldbModelTargetSymbol; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.TargetSymbol; +import ghidra.dbg.target.schema.TargetAttributeType; +import ghidra.dbg.target.schema.TargetElementType; +import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; + +@TargetObjectSchemaInfo( + name = "Symbol", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = TargetSymbol.NAMESPACE_ATTRIBUTE_NAME, + type = LldbModelTargetSymbolContainerImpl.class), + @TargetAttributeType(name = TargetObject.VALUE_ATTRIBUTE_NAME, type = Address.class), + @TargetAttributeType(name = TargetSymbol.SIZE_ATTRIBUTE_NAME, type = long.class), + @TargetAttributeType(name = "Name", type = String.class), + @TargetAttributeType(name = "Size", type = long.class), + @TargetAttributeType(name = "TypeId", type = int.class), + @TargetAttributeType(name = "Tag", type = int.class), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetSymbolImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetSymbol { + protected static String indexSymbol(SBSymbol symbol) { + return symbol.GetName(); + } + + protected static String keySymbol(SBSymbol symbol) { + return PathUtils.makeKey(indexSymbol(symbol)); + } + + protected final boolean constant; + protected Address value; + protected long size; + + public LldbModelTargetSymbolImpl(LldbModelTargetSymbolContainerImpl symbols, + SBSymbol symbol) { + super(symbols.getModel(), symbols, keySymbol(symbol), symbol, "Symbol"); + this.constant = false; + LldbModelTargetSession session = this.getParentSession(); + SBTarget target = (SBTarget) session.getModelObject(); + this.value = symbols.getModel() + .getAddressSpace("ram") + .getAddress(symbol.GetStartAddress().GetLoadAddress(target).longValue()); + this.size = symbol.GetEndAddress() + .GetOffset() + .subtract(symbol.GetStartAddress().GetOffset()) + .longValue(); + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDescription(0), // + NAMESPACE_ATTRIBUTE_NAME, symbols, // + VALUE_ATTRIBUTE_NAME, value, // + SIZE_ATTRIBUTE_NAME, size // + /* + "Name", symbol.getName(), // + "Size", size, // + "TypeId", symbol.getTypeId(), // + "Tag", symbol.getTag() // + */ + ), "Initialized"); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBSymbol symbol = (SBSymbol) getModelObject(); + symbol.GetDescription(stream); + return stream.GetData(); + } + + @Override + public boolean isConstant() { + return constant; + } + + @Override + public Address getValue() { + return value; + } + + @Override + public long getSize() { + return size; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadContainerImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadContainerImpl.java new file mode 100644 index 0000000000..d764e6e00b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadContainerImpl.java @@ -0,0 +1,175 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbReason; +import agent.lldb.model.iface1.LldbModelTargetConfigurable; +import agent.lldb.model.iface2.*; +import ghidra.async.AsyncUtils; +import ghidra.dbg.error.DebuggerIllegalArgumentException; +import ghidra.dbg.target.TargetConfigurable; +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; + +@TargetObjectSchemaInfo( + name = "ThreadContainer", + elementResync = ResyncMode.ALWAYS, + elements = { // + @TargetElementType(type = LldbModelTargetThreadImpl.class) // + }, + attributes = { // + @TargetAttributeType(name = TargetConfigurable.BASE_ATTRIBUTE_NAME, type = Integer.class), // + @TargetAttributeType(type = Void.class) // + }, + canonicalContainer = true) +public class LldbModelTargetThreadContainerImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetThreadContainer, LldbModelTargetConfigurable { + + protected final SBProcess process; + + public LldbModelTargetThreadContainerImpl(LldbModelTargetProcessImpl process) { + super(process.getModel(), process, "Threads", "ThreadContainer"); + this.process = process.getProcess(); + this.changeAttributes(List.of(), Map.of(BASE_ATTRIBUTE_NAME, 16), "Initialized"); + + getManager().addEventsListener(this); + requestElements(false); + } + + @Override + public void threadCreated(SBThread thread) { + changeElements(List.of(), List.of(getTargetThread(thread)), Map.of(), "Created"); + LldbModelTargetThread targetThread = getTargetThread(thread); + changeElements(List.of(), List.of(targetThread), Map.of(), "Created"); + targetThread.threadStateChangedSpecific(StateType.eStateConnected, + LldbReason.getReason(null)); + getListeners().fire.event(getProxy(), targetThread, TargetEventType.THREAD_CREATED, + "Thread " + DebugClient.getId(thread) + " started", List.of(targetThread)); + } + + @Override + public void threadReplaced(SBThread thread) { + changeElements(List.of(), List.of(getTargetThread(thread)), Map.of(), "Created"); + LldbModelTargetThread targetThread = getTargetThread(thread); + changeElements(List.of(), List.of(targetThread), Map.of(), "Created"); + } + + @Override + public void threadStateChanged(SBThread thread, StateType state, LldbCause cause, + LldbReason reason) { + LldbModelTargetThread targetThread = getTargetThread(thread); + TargetEventType eventType = getEventType(state, cause, reason); + getListeners().fire.event(getProxy(), targetThread, eventType, + "Thread " + DebugClient.getId(thread) + " state changed", List.of(targetThread)); + targetThread.threadStateChangedSpecific(state, reason); + } + + @Override + public void threadExited(SBThread thread) { + String threadId = LldbModelTargetThreadImpl.indexThread(thread); + LldbModelTargetThread targetThread = (LldbModelTargetThread) getMapObject(thread); + if (targetThread != null) { + getListeners().fire.event(getProxy(), targetThread, TargetEventType.THREAD_EXITED, + "Thread " + threadId + " exited", List.of(targetThread)); + } + changeElements(List.of( // + threadId // + ), List.of(), Map.of(), "Exited"); + } + + // TODO?: Serive a more complete event set from this? + private TargetEventType getEventType(StateType state, LldbCause cause, LldbReason reason) { + switch (state.swigValue()) { + case 0: // eStateInvalid + return TargetEventType.RUNNING; + case 1: // eStateUnloaded + return TargetEventType.PROCESS_EXITED; + case 2: // eStateConnected + case 3: // eStateAttaching + case 4: // eStateLaunching + return TargetEventType.PROCESS_CREATED; + case 5: // eStateStopped + return TargetEventType.STOPPED; + case 6: // eStateRunning + case 7: // eStateStepping + return TargetEventType.RUNNING; + case 8: // eStateCrashed + case 9: // eStateDetached + case 10: // eStateExited + return TargetEventType.PROCESS_EXITED; + case 11: // eStateSuspended + return TargetEventType.STOPPED; + default: + return TargetEventType.STOPPED; + } + } + + @Override + public CompletableFuture requestElements(boolean refresh) { + return getManager().listThreads(process).thenAccept(byTID -> { + List threads; + synchronized (this) { + threads = + byTID.values().stream().map(this::getTargetThread).collect(Collectors.toList()); + } + setElements(threads, Map.of(), "Refreshed"); + }); + } + + @Override + public synchronized LldbModelTargetThread getTargetThread(SBThread thread) { + TargetObject targetObject = getMapObject(thread); + if (targetObject != null) { + LldbModelTargetThread targetThread = (LldbModelTargetThread) targetObject; + targetThread.setModelObject(thread); + return targetThread; + } + return new LldbModelTargetThreadImpl(this, (LldbModelTargetProcess) parent, thread); + } + + @Override + public CompletableFuture writeConfigurationOption(String key, Object value) { + switch (key) { + case BASE_ATTRIBUTE_NAME: + if (value instanceof Integer) { + this.changeAttributes(List.of(), Map.of(BASE_ATTRIBUTE_NAME, value), + "Modified"); + for (TargetObject child : getCachedElements().values()) { + if (child instanceof LldbModelTargetThreadImpl) { + LldbModelTargetThreadImpl targetThread = + (LldbModelTargetThreadImpl) child; + targetThread.setBase(value); + } + } + } + else { + throw new DebuggerIllegalArgumentException("Base should be numeric"); + } + default: + } + return AsyncUtils.NIL; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadImpl.java new file mode 100644 index 0000000000..267b442438 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetThreadImpl.java @@ -0,0 +1,194 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import SWIG.*; +import agent.lldb.lldb.DebugClient; +import agent.lldb.manager.LldbCause; +import agent.lldb.manager.LldbReason; +import agent.lldb.manager.LldbReason.Reasons; +import agent.lldb.manager.cmd.LldbStepCommand; +import agent.lldb.model.iface1.LldbModelTargetFocusScope; +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.*; +import ghidra.dbg.target.schema.*; +import ghidra.dbg.target.schema.TargetObjectSchema.ResyncMode; +import ghidra.dbg.util.PathUtils; + +@TargetObjectSchemaInfo( + name = "Thread", + attributeResync = ResyncMode.ALWAYS, + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = "Stack", + type = LldbModelTargetStackImpl.class, + required = true, + fixed = true), + @TargetAttributeType(name = TargetEnvironment.ARCH_ATTRIBUTE_NAME, type = String.class), + @TargetAttributeType(type = Void.class) }) +public class LldbModelTargetThreadImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetThread { + + public static final TargetStepKindSet SUPPORTED_KINDS = TargetStepKindSet.of( // + TargetStepKind.ADVANCE, // + TargetStepKind.FINISH, // + TargetStepKind.LINE, // + TargetStepKind.OVER, // + TargetStepKind.OVER_LINE, // + TargetStepKind.RETURN, // + TargetStepKind.UNTIL, // + TargetStepKind.EXTENDED); + + protected static String indexThread(Integer id) { + return PathUtils.makeIndex(id); + } + + protected static String indexThread(SBThread thread) { + return DebugClient.getId(thread); + } + + protected static String keyThread(SBThread thread) { + return PathUtils.makeKey(indexThread(thread)); + } + + protected final LldbModelTargetStackImpl stack; + + private LldbModelTargetProcess process; + private Integer base = 16; + + public LldbModelTargetThreadImpl(LldbModelTargetThreadContainer threads, + LldbModelTargetProcess process, SBThread thread) { + super(threads.getModel(), threads, keyThread(thread), thread, "Thread"); + this.process = process; + + this.stack = new LldbModelTargetStackImpl(this, process); + + changeAttributes(List.of(), List.of( // + stack // + ), Map.of( // + ACCESSIBLE_ATTRIBUTE_NAME, accessible = false, // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + STATE_ATTRIBUTE_NAME, TargetExecutionState.ALIVE, // + SUPPORTED_STEP_KINDS_ATTRIBUTE_NAME, SUPPORTED_KINDS // + ), "Initialized"); + + getManager().addStateListener(this); + getManager().addEventsListener(this); + } + + @Override + public void setModelObject(Object modelObject) { + super.setModelObject(modelObject); + getModel().addModelObject(modelObject, this); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBThread thread = (SBThread) getModelObject(); + thread.GetDescription(stream); + return stream.GetData(); + } + + @Override + public String getDisplay() { + String tidstr = DebugClient.getId(getThread()); + if (base == 16) { + tidstr = "0x" + tidstr; + } else { + tidstr = Long.toString(Long.parseLong(tidstr,16)); + } + return "[" + tidstr + "]"; + } + + @Override + public void threadSelected(SBThread eventThread, SBFrame frame, LldbCause cause) { + if (eventThread.GetThreadID().equals(getThread().GetThreadID())) { + ((LldbModelTargetFocusScope) searchForSuitable(TargetFocusScope.class)).setFocus(this); + } + } + + @Override + public void threadStateChangedSpecific(StateType state, LldbReason reason) { + TargetExecutionState targetState = DebugClient.convertState(state); + changeAttributes(List.of(), List.of(), Map.of( // + STATE_ATTRIBUTE_NAME, targetState // + ), reason.desc()); + stack.threadStateChangedSpecific(state, reason); + } + + @Override + public CompletableFuture step(TargetStepKind kind) { + return getModel().gateFuture(getManager().execute(new LldbStepCommand(getManager(), null, kind, null))); + } + + @Override + public CompletableFuture step(Map args) { + return getModel().gateFuture(getManager().execute(new LldbStepCommand(getManager(), null, null, args))); + } + + @Override + public CompletableFuture setActive() { + return getModel().gateFuture(getManager().setActiveThread(getThread())); + } + + @Override + public LldbModelTargetStackImpl getStack() { + return stack; + } + + @Override + public SBThread getThread() { + return (SBThread) getModelObject(); + } + + public LldbModelTargetProcess getProcess() { + return process; + } + + @Override + public boolean isAccessible() { + return accessible; + } + + @Override + public String getExecutingProcessorType() { + return null; //thread.getExecutingProcessorType().description; + } + + public void setBase(Object value) { + this.base = (Integer) value; + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay()// + ), "Started"); + } + + @Override + public void stateChanged(StateType state, LldbCause cause) { + LldbModelTargetThreadContainer container = (LldbModelTargetThreadContainer) getParent(); + LldbModelTargetProcess process = (LldbModelTargetProcess) container.getParent(); + Reasons unknown = LldbReason.Reasons.UNKNOWN; + process.threadStateChanged(getThread(), state, cause, unknown); + container.threadStateChanged(getThread(), state, cause, unknown); + threadStateChangedSpecific(state, unknown); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetTraceOrDumpConnectorImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetTraceOrDumpConnectorImpl.java new file mode 100644 index 0000000000..58d609b65b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetTraceOrDumpConnectorImpl.java @@ -0,0 +1,84 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; +import java.util.concurrent.CompletableFuture; + +import agent.lldb.model.iface2.LldbModelTargetConnector; +import ghidra.async.AsyncUtils; +import ghidra.async.TypeSpec; +import ghidra.dbg.error.DebuggerUserException; +import ghidra.dbg.target.TargetMethod; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "TraceOrDumpConnector", + elements = { + @TargetElementType(type = Void.class) + }, + attributes = { + @TargetAttributeType(type = Void.class) + }) +public class LldbModelTargetTraceOrDumpConnectorImpl extends LldbModelTargetObjectImpl + implements LldbModelTargetConnector { + + protected final LldbModelTargetConnectorContainerImpl connectors; + protected final TargetParameterMap paramDescs; + + public LldbModelTargetTraceOrDumpConnectorImpl(LldbModelTargetConnectorContainerImpl connectors, + String name) { + super(connectors.getModel(), connectors, name, name); + this.connectors = connectors; + + changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, getDisplay(), // + TargetMethod.PARAMETERS_ATTRIBUTE_NAME, + paramDescs = TargetParameterMap.copyOf(computeParameters()) // + ), "Initialized"); + } + + @Override + public CompletableFuture setActive() { + connectors.setDefaultConnector(this); + return CompletableFuture.completedFuture(null); + } + + protected Map> computeParameters() { + HashMap> map = + new LinkedHashMap>(); + ParameterDescription p1 = ParameterDescription.create(String.class, "TraceOrDump", + true, "", "File", "trace or dump to be loaded"); + map.put("TraceOrDump", p1); + return map; + } + + @Override + public TargetParameterMap getParameters() { + return TargetMethod.getParameters(this); + } + + @Override + public CompletableFuture launch(Map args) { + return AsyncUtils.sequence(TypeSpec.VOID).then(seq -> { + getManager().openFile(args).handle(seq::nextIgnore); + }).finish().exceptionally((exc) -> { + throw new DebuggerUserException("Launch failed for " + args); + }); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetWatchpointSpecImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetWatchpointSpecImpl.java new file mode 100644 index 0000000000..03557c6f75 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetWatchpointSpecImpl.java @@ -0,0 +1,89 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.impl; + +import java.util.*; + +import SWIG.*; +import agent.lldb.model.iface2.LldbModelTargetBreakpointContainer; +import agent.lldb.model.iface2.LldbModelTargetBreakpointLocation; +import ghidra.dbg.target.TargetBreakpointSpecContainer.TargetBreakpointKindSet; +import ghidra.dbg.target.schema.*; + +@TargetObjectSchemaInfo( + name = "BreakpointSpec", + elements = { // + @TargetElementType(type = LldbModelTargetBreakpointLocationImpl.class) // + }, + attributes = { + @TargetAttributeType(type = Void.class) }, + canonicalContainer = true) +public class LldbModelTargetWatchpointSpecImpl extends LldbModelTargetAbstractXpointSpec { + + private List locs = new ArrayList<>(); + + public LldbModelTargetWatchpointSpecImpl(LldbModelTargetBreakpointContainer breakpoints, + Object info) { + super(breakpoints, info, "WatchpointSpec"); + } + + public String getDescription(int level) { + SBStream stream = new SBStream(); + SBWatchpoint wpt = (SBWatchpoint) getModelObject(); + DescriptionLevel detail = DescriptionLevel.swigToEnum(level); + wpt.GetDescription(stream, detail); + String data = stream.GetData(); + return data.equals("No value") ? getName() : data; + } + + protected TargetBreakpointKindSet computeKinds(Object from) { + return TargetBreakpointKindSet.of(TargetBreakpointKind.READ, TargetBreakpointKind.WRITE); + } + + public void updateInfo(Object info, String reason) { + if (!valid) { + return; + } + setModelObject(info); + updateAttributesFromInfo(reason); + + SBWatchpoint wpt = (SBWatchpoint) getModelObject(); + locs.add(new LldbModelTargetBreakpointLocationImpl(this, wpt)); + setElements(locs, Map.of(), "Refreshed"); + } + + public void updateAttributesFromInfo(String reason) { + SBWatchpoint wpt = (SBWatchpoint) getModelObject(); + this.changeAttributes(List.of(), List.of(), Map.of( // + DISPLAY_ATTRIBUTE_NAME, display = getDescription(0), // + KINDS_ATTRIBUTE_NAME, kinds = computeKinds(wpt), // + ENABLED_ATTRIBUTE_NAME, enabled = wpt.IsEnabled(), // + EXPRESSION_ATTRIBUTE_NAME, "" // + ), reason); + this.changeAttributes(List.of(), List.of(), Map.of( // + BPT_TYPE_ATTRIBUTE_NAME, "Hardware", // + BPT_DISP_ATTRIBUTE_NAME, wpt.IsEnabled(), // + BPT_VALID_ATTRIBUTE_NAME, wpt.IsValid(), // + BPT_TIMES_ATTRIBUTE_NAME, wpt.GetHitCount() // + ), reason); + } + + @Override + public LldbModelTargetBreakpointLocation findLocation(Object object) { + return locs.get(0); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/lldb/LLDBTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/lldb/LLDBTest.java new file mode 100644 index 0000000000..66255f9a05 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/lldb/LLDBTest.java @@ -0,0 +1,978 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.lldb; + +import static org.junit.Assert.assertNotNull; + +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +import org.junit.Before; +import org.junit.Test; + +import SWIG.SBDebugger; +import SWIG.SBProcess; +import SWIG.SBProcessInfo; +import SWIG.SBTarget; +import SWIG.SBThread; +import SWIG.StateType; +import ghidra.test.AbstractGhidraHeadlessIntegrationTest; +import ghidra.util.Msg; + +public class LLDBTest extends AbstractGhidraHeadlessIntegrationTest { + + public static void assumeLibLoadable() { + try { + System.load("/usr/lib/liblldb.so"); + } + catch (UnsatisfiedLinkError ex) { + } + try { + System.load("/usr/lib/liblldb.dylib"); + } + catch (UnsatisfiedLinkError ex) { + } + } + + private SBDebugger sbd; + + @Before + public void setUp() { + assumeLibLoadable(); + SBDebugger.InitializeWithErrorHandling(); + sbd = SBDebugger.Create(); + } + + @Test + public void testCanWeDoAnything() { + System.err.println(sbd); + } + + protected class ProcMaker implements AutoCloseable { + public ProcMaker(String cmdLine) { + this.cmdLine = cmdLine; + } + + final String cmdLine; + + final CompletableFuture procExit = new CompletableFuture<>(); + + StringBuilder outputCapture = null; + + private SBProcess process; + + public void start() { + /* + client.setEventCallbacks(new NoisyDebugEventCallbacksAdapter(DebugStatus.NO_CHANGE) { + @Override + public DebugStatus createProcess(DebugProcessInfo debugProcessInfo) { + super.createProcess(debugProcessInfo); + procInfo.complete(debugProcessInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus createThread(DebugThreadInfo debugThreadInfo) { + super.createThread(debugThreadInfo); + threadInfo.complete(debugThreadInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exitProcess(int exitCode) { + super.exitProcess(exitCode); + procExit.complete(exitCode); + return DebugStatus.BREAK; + } + }); + client.setOutputCallbacks(new DebugOutputCallbacks() { + @Override + public void output(int mask, String text) { + System.out.print(text); + if (outputCapture != null) { + outputCapture.append(text); + } + } + }); + */ + + Msg.debug(this, "Starting " + cmdLine + " with client " + sbd); + SBTarget target = sbd.CreateTarget(cmdLine); + process = target.LaunchSimple(null, null, null); + assertNotNull(process); + System.out.println(DebugClient.getId(process) + ":" + process.GetUniqueID()); + SBProcessInfo pi = process.GetProcessInfo(); + assertNotNull(pi); + SBThread thread = process.GetThreadAtIndex(0); + assertNotNull(thread); + System.out.println(DebugClient.getId(thread) + ":" + process.GetUniqueID()); + thread.Resume(); + } + + public void kill() { + Msg.debug(this, "Killing " + cmdLine); + process.Kill(); + try { + process.wait(); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public List execCapture(String command) { + try { + outputCapture = new StringBuilder(); + //control.execute(command); + return Arrays.asList(outputCapture.toString().split("\n")); + } + finally { + outputCapture = null; + } + } + + @Override + public void close() { + StateType state = process.GetState(); + if (!state.equals(StateType.eStateExited)) { + kill(); + } + } + } + + @Test + public void testStart() { + try (ProcMaker maker = new ProcMaker("/bin/echo")) { + maker.start(); + } + } + + /* + @Test + public void testPrintln() { + CompletableFuture cb = new CompletableFuture<>(); + client.setOutputCallbacks(new DebugOutputCallbacks() { + @Override + public void output(int mask, String text) { + System.out.print(text); + cb.complete(text); + } + }); + control.outln("Hello, World!"); + String back = cb.getNow(null); + // NOTE: I'd like to be precise wrt/ new lines, but it seems to vary with version. + assertEquals("Hello, World!", back.trim()); + } + + @Test + public void testGetProcessSystemIds() { + List procs = client.getRunningProcesses(client.getLocalServer()); + System.out.println("Total: " + procs.size()); + procs.sort(null); + for (DebugRunningProcess p : procs) { + System.out.println("ID: " + p.getSystemId()); + } + } + + @Test + public void testGetProcessDescriptions() { + List procs = client.getRunningProcesses(client.getLocalServer()); + System.out.println("Total: " + procs.size()); + procs.sort(null); + for (DebugRunningProcess p : procs) { + try { + System.out.println(p.getFullDescription()); + } + catch (COMException e) { + System.out.println("Error with PID " + p.getSystemId() + ": " + e.getMessage()); + } + } + } + + public static abstract class NoisyDebugEventCallbacksAdapter + extends DebugEventCallbacksAdapter { + final DebugStatus defaultStatus; + + public NoisyDebugEventCallbacksAdapter(DebugStatus defaultStatus) { + this.defaultStatus = defaultStatus; + } + + @Override + public DebugStatus createProcess(DebugProcessInfo debugProcessInfo) { + Msg.info(this, "createProcess: " + debugProcessInfo); + return defaultStatus; + } + + @Override + public DebugStatus createThread(DebugThreadInfo debugThreadInfo) { + Msg.info(this, "createThread: " + debugThreadInfo); + return defaultStatus; + } + + @Override + public DebugStatus exitProcess(int exitCode) { + Msg.info(this, "exitProcess: " + Integer.toHexString(exitCode)); + return defaultStatus; + } + + @Override + public DebugStatus breakpoint(DebugBreakpoint bp) { + Msg.info(this, "breakpoint: " + bp); + return defaultStatus; + } + + @Override + public DebugStatus changeDebuggeeState(BitmaskSet flags, + long argument) { + Msg.info(this, "changeDebuggeeState: " + flags + ", " + argument); + return defaultStatus; + } + + @Override + public DebugStatus changeEngineState(BitmaskSet flags, long argument) { + Msg.info(this, "changeEngineState: " + flags + ", " + argument); + return defaultStatus; + } + + @Override + public DebugStatus changeSymbolState(BitmaskSet flags, long argument) { + Msg.info(this, "changeSymbolState: " + flags + ", " + argument); + return defaultStatus; + } + + @Override + public DebugStatus exception(DebugExceptionRecord64 exception, boolean firstChance) { + Msg.info(this, "exception: " + exception + ", " + firstChance); + return defaultStatus; + } + + @Override + public DebugStatus exitThread(int exitCode) { + Msg.info(this, "exitThread: " + Integer.toHexString(exitCode)); + return defaultStatus; + } + + @Override + public DebugStatus loadModule(DebugModuleInfo debugModuleInfo) { + Msg.info(this, "loadModule: " + debugModuleInfo); + return defaultStatus; + } + + @Override + public DebugStatus sessionStatus(SessionStatus status) { + Msg.info(this, "sessionStatus: " + status); + return defaultStatus; + } + + @Override + public DebugStatus systemError(int error, int level) { + Msg.info(this, "systemError: " + error + ", " + level); + return defaultStatus; + } + + @Override + public DebugStatus unloadModule(String imageBaseName, long baseOffset) { + Msg.info(this, "unloadModule: " + imageBaseName + ", " + baseOffset); + return defaultStatus; + } + } + + protected class ProcMaker implements AutoCloseable { + public ProcMaker(String cmdLine) { + this.cmdLine = cmdLine; + } + + final String cmdLine; + + final CompletableFuture procInfo = new CompletableFuture<>(); + final CompletableFuture threadInfo = new CompletableFuture<>(); + final CompletableFuture procExit = new CompletableFuture<>(); + + StringBuilder outputCapture = null; + + public void start() { + client.setEventCallbacks(new NoisyDebugEventCallbacksAdapter(DebugStatus.NO_CHANGE) { + @Override + public DebugStatus createProcess(DebugProcessInfo debugProcessInfo) { + super.createProcess(debugProcessInfo); + procInfo.complete(debugProcessInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus createThread(DebugThreadInfo debugThreadInfo) { + super.createThread(debugThreadInfo); + threadInfo.complete(debugThreadInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exitProcess(int exitCode) { + super.exitProcess(exitCode); + procExit.complete(exitCode); + return DebugStatus.BREAK; + } + }); + client.setOutputCallbacks(new DebugOutputCallbacks() { + @Override + public void output(int mask, String text) { + System.out.print(text); + if (outputCapture != null) { + outputCapture.append(text); + } + } + }); + + Msg.debug(this, "Starting " + cmdLine + " with client " + client); + control.execute(".create " + cmdLine); + control.waitForEvent(); + DebugProcessInfo pi = procInfo.getNow(null); + assertNotNull(pi); + control.execute("g"); + control.waitForEvent(); + DebugThreadInfo ti = threadInfo.getNow(null); + assertNotNull(ti); + } + + public void kill() { + Msg.debug(this, "Killing " + cmdLine); + control.execute(".kill"); + control.waitForEvent(); + Integer exitCode = procExit.getNow(null); + client.setOutputCallbacks(null); + assertNotNull(exitCode); + } + + public List execCapture(String command) { + try { + outputCapture = new StringBuilder(); + control.execute(command); + return Arrays.asList(outputCapture.toString().split("\n")); + } + finally { + outputCapture = null; + } + } + + @Override + public void close() { + if (procInfo.isDone() && !procExit.isDone()) { + kill(); + } + } + } + + @Test + public void testDescribeVector256Register() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + DebugRegisters regs = client.getRegisters(); + int index = regs.getIndexByName("ymm0"); + DebugRegisterDescription desc = regs.getDescription(index); + Msg.debug(this, "desc=" + desc); + // This seems wrong, but I'm curious about the value + assertEquals(DebugValueType.VECTOR128, desc.type); + + DebugValue value = regs.getValue(index); + Msg.debug(this, "value=" + value); + } + } + + @Test + public void testGetSingleRegister() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + List out = maker.execCapture("r"); + String expected = + out.stream().filter(s -> s.startsWith("rax")).findAny().get().split("\\s+")[0]; + + DebugRegisters regs = client.getRegisters(); + DebugInt64Value raxVal = (DebugInt64Value) regs.getValueByName("rax"); + + String actual = String.format("rax=%016x", raxVal.longValue()); + assertEquals(expected, actual); + } + } + + @Test + public void testGetRegisters() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + List out = maker.execCapture("r"); + String expected = out.stream().filter(s -> s.startsWith("rax")).findAny().get(); + + DebugRegisters regs = client.getRegisters(); + List indices = new ArrayList<>(); + int raxIdx = regs.getIndexByName("rax"); + int rbxIdx = regs.getIndexByName("rbx"); + int rcxIdx = regs.getIndexByName("rcx"); + indices.add(raxIdx); + indices.add(rbxIdx); + indices.add(rcxIdx); + Map values = + regs.getValues(DebugRegisterSource.DEBUG_REGSRC_DEBUGGEE, indices); + + String actual = String.format("rax=%016x rbx=%016x rcx=%016x", + ((DebugInt64Value) values.get(raxIdx)).longValue(), + ((DebugInt64Value) values.get(rbxIdx)).longValue(), + ((DebugInt64Value) values.get(rcxIdx)).longValue()); + assertEquals(expected, actual); + } + } + + @Test + public void testSetSingleRegister() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + DebugRegisters regs = client.getRegisters(); + regs.setValueByName("rax", new DebugInt64Value(0x0102030405060708L)); + + List out = maker.execCapture("r"); + String actual = + out.stream().filter(s -> s.startsWith("rax")).findAny().get().split("\\s+")[0]; + assertEquals("rax=0102030405060708", actual); + } + } + + @Test + public void testSetRegisters() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + DebugRegisters regs = client.getRegisters(); + // Purposefully choosing non-linked variant. + // Want to know that order does not make a difference. + Map values = new HashMap<>(); + values.put(regs.getIndexByName("rax"), new DebugInt64Value(0x0102030405060708L)); + values.put(regs.getIndexByName("rbx"), new DebugInt64Value(0x1122334455667788L)); + values.put(regs.getIndexByName("rcx"), new DebugInt64Value(0x8877665544332211L)); + regs.setValues(DebugRegisterSource.DEBUG_REGSRC_DEBUGGEE, values); + + List out = maker.execCapture("r"); + String actual = out.stream().filter(s -> s.startsWith("rax")).findAny().get(); + assertEquals("rax=0102030405060708 rbx=1122334455667788 rcx=8877665544332211", actual); + } + } + + @Test + public void testQueryVirtual() { + // Also, an experiment to figure out how it works + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + List collected1 = new ArrayList<>(); + try { + long last = 0; + long offset = 0; + do { + System.out.print(Long.toHexString(offset) + ": "); + DebugMemoryBasicInformation info = client.getDataSpaces().queryVirtual(offset); + //System.out.println(info); + System.out.println(Long.toHexString(info.baseAddress) + "-" + + Long.toHexString(info.regionSize) + ": " + info.state); + if (info.baseAddress != offset) { + System.out.println(" !!!"); + } + collected1.add(info); + last = offset; + offset += info.regionSize; + } + while (Long.compareUnsigned(last, offset) < 0); + } + catch (COMException e) { + if (!e.getMessage().contains("HRESULT: 80004002")) { + throw e; + } + } + + List collected2 = new ArrayList<>(); + for (DebugMemoryBasicInformation info : client.getDataSpaces().iterateVirtual(0)) { + collected2.add(info); + } + + assertTrue(collected1.size() > 0); + assertEquals(collected1, collected2); + + // For comparison + client.getControl().execute("!address"); + } + } + + @Test + public void testModules() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + for (DebugModule mod : client.getSymbols().iterateModules(0)) { + System.out.println(mod.getIndex() + ": " + Long.toHexString(mod.getBase()) + ": " + + mod.getName(DebugModuleName.MODULE)); + System.out.println(" Img: " + mod.getName(DebugModuleName.IMAGE)); + System.out.println(" Load: " + mod.getName(DebugModuleName.LOADED_IMAGE)); + } + } + } + + @Test(expected = COMException.class) + public void testModuleOutOfBounds() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + DebugModule umod = client.getSymbols() + .getModuleByIndex( + client.getSymbols().getNumberLoadedModules() + 1); + System.out.println(umod.getBase()); + } + } + + @Test + public void testQueryVirtualWithModule() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + for (DebugMemoryBasicInformation info : client.getDataSpaces().iterateVirtual(0)) { + if (info.state != PageState.FREE) { + DebugModule mod = null; + String name = "[NONE]"; + try { + mod = client.getSymbols().getModuleByOffset(info.baseAddress, 0); + name = mod.getName(DebugModuleName.IMAGE); + } + catch (COMException e) { + name = "[ERR:" + e + "]"; + } + System.out.println(String.format("%016x", info.baseAddress) + ":" + + Long.toHexString(info.regionSize) + ":" + info.state + " from " + name + + " " + info.type + info.protect); + } + } + } + } + + @Test + public void testSymbols() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + Set symbols = new LinkedHashSet<>(); + Set modules = new LinkedHashSet<>(); + for (DebugSymbolName sym : client.getSymbols().iterateSymbolMatches("*")) { + String[] parts = sym.name.split("!"); + symbols.add(sym); + modules.add(parts[0]); + } + System.out.println("Total Symbols: " + symbols.size()); + System.out.println("Total Modules (by symbol name): " + modules.size()); + + // These make assumptions that could be broken later. + // It used to expect at least 10 modules (devised when testing on Win7). Now it's 5! + assertTrue("Fewer than 1000 symbols: " + symbols.size(), symbols.size() > 1000); + assertTrue("Fewer than 3 modules: " + modules.size(), modules.size() > 3); + } + } + + @Test + public void testSymbolInfo() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + int count = 0; + for (DebugSymbolId symid : client.getSymbols().getSymbolIdsByName("ntdll!*")) { + //System.out.println(symid); + DebugSymbolEntry syment = client.getSymbols().getSymbolEntry(symid); + if (syment.typeId != 0) { + System.out.println(" " + syment); + } + count++; + } + + assertTrue(count > 10); + } + } + + @Test + public void testReadMemory() throws FileNotFoundException, IOException { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + control.execute(".server tcp:port=54321"); + int len = 256; + + DebugModule notepadModule = client.getSymbols().getModuleByModuleName("notepad", 0); + System.out.println("Base: " + Long.toHexString(notepadModule.getBase())); + ByteBuffer data = ByteBuffer.allocate(len); + client.getDataSpaces().readVirtual(notepadModule.getBase(), data, data.remaining()); + System.out.println(NumericUtilities.convertBytesToString(data.array())); + + // TODO: Avoid hardcoding path to notepad + try (FileInputStream fis = new FileInputStream("C:\\Windows\\notepad.exe")) { + byte[] fromFile = new byte[len]; + fis.read(fromFile); + // TODO: Note sure why, but this seems to be the case after it's loaded + //ByteBuffer toWriteBase = ByteBuffer.wrap(fromFile).order(ByteOrder.LITTLE_ENDIAN); + //toWriteBase.putLong(280, notepadModule.getBase()); + System.out.println(NumericUtilities.convertBytesToString(fromFile)); + assertArrayEquals(fromFile, data.array()); + } + + data.clear(); + data.putInt(0x12345678); + client.getDataSpaces().readVirtual(notepadModule.getBase(), data, data.remaining()); + data.flip(); + + assertEquals(0x12345678, data.getInt()); + } + } + + @Test + public void testWriteMemory() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + // TODO: How to write to protected memory? + // Debugger should be able to modify program code. + DebugMemoryBasicInformation writable = null; + space: for (DebugMemoryBasicInformation info : client.getDataSpaces() + .iterateVirtual( + 0)) { + for (PageProtection prot : info.protect) { + if (prot.isWrite()) { + writable = info; + break space; + } + } + } + if (writable == null) { + throw new AssertionError("No writable pages?"); + } + System.out.println("writable: " + writable); + ByteBuffer toWrite = ByteBuffer.allocate(10); + toWrite.putInt(0x12345678); + toWrite.putInt(0x89abcdef); + toWrite.putShort((short) 0x5555); + toWrite.flip(); + client.getDataSpaces().writeVirtual(writable.baseAddress, toWrite, toWrite.remaining()); + + ByteBuffer toRead = ByteBuffer.allocate(10); + client.getDataSpaces().readVirtual(writable.baseAddress, toRead, toRead.remaining()); + + assertArrayEquals(toWrite.array(), toRead.array()); + } + } + + @Test + public void testBreakpoints() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + DebugBreakpoint bpt = control.addBreakpoint(BreakType.CODE); + System.out.println("Breakpoint id: " + bpt.getId()); + System.out.println("Flags: " + bpt.getFlags()); + DebugBreakpoint bpt2 = control.getBreakpointById(bpt.getId()); + assertEquals(bpt, bpt2); + } + } + + @Test + public void testFreezeUnfreeze() { + try (ProcMaker maker = new ProcMaker("notepad")) { + maker.start(); + + // Trying to see if any events will help me track frozen threads + System.out.println("****Freezing"); + control.execute("~0 f"); + System.out.println("****Unfreezing"); + control.execute("~0 u"); + System.out.println("****Done"); + // Well, that result stinks. + // There is no event to tell me about frozenness + } + } + + @Test + @Ignore("I can't find a reliable means to detect the last thread. " + + "There's supposed to be an initial break, but it is rarely reported. " + + "I thought about toolhelp, but that presumes local live debugging.") + public void testMultiThreadAttach() throws Exception { + // I need to see how to attach to multi-threaded processes. There must be some event + // or condition to indicate when all threads have been discovered. + String specimen = + Application.getOSFile("sctldbgeng", "expCreateThreadSpin.exe").getCanonicalPath(); + client.setOutputCallbacks(new DebugOutputCallbacks() { + @Override + public void output(int mask, String text) { + System.out.print(text); + System.out.flush(); + } + }); + client.setEventCallbacks(new DebugEventCallbacksAdapter() { + @Override + public DebugStatus breakpoint(DebugBreakpoint bp) { + control.outln("*** Breakpoint: " + bp); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exception(DebugExceptionRecord64 exception, boolean firstChance) { + control.outln("*** Exception: " + exception + "," + firstChance); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus createThread(DebugThreadInfo debugThreadInfo) { + control.outln("*** CreateThread: " + debugThreadInfo); + System.out.println("Threads: " + client.getSystemObjects().getThreads()); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus createProcess(DebugProcessInfo debugProcessInfo) { + control.outln("*** CreateProcess: " + debugProcessInfo); + System.out.println("Threads: " + client.getSystemObjects().getThreads()); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exitThread(int exitCode) { + control.outln("*** ExitThread: code=" + exitCode + ", " + + client.getSystemObjects().getEventThread()); + System.out.println("Threads: " + client.getSystemObjects().getThreads()); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exitProcess(int exitCode) { + control.outln("*** ExitProcess: code=" + exitCode + ", " + + client.getSystemObjects().getEventProcess()); + System.out.println("Threads: " + client.getSystemObjects().getThreads()); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus changeEngineState(BitmaskSet flags, + long argument) { + if (flags.contains(ChangeEngineState.EXECUTION_STATUS)) { + control.outln( + "*** ExecutionStatus: " + control.getExecutionStatus()); + } + return DebugStatus.NO_CHANGE; + } + }); + try (DummyProc proc = new DummyProc(specimen)) { + System.out.println("Started " + specimen + " with PID=" + proc.pid); + Thread.sleep(1000); + System.out.println("Attaching..."); + client.attachProcess(client.getLocalServer(), proc.pid, BitmaskSet.of()); + if (true) { + for (int i = 0; i < 10; i++) { + System.out.println("WAIT " + i + "..."); + control.waitForEvent(100); + System.out.println("STATUS: " + control.getExecutionStatus()); + System.out.println("DONE " + i); + // control.execute("~*"); + } + } + } + finally { + client.setEventCallbacks(null); + } + } + + protected static class BreakAllCallbacks extends DebugEventCallbacksAdapter { + protected final DebugControl control; + protected final DebugRegisters regs; + protected final DebugSystemObjects objs; + + volatile protected long currentThread = 0; + volatile protected DebugProcessInfo createdProc = null; + volatile protected String lastReg = null; + + public BreakAllCallbacks(DebugClient client) { + this.control = client.getControl(); + this.regs = client.getRegisters(); + this.objs = client.getSystemObjects(); + } + + @Override + public DebugStatus breakpoint(DebugBreakpoint bp) { + control.outln("*** Breakpoint: " + bp); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus changeDebuggeeState(BitmaskSet flags, + long argument) { + control.outln("*** ChangeDebuggeeState: " + flags + "," + argument); + if (flags.contains(ChangeDebuggeeState.REGISTERS) && + !flags.contains(ChangeDebuggeeState.REFRESH)) { + DebugRegisterDescription description = regs.getDescription((int) argument); + control.outln(" Process: " + objs.getEventProcess()); + control.outln(" Thread: " + Long.toHexString(objs.getCurrentThreadSystemId())); + control.outln(" Reg: " + description); + control.outln(" Val: " + NumericUtilities + .convertBytesToString(regs.getValue((int) argument).encodeAsBytes(), "")); + lastReg = description.name; + } + return DebugStatus.BREAK; + } + + @Override + public DebugStatus changeEngineState(BitmaskSet flags, long argument) { + control.outln("*** ChangeEngineState: " + flags + "," + Long.toHexString(argument)); + if (flags.contains(ChangeEngineState.CURRENT_THREAD)) { + currentThread = argument; + } + return DebugStatus.BREAK; + } + + @Override + public DebugStatus changeSymbolState(BitmaskSet flags, long argument) { + control.outln("*** ChangeSymbolState: " + flags + "," + argument); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus createProcess(DebugProcessInfo debugProcessInfo) { + control.outln("*** CreateProcess: " + debugProcessInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus createThread(DebugThreadInfo debugThreadInfo) { + control.outln("*** CreateThread: " + debugThreadInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exception(DebugExceptionRecord64 exception, boolean firstChance) { + control.outln("*** Exception: " + exception + "," + firstChance); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exitProcess(int exitCode) { + control.outln("*** ExitProcess: code=" + exitCode); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus exitThread(int exitCode) { + control.outln("*** ExitThread: code=" + exitCode); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus loadModule(DebugModuleInfo debugModuleInfo) { + control.outln("*** LoadModule: " + debugModuleInfo); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus sessionStatus(SessionStatus status) { + control.outln("*** SessionStatus: " + status); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus systemError(int error, int level) { + control.outln("*** SystemError: " + error + "," + level); + return DebugStatus.BREAK; + } + + @Override + public DebugStatus unloadModule(String imageBaseName, long baseOffset) { + control.outln("*** UnloadModule: " + imageBaseName + "," + baseOffset); + return DebugStatus.BREAK; + } + } + + protected static class ConsoleOutputCallbacks implements DebugOutputCallbacks { + @Override + public void output(int mask, String text) { + System.out.print(text); + System.out.flush(); + } + } + + @Test + public void testAttachLaunch() throws Exception { + final String specimenX = "C:\\windows\\write.exe"; + final String specimenA = "C:\\windows\\notepad.exe"; + final String specimenC = "C:\\windows\\system32\\win32calc.exe"; + + try (DummyProc proc = new DummyProc(specimenX)) { + client.setOutputCallbacks(new ConsoleOutputCallbacks()); + BreakAllCallbacks cb = new BreakAllCallbacks(client); + client.setEventCallbacks(cb); + System.out.println("Started " + specimenA + " with PID=" + proc.pid); + Thread.sleep(1000); + + //System.out.println("Attaching..."); + //client.attachProcess(client.getLocalServer(), proc.pid, BitmaskSet.of()); + client.createProcess(client.getLocalServer(), specimenA, + BitmaskSet.of(DebugCreateFlags.DEBUG_PROCESS)); + + cb.lastReg = null; + //while (cb.lastReg == null) { + while (true) { + if (cb.currentThread != 0) { + client.getControl().execute("~* r rip"); + } + client.getControl().waitForEvent(); + } + /* + final Map ripValsPreLaunch = new HashMap<>(); + for (DebugThreadId tid : client.getSystemObjects().getThreads()) { + client.getSystemObjects().setCurrentThreadId(tid); + byte[] val = client.getRegisters().getValue(16).encodeAsBytes(); + ripValsPreLaunch.put(tid, new BigInteger(1, val).toString(16)); + } + + System.out.println("Creating..."); + client.createProcess(client.getLocalServer(), specimenC, + BitmaskSet.of(DebugCreateFlags.DEBUG_PROCESS)); + + cb.lastReg = null; + while (cb.lastReg == null) { + System.err.println(client.getSystemObjects().getCurrentProcessId()); + client.getControl().waitForEvent(); + client.getSystemObjects().setCurrentProcessId(new DebugProcessId(1)); + DebugEventInformation info = client.getControl().getLastEventInformation(); + System.err.println(info.getProcessId()); + } + + client.getSystemObjects().setCurrentProcessId(new DebugProcessId(0)); + final Map ripValsPostLaunch = new HashMap<>(); + for (DebugThreadId tid : client.getSystemObjects().getThreads()) { + client.getSystemObjects().setCurrentThreadId(tid); + byte[] val = client.getRegisters().getValue(16).encodeAsBytes(); + ripValsPostLaunch.put(tid, new BigInteger(1, val).toString(16)); + } + + assertEquals(ripValsPreLaunch, ripValsPostLaunch); + // + } + finally { + client.setOutputCallbacks(null); + client.setEventCallbacks(null); + } + } + */ +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractLldbModelHost.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractLldbModelHost.java new file mode 100644 index 0000000000..6c7f0901b0 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractLldbModelHost.java @@ -0,0 +1,27 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import java.util.Map; + +import ghidra.dbg.test.AbstractModelHost; + +public abstract class AbstractLldbModelHost extends AbstractModelHost { + @Override + public Map getFactoryOptions() { + return Map.ofEntries(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbActivationTest.java new file mode 100644 index 0000000000..1e125477b0 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbActivationTest.java @@ -0,0 +1,113 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assume.*; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import org.junit.Test; + +import generic.Unique; +import ghidra.dbg.target.*; +import ghidra.dbg.test.AbstractDebuggerModelActivationTest; +import ghidra.dbg.util.PathPattern; + +/** + * Test model object activation and focus + * + *

+ * Activation and focus are related but separate concepts. Focus is a little looser, and is allowed + * by the model to exactly match the client's notion of focus, usually indicating the object of the + * user's interest. Activation, however, commands the model to make the given object the "current" + * object. This implies any commands issued to the CLI will affect the active object. The model + * reflects the active object back to the client via focus. This allows the model and client to + * synchronize their "active" objects, while reducing the likelihood of event feedback loops. + * Furthermore, not every object can be activated. For example, activating a register will likely + * result in the containing thread or frame becoming active instead. Or, activating a thread may + * result in its innermost frame becoming active as well. + */ +public abstract class AbstractModelForLldbActivationTest extends AbstractDebuggerModelActivationTest { + + @Test + public void testDefaultFocusIsAsExpected() throws Throwable { + List expectedDefaultFocus = getExpectedDefaultActivePath(); + assumeNotNull(expectedDefaultFocus); + m.build(); + + PathPattern pathPattern = new PathPattern(expectedDefaultFocus); + Set activatable = getActivatableThings(); + // The default must be one of the activatable objects + TargetObject obj = Unique.assertOne(activatable.stream() + .filter(f -> pathPattern.matches(f.getPath())) + .collect(Collectors.toList())); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(); + assertActiveViaInterpreter(obj, interpreter); + } + } + + @Test + public void testActivateEachOnce() throws Throwable { + m.build(); + + TargetActiveScope activeScope = findActiveScope(); + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(); + assertActiveViaInterpreter(obj, interpreter); + } + } + + } + + @Test + public void testActivateEachTwice() throws Throwable { + m.build(); + + TargetActiveScope activeScope = findActiveScope(); + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(); + assertActiveViaInterpreter(obj, interpreter); + } + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(); + assertActiveViaInterpreter(obj, interpreter); + } + } + } + + @Test + public void testActivateEachViaInterpreter() throws Throwable { + assumeTrue(m.hasInterpreter()); + m.build(); + + Set activatable = getActivatableThings(); + TargetInterpreter interpreter = findInterpreter(); + for (TargetObject obj : activatable) { + activateViaInterpreter(obj, interpreter); + assertActiveViaInterpreter(obj, interpreter); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbBreakpointsTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbBreakpointsTest.java new file mode 100644 index 0000000000..d64d249946 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbBreakpointsTest.java @@ -0,0 +1,200 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; + +import java.util.List; +import java.util.Map; + +import agent.lldb.model.iface2.*; +import ghidra.dbg.target.*; +import ghidra.dbg.target.TargetBreakpointSpec.TargetBreakpointKind; +import ghidra.dbg.target.TargetBreakpointSpecContainer.TargetBreakpointKindSet; +import ghidra.dbg.test.*; +import ghidra.dbg.util.PathPattern; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.*; + +public abstract class AbstractModelForLldbBreakpointsTest + extends AbstractDebuggerModelBreakpointsTest implements ProvidesTargetViaLaunchSpecimen { + + protected abstract PathPattern getBreakPattern(); + + private static final int BREAK_ID_POS = 1; + + @Override + public AbstractDebuggerModelTest getTest() { + return this; + } + + @Override + protected List seedPath() { + return List.of(); + } + + @Override + public DebuggerTestSpecimen getLaunchSpecimen() { + return MacOSSpecimen.PRINT; + } + + @Override + public List getExpectedBreakpointContainerPath(List targetPath) { + List procsPath = PathUtils.parent(targetPath); + List sessionPath = PathUtils.parent(procsPath); + return PathUtils.extend(sessionPath, PathUtils.parse("Debug.Breakpoints")); + } + + @Override + public TargetBreakpointKindSet getExpectedSupportedKinds() { + return TargetBreakpointKindSet.of( // + TargetBreakpointKind.SW_EXECUTE, // + //TargetBreakpointKind.HW_EXECUTE, // + TargetBreakpointKind.READ, // + TargetBreakpointKind.WRITE); // + } + + @Override + public AddressRange getSuitableRangeForBreakpoint(TargetObject target, + TargetBreakpointKind kind) throws Throwable { + TargetStackFrame frame = retry(() -> { + TargetStackFrame f = findAnyStackFrame(target.getPath()); + assertNotNull(f); + return f; + }, List.of(AssertionError.class)); + waitOn(frame.fetchAttributes()); + Address pc = frame.getProgramCounter(); + switch (kind) { + case SW_EXECUTE: + case HW_EXECUTE: + return new AddressRangeImpl(pc, pc); + case READ: + case WRITE: + return new AddressRangeImpl(pc, 4); + default: + throw new AssertionError(); + } + } + + @Override + protected void placeBreakpointViaInterpreter(AddressRange range, TargetBreakpointKind kind, + TargetInterpreter interpreter) throws Throwable { + Address min = range.getMinAddress(); + if (range.getLength() == 4) { + switch (kind) { + case READ: + waitOn(interpreter.execute("watchpoint set expression -w read -s 4 -- " + min)); + break; + case WRITE: + waitOn(interpreter.execute("watchpoint set expression -w write -s 4 -- " + min)); + break; + default: + fail(); + } + } + else if (range.getLength() == 1) { + switch (kind) { + case SW_EXECUTE: + waitOn(interpreter.execute("breakpoint set -a " + min)); + break; + case HW_EXECUTE: + waitOn(interpreter.execute("breakpoint set -H -a " + min)); + break; + default: + fail(); + } + } + else { + fail(); + } + LldbModelTargetSession session = (LldbModelTargetSession) interpreter; + LldbModelTargetDebugContainer dc = (LldbModelTargetDebugContainer) session.getCachedAttribute("Debug"); + LldbModelTargetBreakpointContainer bc = (LldbModelTargetBreakpointContainer) dc.getCachedAttribute("Breakpoints"); + Map map = bc.fetchElements().get(); + for (TargetObject val : map.values()) { + val.fetchElements(); + } + } + + private String getTypeFromSpec(TargetObject t) { + boolean isExecute = t instanceof LldbModelTargetBreakpointSpec; + return isExecute ? "breakpoint" : "watchpoint"; + + } + private String getTypeFromKind(TargetBreakpointKind kind) { + boolean isExecute = kind.equals(TargetBreakpointKind.SW_EXECUTE) || kind.equals(TargetBreakpointKind.HW_EXECUTE); + return isExecute ? "breakpoint" : "watchpoint"; + } + private String getCommand(String cmd, String type, String bpId) { + return type + " " + cmd + " " + bpId.substring(1); + } + + @Override + protected void disableViaInterpreter(TargetTogglable t, TargetInterpreter interpreter) + throws Throwable { + String bpId = getBreakPattern().matchIndices(t.getPath()).get(BREAK_ID_POS); + String type = getTypeFromSpec(t); + waitOn(interpreter.execute(getCommand("disable", type, bpId))); + } + + @Override + protected void enableViaInterpreter(TargetTogglable t, TargetInterpreter interpreter) + throws Throwable { + String bpId = getBreakPattern().matchIndices(t.getPath()).get(BREAK_ID_POS); + String type = getTypeFromSpec(t); + waitOn(interpreter.execute(getCommand("enable", type, bpId))); + } + + @Override + protected void deleteViaInterpreter(TargetDeletable d, TargetInterpreter interpreter) + throws Throwable { + String bpId = getBreakPattern().matchIndices(d.getPath()).get(BREAK_ID_POS); + String type = getTypeFromSpec(d); + waitOn(interpreter.execute(getCommand("delete", type, bpId))); + } + + @Override + protected void assertLocCoversViaInterpreter(AddressRange range, TargetBreakpointKind kind, + TargetBreakpointLocation loc, TargetInterpreter interpreter) throws Throwable { + List matchIndices = getBreakPattern().matchIndices(loc.getSpecification().getPath()); + String bpId = matchIndices.get(BREAK_ID_POS); + String type = getTypeFromKind(kind); + String line = waitOn(interpreter.executeCapture(getCommand("list", type, bpId))).trim(); + if (type.equals("breakpoint")) + assertTrue(line.startsWith(bpId.substring(1))); + else + assertTrue(line.contains("Watchpoint " + bpId.substring(1))); + } + + @Override + protected void assertEnabledViaInterpreter(TargetTogglable t, boolean enabled, + TargetInterpreter interpreter) throws Throwable { + String bpId = getBreakPattern().matchIndices(t.getPath()).get(BREAK_ID_POS); + String type = getTypeFromSpec(t); + String line = waitOn(interpreter.executeCapture(getCommand("list", type, bpId))).trim(); + assertTrue(line.contains(bpId.substring(1)+":")); + assertTrue(enabled == !line.contains("disable")); + } + + @Override + protected void assertDeletedViaInterpreter(TargetDeletable d, TargetInterpreter interpreter) + throws Throwable { + String bpId = getBreakPattern().matchIndices(d.getPath()).get(BREAK_ID_POS); + String type = getTypeFromSpec(d); + String line = waitOn(interpreter.executeCapture(type + " list ")).trim(); + assertFalse(line.contains(bpId+":")); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFactoryTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFactoryTest.java new file mode 100644 index 0000000000..4b12cd8e80 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFactoryTest.java @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import java.util.Map; + +import ghidra.dbg.test.AbstractDebuggerModelFactoryTest; + +public abstract class AbstractModelForLldbFactoryTest extends AbstractDebuggerModelFactoryTest { + @Override + protected Map getFailingFactoryOptions() { + // TODO: No options to test for IN-VM variant + return Map.ofEntries(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFrameActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFrameActivationTest.java new file mode 100644 index 0000000000..cc21843b68 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbFrameActivationTest.java @@ -0,0 +1,77 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; + +import java.util.*; + +import ghidra.dbg.target.*; +import ghidra.dbg.util.PathPattern; + +public abstract class AbstractModelForLldbFrameActivationTest + extends AbstractModelForLldbActivationTest { + + protected abstract PathPattern getStackPattern(); + + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.STACK; + } + + @Override + protected Set getActivatableThings() throws Throwable { + DebuggerTestSpecimen specimen = getSpecimen(); + TargetLauncher launcher = findLauncher(); // root launcher should generate new inferiors + waitOn(launcher.launch(specimen.getLauncherArgs())); + + TargetProcess process = retry(() -> { + TargetProcess p = m.findAny(TargetProcess.class, seedPath()); + assertNotNull(p); + return p; + }, List.of(AssertionError.class)); + + trapAt("break_here", process); + + waitSettled(m.getModel(), 200); + + return retry(() -> { + Map, TargetStackFrame> frames = + m.findAll(TargetStackFrame.class, seedPath(), true); + assertTrue(frames.size() >= 3); + return Set.copyOf(frames.values()); + }, List.of(AssertionError.class)); + } + + protected void activateViaInterpreter(TargetObject obj, TargetInterpreter interpreter) + throws Throwable { + String index = getStackPattern().matchIndices(obj.getPath()).get(3); + waitOn(interpreter.execute("frame select " + index)); + } + + public abstract String getIdFromCapture(String line); + + @Override + protected void assertActiveViaInterpreter(TargetObject expected, TargetInterpreter interpreter) + throws Throwable { + String line = waitOn(interpreter.executeCapture("frame info")).trim(); + assertFalse(line.contains("\n")); + String id = getIdFromCapture(line); + int frameId = Integer.parseInt(id, 10); + int expId = Integer.decode(getStackPattern().matchIndices(expected.getPath()).get(3)); + assertEquals(expId, frameId); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbInterpreterTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbInterpreterTest.java new file mode 100644 index 0000000000..93b9f96c33 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbInterpreterTest.java @@ -0,0 +1,84 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import java.util.List; + +import ghidra.dbg.target.TargetProcess; +import ghidra.dbg.test.*; +import ghidra.dbg.util.PathUtils; + +public abstract class AbstractModelForLldbInterpreterTest + extends AbstractDebuggerModelInterpreterTest + implements ProvidesTargetViaLaunchSpecimen { + + @Override + public AbstractDebuggerModelTest getTest() { + return this; + } + + @Override + protected void ensureInterpreterAvailable() throws Throwable { + obtainTarget(); + } + + @Override + protected List seedPath() { + return List.of(); + //return PathUtils.parse("Sessions[1]"); + } + + @Override + public List getExpectedInterpreterPath() { + return PathUtils.parse("Sessions[1]"); + } + + @Override + protected String getEchoCommand(String msg) { + return "script print(\'" + msg + "\')"; + } + + @Override + protected String getQuitCommand() { + return "quit"; + } + + @Override + protected String getAttachCommand() { + return "process attach " + Long.toHexString(dummy.pid); + } + + @Override + protected String getDetachCommand(TargetProcess process) { + return "process detach"; + } + + @Override + protected String getKillCommand(TargetProcess process) { + return "kill"; + } + + @Override + public DebuggerTestSpecimen getAttachSpecimen() { + return MacOSSpecimen.SPIN; + } + + @Override + public DebuggerTestSpecimen getLaunchSpecimen() { + return MacOSSpecimen.PRINT; + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbProcessActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbProcessActivationTest.java new file mode 100644 index 0000000000..4f4f897ebf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbProcessActivationTest.java @@ -0,0 +1,176 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; +import static org.junit.Assume.*; + +import java.math.BigInteger; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.junit.Test; + +import SWIG.SBTarget; +import agent.lldb.model.iface2.LldbModelTargetSession; +import generic.Unique; +import ghidra.dbg.target.*; +import ghidra.dbg.util.PathPattern; + +public abstract class AbstractModelForLldbProcessActivationTest + extends AbstractModelForLldbActivationTest { + + protected abstract PathPattern getProcessPattern(); + + protected int getCount() { + return 3; + } + + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.PRINT; + } + + public abstract List getExpectedSessionPath(); + + @Override + protected Set getActivatableThings() throws Throwable { + DebuggerTestSpecimen specimen = getSpecimen(); + TargetLauncher launcher = findLauncher(); + int count = getCount(); + for (int i = 0; i < count; i++) { + waitOn(launcher.launch(specimen.getLauncherArgs())); + } + + waitSettled(m.getModel(), 200); + + return retry(() -> { + Map, TargetProcess> found = + m.findAll(TargetProcess.class, getExpectedSessionPath(), true); + assertEquals(count, found.size()); + return Set.copyOf(found.values()); + }, List.of(AssertionError.class)); + } + + @Override + protected void activateViaInterpreter(TargetObject obj, TargetInterpreter interpreter) + throws Throwable { + LldbModelTargetSession session = (LldbModelTargetSession) obj.getParent().getParent(); + SBTarget sbt = (SBTarget) session.getModelObject(); + BigInteger procId = sbt.GetProcess().GetProcessID(); + String output = waitOn(interpreter.executeCapture("target list")); + String[] split = output.split("\n"); + String index = null; + for (String l : split) { + if (l.contains(procId.toString(10))) { + index = getIndexFromCapture(l); + } + } + assertNotEquals(index, null); + waitOn(interpreter.execute("target select " + index)); + } + + public abstract String getIdFromCapture(String line); + public abstract String getIndexFromCapture(String line); + + @Override + protected void assertActiveViaInterpreter(TargetObject expected, TargetInterpreter interpreter) + throws Throwable { + String output = waitOn(interpreter.executeCapture("target list")); + String line = Unique.assertOne(Stream.of(output.split("\n")) + .filter(l -> l.trim().startsWith("*")) + .collect(Collectors.toList())).trim(); + String procId = getIdFromCapture(line); + String expId = getProcessPattern().matchIndices(expected.getPath()).get(1); + assertEquals(Long.parseLong(expId, 16), Long.parseLong(procId)); + } + + protected TargetInterpreter findInterpreter(TargetObject obj) throws Throwable { + return (TargetInterpreter) obj.getParent().getParent(); + } + + @Override + @Test + public void testDefaultFocusIsAsExpected() throws Throwable { + List expectedDefaultFocus = getExpectedDefaultActivePath(); + assumeNotNull(expectedDefaultFocus); + m.build(); + + Set activatable = getActivatableThings(); + Map, TargetProcess> found = + m.findAll(TargetProcess.class, getExpectedSessionPath(), true); + // The default must be one of the activatable objects + Object[] keys = found.keySet().toArray(); + TargetObject obj = found.get(keys[keys.length-1]); + assertTrue(activatable.contains(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + } + + @Override + @Test + public void testActivateEachOnce() throws Throwable { + m.build(); + + TargetActiveScope activeScope = findActiveScope(); + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + } + + } + + @Override + @Test + public void testActivateEachTwice() throws Throwable { + m.build(); + + TargetActiveScope activeScope = findActiveScope(); + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + } + } + + @Override + @Test + public void testActivateEachViaInterpreter() throws Throwable { + assumeTrue(m.hasInterpreter()); + m.build(); + + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + TargetInterpreter interpreter = findInterpreter(obj); + activateViaInterpreter(obj, interpreter); + assertActiveViaInterpreter(obj, interpreter); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootAttacherTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootAttacherTest.java new file mode 100644 index 0000000000..b97eb04096 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootAttacherTest.java @@ -0,0 +1,94 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +import org.junit.After; + +import agent.lldb.model.iface1.LldbModelTargetKillable; +import ghidra.dbg.DebugModelConventions; +import ghidra.dbg.target.*; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.test.AbstractDebuggerModelAttacherTest; +import ghidra.dbg.util.PathUtils; +import ghidra.util.Msg; + +public abstract class AbstractModelForLldbRootAttacherTest + extends AbstractDebuggerModelAttacherTest { + + @Override + public List getExpectedAttachableContainerPath() { + return List.of("Available"); + } + + @Override + public List getExpectedAttacherPath() { + return PathUtils.parse(""); + } + + @Override + public DebuggerTestSpecimen getAttachSpecimen() { + return MacOSSpecimen.SPIN; + } + + @Override + public TargetParameterMap getExpectedAttachParameters() { + return null; // TODO + } + + @Override + public void assertEnvironment(TargetEnvironment environment) { + assertTrue(environment.getArchitecture().startsWith("x86_64")); + //assertTrue(environment.getOperatingSystem().startsWith("macos")); + assertEquals("little", environment.getEndian()); + assertTrue(environment.getDebugger().toLowerCase().contains("lldb")); + } + + @Override + @After + public void tearDownDebuggerModelTest() throws Throwable { + /** + * NB. Model has to be closed before dummy. If dummy is suspended by a debugger, terminating + * it, even forcibly, may fail. + */ + if (m != null) { + m.close(); + } + if (dummy != null) { + if (!dummy.process.destroyForcibly().waitFor(1000, TimeUnit.MILLISECONDS)) { + Msg.error(this, "Could not terminate process " + dummy.process.pid()); + //throw new TimeoutException("Could not terminate process " + pid); + } + //dummy.close(); + } + } + + @Override + protected void runTestKill(DebuggerTestSpecimen specimen) + throws Throwable { + TargetProcess process = retryForProcessRunning(specimen, this); + LldbModelTargetKillable killable = + (LldbModelTargetKillable) m.suitable(TargetKillable.class, process.getPath()); + waitAcc(killable); + waitOn(killable.destroy()); + retryVoid(() -> assertFalse(DebugModelConventions.isProcessAlive(process)), + List.of(AssertionError.class)); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootLauncherTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootLauncherTest.java new file mode 100644 index 0000000000..6c014072a9 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbRootLauncherTest.java @@ -0,0 +1,72 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; + +import java.util.List; +import java.util.Map; + +import ghidra.dbg.DebugModelConventions; +import ghidra.dbg.DebugModelConventions.AsyncState; +import ghidra.dbg.target.*; +import ghidra.dbg.target.TargetExecutionStateful.TargetExecutionState; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.target.TargetMethod.TargetParameterMap; +import ghidra.dbg.test.AbstractDebuggerModelLauncherTest; +import ghidra.dbg.util.PathUtils; + +public abstract class AbstractModelForLldbRootLauncherTest + extends AbstractDebuggerModelLauncherTest { + + @Override + public List getExpectedLauncherPath() { + return PathUtils.parse(""); + } + + @Override + public DebuggerTestSpecimen getLaunchSpecimen() { + return MacOSSpecimen.PRINT; + } + + @Override + public TargetParameterMap getExpectedLauncherParameters() { + return TargetParameterMap.copyOf(Map.ofEntries( + Map.entry("args", ParameterDescription.create(String.class, "args", true, "", + "Command Line", "space-separated command-line arguments")))); + } + + @Override + public void assertEnvironment(TargetEnvironment environment) { + assertEquals("x86_64", environment.getArchitecture()); + //assertTrue(environment.getOperatingSystem().startsWith("macos")); + assertEquals("little", environment.getEndian()); + assertTrue(environment.getDebugger().toLowerCase().contains("lldb")); + } + + protected void runTestResumeTerminates(DebuggerTestSpecimen specimen) throws Throwable { + TargetProcess process = retryForProcessRunning(specimen, this); + TargetResumable resumable = m.suitable(TargetResumable.class, process.getPath()); + AsyncState state = + new AsyncState(m.suitable(TargetExecutionStateful.class, process.getPath())); + TargetExecutionState st = waitOn(state.waitUntil(s -> s == TargetExecutionState.STOPPED)); + assertTrue(st.isAlive()); + waitOn(resumable.resume()); + retryVoid(() -> assertFalse(DebugModelConventions.isProcessAlive(process)), + List.of(AssertionError.class)); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioCloneExitTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioCloneExitTest.java new file mode 100644 index 0000000000..7ba6f8a200 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioCloneExitTest.java @@ -0,0 +1,32 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import ghidra.dbg.test.AbstractDebuggerModelScenarioCloneExitTest; + +public abstract class AbstractModelForLldbScenarioCloneExitTest + extends AbstractDebuggerModelScenarioCloneExitTest { + + @Override + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.CLONE_EXIT; + } + + @Override + protected String getBreakpointExpression() { + return "work"; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioMemoryTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioMemoryTest.java new file mode 100644 index 0000000000..c37ec0c817 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioMemoryTest.java @@ -0,0 +1,73 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; + +import java.util.List; +import java.util.Objects; + +import agent.lldb.model.impl.LldbModelTargetProcessImpl; +import ghidra.dbg.target.*; +import ghidra.dbg.test.AbstractDebuggerModelScenarioMemoryTest; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; + +public abstract class AbstractModelForLldbScenarioMemoryTest + extends AbstractDebuggerModelScenarioMemoryTest { + + @Override + protected MacOSSpecimen getSpecimen() { + return MacOSSpecimen.PRINT; + } + + protected String getSymbolName() { + return "overwrite"; + } + + @Override + protected Address getAddressToWrite(TargetProcess process) throws Throwable { + // It seems this is the only test case that exercises module symbols. + TargetObject session = process.getParent().getParent(); + List modulePath = PathUtils.extend(session.getPath(), + PathUtils.parse("Modules[" + getSpecimen().getBinModuleKey() + "]")); + TargetObject container = + Objects.requireNonNull(m.findContainer(TargetSymbol.class, modulePath)); + TargetSymbol symbol = + waitOn(container.fetchElements()).get(getSymbolName()).as(TargetSymbol.class); + return symbol.getValue(); + } + + @Override + protected byte[] getBytesToWrite() { + return "Speak".getBytes(); + } + + @Override + protected byte[] getExpectedBytes() { + return "Speak, World!".getBytes(); + } + + @Override + protected void verifyExpectedEffect(TargetProcess process) throws Throwable { + // TODO: Should (optional) exitCode be standardized on all models? + retryVoid(() -> { + String status = process.getTypedAttributeNowByName( + LldbModelTargetProcessImpl.EXIT_CODE_ATTRIBUTE_NAME, String.class, ""); + assertEquals("NONE", status); + }, List.of(AssertionError.class)); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioStackTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioStackTest.java new file mode 100644 index 0000000000..2c84db5edc --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioStackTest.java @@ -0,0 +1,67 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.assertEquals; + +import java.util.*; +import java.util.Map.Entry; + +import ghidra.dbg.target.*; +import ghidra.dbg.test.AbstractDebuggerModelScenarioStackTest; +import ghidra.dbg.util.PathUtils; +import ghidra.program.model.address.Address; + +public abstract class AbstractModelForLldbScenarioStackTest + extends AbstractDebuggerModelScenarioStackTest { + protected static List expectedSymbols = + List.of("break_here", "funcC", "funcB", "funcA"); + protected NavigableMap symbolsByAddress = new TreeMap<>(); + + @Override + protected MacOSSpecimen getSpecimen() { + return MacOSSpecimen.STACK; + } + + @Override + protected String getBreakpointExpression() { + return "break_here"; + } + + @Override + protected void postLaunch(TargetProcess process) throws Throwable { + TargetObject session = process.getParent().getParent(); + TargetModuleContainer modules = m.find(TargetModuleContainer.class, session.getPath()); + // NB. NEVER is recommended resync mode for modules container + // It's not guaranteed to come before process is alive, though + TargetModule binMod = (TargetModule) waitOn(m.getAddedWaiter() + .wait(PathUtils.index(modules.getPath(), getSpecimen().getBinModuleKey()))); + + // NB. this heuristic assumes all function bodies are contiguous in memory + TargetSymbolNamespace symbols = m.find(TargetSymbolNamespace.class, binMod.getPath()); + // NB. ONCE is recommended resync mode for module symbols + for (Entry entry : waitOn(symbols.fetchElements()) + .entrySet()) { + symbolsByAddress.put(entry.getValue().as(TargetSymbol.class).getValue(), + entry.getKey()); + } + } + + @Override + protected void validateFramePC(int index, Address pc) { + assertEquals(expectedSymbols.get(index), symbolsByAddress.floorEntry(pc).getValue()); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioX64RegistersTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioX64RegistersTest.java new file mode 100644 index 0000000000..7b5eaecd84 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbScenarioX64RegistersTest.java @@ -0,0 +1,70 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.assertTrue; + +import java.util.*; + +import agent.lldb.model.impl.LldbModelTargetProcessImpl; +import ghidra.dbg.target.*; +import ghidra.dbg.test.AbstractDebuggerModelScenarioRegistersTest; + +public abstract class AbstractModelForLldbScenarioX64RegistersTest + extends AbstractDebuggerModelScenarioRegistersTest { + + @Override + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.REGISTERS; + } + + @Override + protected String getBreakpointExpression() { + return "break_here"; + } + + @Override + protected Map getRegisterWrites() { + // RCX is first parameter `val` of break_here(int val) + return Map.of("rcx", arr("0000000000000041")); + } + + @Override + protected void verifyExpectedEffect(TargetProcess process) throws Throwable { + long status = process.getTypedAttributeNowByName( + LldbModelTargetProcessImpl.EXIT_CODE_ATTRIBUTE_NAME, Long.class, 0L); + // TODO: This really shouldn't return 0 - possible race? + assertTrue(status == 0x41 || status == 0); + } + + @Override + protected void performRegisterWrites(TargetObject target, Map toWrite) + throws Throwable { + TargetRegisterContainer c = Objects.requireNonNull( + m.findWithIndex(TargetRegisterContainer.class, "0", target.getPath())); + Map, TargetRegisterBank> banks = + m.findAll(TargetRegisterBank.class, c.getPath(), true); + for (String name : toWrite.keySet()) { + for (TargetRegisterBank bank : banks.values()) { + Map, TargetRegister> regs = m.findAll(TargetRegister.class, + bank.getPath(), pred -> pred.applyIndices(name), false); + for (TargetRegister reg : regs.values()) { + waitOn(bank.writeRegister(reg, toWrite.get(name))); + } + } + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSessionActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSessionActivationTest.java new file mode 100644 index 0000000000..7a3e6ec838 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSessionActivationTest.java @@ -0,0 +1,182 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; +import static org.junit.Assume.*; + +import java.math.BigInteger; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.junit.Test; + +import SWIG.SBTarget; +import agent.lldb.model.iface2.LldbModelTargetSession; +import generic.Unique; +import ghidra.dbg.target.*; +import ghidra.dbg.test.AbstractDebuggerModelActivationTest; +import ghidra.dbg.util.PathPattern; + +public abstract class AbstractModelForLldbSessionActivationTest + extends AbstractDebuggerModelActivationTest { + + protected abstract PathPattern getSessionPattern(); + + protected int getCount() { + return 3; + } + + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.PRINT; + } + + public abstract List getExpectedSessionPath(); + + public abstract String getIndexFromCapture(String line); + + @Override + protected Set getActivatableThings() throws Throwable { + DebuggerTestSpecimen specimen = getSpecimen(); + TargetLauncher launcher = findLauncher(); + int count = getCount(); + for (int i = 0; i < count; i++) { + waitOn(launcher.launch(specimen.getLauncherArgs())); + } + + waitSettled(m.getModel(), 200); + + return retry(() -> { + Map, TargetInterpreter> found = + m.findAll(TargetInterpreter.class, getExpectedSessionPath(), true); + assertEquals(count, found.size()); + return Set.copyOf(found.values()); + }, List.of(AssertionError.class)); + } + + @Override + protected void activateViaInterpreter(TargetObject obj, TargetInterpreter interpreter) + throws Throwable { + LldbModelTargetSession session = (LldbModelTargetSession) obj; + SBTarget sbt = (SBTarget) session.getModelObject(); + BigInteger procId = sbt.GetProcess().GetProcessID(); + String output = waitOn(interpreter.executeCapture("target list")); + String[] split = output.split("\n"); + String index = null; + for (String l : split) { + if (l.contains(procId.toString(10))) { + index = getIndexFromCapture(l); + break; + } + } + assertNotEquals(index, null); + waitOn(interpreter.execute("target select " + index)); + } + + public abstract String getIdFromCapture(String line); + + @Override + protected void assertActiveViaInterpreter(TargetObject expected, TargetInterpreter interpreter) + throws Throwable { + String output = waitOn(interpreter.executeCapture("target list")); + String line = Unique.assertOne(Stream.of(output.split("\n")) + .filter(l -> l.trim().startsWith("*")) + .collect(Collectors.toList())).trim(); + String procId = getIdFromCapture(line); + String expId = getSessionPattern().matchIndices(expected.getPath()).get(0); + assertEquals(Long.parseLong(expId, 16), Long.parseLong(procId)); + } + + protected TargetInterpreter findInterpreter(TargetObject obj) throws Throwable { + return (TargetInterpreter) obj; + } + + // All of the original tests assertSuccessorOrExact on focusScope + // which is not true in the lldb case + + @Override + @Test + public void testDefaultFocusIsAsExpected() throws Throwable { + List expectedDefaultFocus = getExpectedDefaultActivePath(); + assumeNotNull(expectedDefaultFocus); + m.build(); + + Set activatable = getActivatableThings(); + Map, TargetInterpreter> found = + m.findAll(TargetInterpreter.class, getExpectedSessionPath(), true); + // The default must be one of the activatable objects + Object[] keys = found.keySet().toArray(); + TargetObject obj = found.get(keys[keys.length - 1]); + assertTrue(activatable.contains(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + } + + @Override + @Test + public void testActivateEachOnce() throws Throwable { + m.build(); + + TargetActiveScope activeScope = findActiveScope(); + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + } + + } + + @Override + @Test + public void testActivateEachTwice() throws Throwable { + m.build(); + + TargetActiveScope activeScope = findActiveScope(); + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + waitOn(activeScope.requestActivation(obj)); + if (m.hasInterpreter()) { + TargetInterpreter interpreter = findInterpreter(obj); + assertActiveViaInterpreter(obj, interpreter); + } + } + } + + @Override + @Test + public void testActivateEachViaInterpreter() throws Throwable { + assumeTrue(m.hasInterpreter()); + m.build(); + + Set activatable = getActivatableThings(); + for (TargetObject obj : activatable) { + TargetInterpreter interpreter = findInterpreter(obj); + activateViaInterpreter(obj, interpreter); + assertActiveViaInterpreter(obj, interpreter); + } + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSteppableTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSteppableTest.java new file mode 100644 index 0000000000..4bf9e5b95b --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbSteppableTest.java @@ -0,0 +1,39 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import java.util.List; + +import ghidra.dbg.test.*; + +public abstract class AbstractModelForLldbSteppableTest extends AbstractDebuggerModelSteppableTest + implements ProvidesTargetViaLaunchSpecimen { + + @Override + public AbstractDebuggerModelTest getTest() { + return this; + } + + @Override + public List getExpectedSteppablePath(List threadPath) { + return threadPath; + } + + @Override + public DebuggerTestSpecimen getLaunchSpecimen() { + return MacOSSpecimen.PRINT; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbThreadActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbThreadActivationTest.java new file mode 100644 index 0000000000..bf86a63feb --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbThreadActivationTest.java @@ -0,0 +1,87 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.*; + +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import SWIG.SBThread; +import agent.lldb.model.iface2.LldbModelTargetThread; +import generic.Unique; +import ghidra.dbg.target.*; +import ghidra.dbg.util.PathPattern; + +public abstract class AbstractModelForLldbThreadActivationTest + extends AbstractModelForLldbActivationTest { + + protected abstract PathPattern getThreadPattern(); + + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.PRINT; + } + + protected int getCount() { + return 1; + } + + protected abstract List getExpectedSessionPath(); + + @Override + protected Set getActivatableThings() throws Throwable { + DebuggerTestSpecimen specimen = getSpecimen(); + TargetLauncher launcher = findLauncher(); + int count = getCount(); + for (int i = 0; i < count; i++) { + waitOn(launcher.launch(specimen.getLauncherArgs())); + } + + waitSettled(m.getModel(), 200); + + return retry(() -> { + Map, TargetThread> found = + m.findAll(TargetThread.class, getExpectedSessionPath(), true); + assertEquals(count, found.size()); + return Set.copyOf(found.values()); + }, List.of(AssertionError.class)); + } + + @Override + protected void activateViaInterpreter(TargetObject obj, TargetInterpreter interpreter) + throws Throwable { + LldbModelTargetThread thread = (LldbModelTargetThread) obj; + SBThread sbt = (SBThread) thread.getModelObject(); + long index = sbt.GetIndexID(); + waitOn(interpreter.execute("thread select " + index)); + } + + public abstract String getIdFromCapture(String line); + + @Override + protected void assertActiveViaInterpreter(TargetObject expected, TargetInterpreter interpreter) + throws Throwable { + String output = waitOn(interpreter.executeCapture("thread list")); + String line = Unique.assertOne(Stream.of(output.split("\n")) + .filter(l -> l.trim().startsWith("*")) + .collect(Collectors.toList())).trim(); + String threadId = getIdFromCapture(line); + String expId = getThreadPattern().matchIndices(expected.getPath()).get(2); + assertEquals(expId, threadId); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbX64RegistersTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbX64RegistersTest.java new file mode 100644 index 0000000000..b122d17d00 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForLldbX64RegistersTest.java @@ -0,0 +1,167 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeNotNull; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Map.Entry; + +import org.junit.Test; + +import ghidra.dbg.target.TargetObject; +import ghidra.dbg.target.TargetRegister; +import ghidra.dbg.target.TargetRegisterBank; +import ghidra.dbg.target.TargetRegisterContainer; +import ghidra.dbg.test.AbstractDebuggerModelRegistersTest; +import ghidra.dbg.test.AbstractDebuggerModelTest; +import ghidra.dbg.test.ProvidesTargetViaLaunchSpecimen; +import ghidra.dbg.util.PathUtils; + +public abstract class AbstractModelForLldbX64RegistersTest + extends AbstractDebuggerModelRegistersTest + implements ProvidesTargetViaLaunchSpecimen { + public final Map REG_VALS = Map.ofEntries( + Map.entry("rax", arr("0123456789abcdef")), + Map.entry("mm0", arr("0123456789abcdef"))); + + @Override + public AbstractDebuggerModelTest getTest() { + return this; + } + + @Override + public boolean isRegisterBankAlsoContainer() { + return false; + } + + @Override + public List getExpectedRegisterBankPath(List threadPath) { + return PathUtils.extend(threadPath, PathUtils.parse("Stack[0].Registers")); + } + + @Override + public Map getRegisterWrites() { + return REG_VALS; + } + + @Override + public DebuggerTestSpecimen getLaunchSpecimen() { + return MacOSSpecimen.PRINT; + } + + @Override + @Test + public void testRegistersHaveExpectedSizes() throws Throwable { + m.build(); + + TargetObject target = maybeSubstituteThread(obtainTarget()); + Map, TargetRegisterBank> banks = findRegisterBanks(target.getPath()); + for (TargetRegisterBank bank : banks.values()) { + List path = bank.getPath(); + for (Entry ent : getRegisterWrites().entrySet()) { + String regName = ent.getKey(); + Map, TargetRegister> regs = m.findAll(TargetRegister.class, + path, pred -> pred.applyIndices(regName), false); + for (TargetRegister reg : regs.values()) { + assertEquals(ent.getValue().length, (reg.getBitLength() + 7) / 8); + } + } + } + } + + @Override + @Test + public void testRegisterBankIsWhereExpected() throws Throwable { + m.build(); + + TargetObject target = maybeSubstituteThread(obtainTarget()); + List expectedRegisterBankPath = + getExpectedRegisterBankPath(target.getPath()); + assumeNotNull(expectedRegisterBankPath); + + Map, TargetRegisterBank> banks = findRegisterBanks(target.getPath()); + for (TargetRegisterBank bank : banks.values()) { + List path = bank.getPath(); + assertTrue(path.containsAll(expectedRegisterBankPath)); + } + } + + @Override + @Test + public void testReadRegisters() throws Throwable { + m.build(); + + TargetObject target = maybeSubstituteThread(obtainTarget()); + TargetRegisterContainer c = Objects.requireNonNull( + m.findWithIndex(TargetRegisterContainer.class, "0", target.getPath())); + Map, TargetRegisterBank> banks = + m.findAll(TargetRegisterBank.class, c.getPath(), true); + Map exp = getRegisterWrites(); + Map read = new HashMap<>(); + for (TargetRegisterBank bank : banks.values()) { + for (String name : exp.keySet()) { + Map, TargetRegister> regs = m.findAll(TargetRegister.class, + bank.getPath(), pred -> pred.applyIndices(name), false); + for (TargetRegister reg : regs.values()) { + byte[] bytes = waitOn(bank.readRegister(reg)); + read.put(name, bytes); + expectRegisterObjectValue(bank, name, bytes); + assertEquals(exp.get(name).length, bytes.length); + } + } + } + assertEquals("Not all registers were read, or extras were read", exp.keySet(), + read.keySet()); + } + + @Override + @Test + public void testWriteRegisters() throws Throwable { + m.build(); + + TargetObject target = maybeSubstituteThread(obtainTarget()); + TargetRegisterContainer c = Objects.requireNonNull( + m.findWithIndex(TargetRegisterContainer.class, "0", target.getPath())); + Map, TargetRegisterBank> banks = + m.findAll(TargetRegisterBank.class, c.getPath(), true); + Map write = getRegisterWrites(); + Map read = new HashMap<>(); + for (TargetRegisterBank bank : banks.values()) { + for (String name : write.keySet()) { + Map, TargetRegister> regs = m.findAll(TargetRegister.class, + bank.getPath(), pred -> pred.applyIndices(name), false); + for (TargetRegister reg : regs.values()) { + waitOn(bank.writeRegister(reg, write.get(name))); + + // NB. This only really tests the cache, if applicable. A scenario checks for efficacy. + byte[] bytes = waitOn(bank.readRegister(reg)); + read.put(name, bytes); + expectRegisterObjectValue(bank, name, bytes); + assertArrayEquals(write.get(name), bytes); + } + } + } + assertEquals("Not all registers were read, or extras were read", write.keySet(), + read.keySet()); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForlldbScenarioForkExitTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForlldbScenarioForkExitTest.java new file mode 100644 index 0000000000..8bd1071e7f --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/AbstractModelForlldbScenarioForkExitTest.java @@ -0,0 +1,49 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import ghidra.dbg.target.TargetEnvironment; +import ghidra.dbg.test.AbstractDebuggerModelScenarioForkExitTest; + +public abstract class AbstractModelForlldbScenarioForkExitTest + extends AbstractDebuggerModelScenarioForkExitTest { + + @Override + protected DebuggerTestSpecimen getSpecimen() { + return MacOSSpecimen.FORK_EXIT; + } + + @Override + protected String getParentBreakpointExpression() { + return "func"; + } + + @Override + protected String getChildBreakpointExpression() { + return "func"; + } + + @Override + public void assertEnvironment(TargetEnvironment environment) { + assertEquals("x86_64", environment.getArchitecture()); + //assertTrue(environment.getOperatingSystem().startsWith("macos")); + assertEquals("little", environment.getEndian()); + assertTrue(environment.getDebugger().toLowerCase().contains("lldb")); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/MacOSSpecimen.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/MacOSSpecimen.java new file mode 100644 index 0000000000..efffc2ddbf --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/MacOSSpecimen.java @@ -0,0 +1,140 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model; + +import java.io.File; +import java.util.*; + +import agent.lldb.model.iface2.LldbModelTargetAvailable; +import ghidra.dbg.target.*; +import ghidra.dbg.target.TargetLauncher.TargetCmdLineLauncher; +import ghidra.dbg.test.AbstractDebuggerModelTest; +import ghidra.dbg.test.AbstractDebuggerModelTest.DebuggerTestSpecimen; +import ghidra.dbg.testutil.DebuggerModelTestUtils; +import ghidra.dbg.testutil.DummyProc; + +// codesign --entitlements debuggee-entitlement.xml -fs gdbcert ./xclock-x86_64 + +public enum MacOSSpecimen implements DebuggerTestSpecimen, DebuggerModelTestUtils { + SPIN { + @Override + String getCommandLine() { + return DummyProc.which("expSpin"); + } + }, + FORK_EXIT { + @Override + String getCommandLine() { + return DummyProc.which("expFork"); + } + }, + CLONE_EXIT { + @Override + String getCommandLine() { + return DummyProc.which("expCloneExit"); + } + }, + PRINT { + @Override + String getCommandLine() { + return DummyProc.which("expPrint"); + } + }, + REGISTERS { + @Override + String getCommandLine() { + return DummyProc.which("expRegisters"); + } + }, + STACK { + @Override + String getCommandLine() { + return DummyProc.which("expStack"); + } + }, + CREATE_PROCESS { + @Override + String getCommandLine() { + return DummyProc.which("expCreateProcess"); + } + }, + CREATE_THREAD_EXIT { + @Override + String getCommandLine() { + return DummyProc.which("expCreateThreadExit"); + } + }; + + abstract String getCommandLine(); + + @Override + public DummyProc runDummy() throws Throwable { + // This is not great, but.... + return DummyProc.run(getCommandLine().split("\\s+")); + } + + @Override + public Map getLauncherArgs() { + return Map.ofEntries(Map.entry(TargetCmdLineLauncher.CMDLINE_ARGS_NAME, getCommandLine())); + } + + @Override + public List getLaunchScript() { + // NB: this will not appear on the process list until cont + return List.of(".create " + getCommandLine() + "; g"); + } + + protected static String getShortName(String fullPath) { + if (fullPath == null) { + return null; + } + return new File(fullPath).getName(); + } + + public String getBinModuleKey() { + String moduleName = getBinModuleName(); + if (moduleName.endsWith(".exe")) { + return moduleName.substring(0, moduleName.length() - ".exe".length()); + } + return moduleName; + } + + public String getBinModuleName() { + return getShortName(getCommandLine().split("\\s+")[0]); + } + + @Override + public boolean isRunningIn(TargetProcess process, AbstractDebuggerModelTest test) + throws Throwable { + // NB. ShellUtils.parseArgs removes the \s. Not good. + String expected = getBinModuleName(); + TargetObject session = process.getParent().getParent(); + Collection modules = + test.m.findAll(TargetModule.class, session.getPath(), true).values(); + return modules.stream() + .anyMatch(m -> expected.equalsIgnoreCase(getShortName(m.getModuleName()))); + } + + @Override + public boolean isAttachable(DummyProc dummy, TargetAttachable attachable, + AbstractDebuggerModelTest test) throws Throwable { + waitOn(attachable.fetchAttributes()); + long pid = + attachable.getTypedAttributeNowByName(LldbModelTargetAvailable.PID_ATTRIBUTE_NAME, + Long.class, -1L); + return pid == dummy.pid; + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmLldbModelHost.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmLldbModelHost.java new file mode 100644 index 0000000000..4baeae0b9a --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmLldbModelHost.java @@ -0,0 +1,29 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.LldbInJvmDebuggerModelFactory; +import agent.lldb.lldb.LLDBTest; +import agent.lldb.model.AbstractLldbModelHost; +import ghidra.dbg.DebuggerModelFactory; + +public class InVmLldbModelHost extends AbstractLldbModelHost { + @Override + public DebuggerModelFactory getModelFactory() { + LLDBTest.assumeLibLoadable(); + return new LldbInJvmDebuggerModelFactory(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbBreakpointsTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbBreakpointsTest.java new file mode 100644 index 0000000000..8a26fe61ea --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbBreakpointsTest.java @@ -0,0 +1,114 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import org.junit.Ignore; +import org.junit.Test; + +import agent.lldb.model.AbstractModelForLldbBreakpointsTest; +import ghidra.dbg.target.TargetBreakpointSpec.TargetBreakpointKind; +import ghidra.dbg.util.PathPattern; +import ghidra.dbg.util.PathUtils; + +public class InVmModelForLldbBreakpointsTest extends AbstractModelForLldbBreakpointsTest { + + @Override + protected PathPattern getBreakPattern() { + return new PathPattern(PathUtils.parse("Sessions[].Debug.Breakpoints[]")); + } + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + + // The following tests are being ignored because the target doesn't generate + // breakpointAdded/Modified events on placement, only on resume + + @Override + @Ignore + @Test + public void testPlaceSoftwareExecuteBreakpointViaInterpreter() throws Throwable { + super.testPlaceSoftwareExecuteBreakpointViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testPlaceHardwareExecuteBreakpointViaInterpreter() throws Throwable { + super.testPlaceHardwareExecuteBreakpointViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testPlaceReadBreakpointViaInterpreter() throws Throwable { + super.testPlaceReadBreakpointViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testPlaceWriteBreakpointViaInterpreter() throws Throwable { + super.testPlaceWriteBreakpointViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testDeleteBreakpointsViaInterpreter() throws Throwable { + super.testDeleteBreakpointsViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testDeleteBreakpointLocationsViaInterpreter() throws Throwable { + super.testDeleteBreakpointLocationsViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testToggleBreakpointsViaInterpreter() throws Throwable { + super.testToggleBreakpointsViaInterpreter(); + } + + @Override + @Ignore + @Test + public void testToggleBreakpointLocationsViaInterpreter() throws Throwable { + super.testToggleBreakpointLocationsViaInterpreter(); + } + + + // These have a similar problem enabled/disabled & cleared for watchpoints + // appear to occur on resume + + @Override + @Ignore + @Test + public void testDeleteBreakpoints() throws Throwable { + super.testDeleteBreakpoints(); + } + + @Override + @Ignore + @Test + public void testToggleBreakpoints() throws Throwable { + super.testToggleBreakpoints(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFactoryTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFactoryTest.java new file mode 100644 index 0000000000..ff414fc161 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFactoryTest.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbFactoryTest; + +public class InVmModelForLldbFactoryTest extends AbstractModelForLldbFactoryTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFrameActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFrameActivationTest.java new file mode 100644 index 0000000000..4ff753fd0e --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbFrameActivationTest.java @@ -0,0 +1,47 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import java.util.List; + +import agent.lldb.model.AbstractModelForLldbFrameActivationTest; +import ghidra.dbg.util.PathPattern; +import ghidra.dbg.util.PathUtils; + +public class InVmModelForLldbFrameActivationTest + extends AbstractModelForLldbFrameActivationTest { + + protected PathPattern getStackPattern() { + return new PathPattern(PathUtils.parse("Sessions[].Processes[].Threads[].Stack[]")); + } + + @Override + protected List getExpectedDefaultActivePath() { + return PathUtils.parse("Sessions[].Processes[].Threads[].Stack[0]"); + } + + public String getIdFromCapture(String line) { + // Syntax "frame #N:..." + String[] split = line.split(":"); + split = split[0].split("#"); + return split[1]; + } + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbInterpreterTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbInterpreterTest.java new file mode 100644 index 0000000000..69ef89b569 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbInterpreterTest.java @@ -0,0 +1,64 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import org.junit.Ignore; +import org.junit.Test; + +import agent.lldb.model.AbstractModelForLldbInterpreterTest; +import ghidra.dbg.test.ProvidesTargetViaLaunchSpecimen; + +public class InVmModelForLldbInterpreterTest extends AbstractModelForLldbInterpreterTest + implements ProvidesTargetViaLaunchSpecimen { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + + // Not sure what the behavior for these two should be... + // "file target" will change the process and this isn't handled + // also getLaunchScript in MacOSSpecimen is currently wrong + @Override + @Ignore + @Test + public void testLaunchViaInterpreterShowsInProcessContainer() throws Throwable { + super.testLaunchViaInterpreterShowsInProcessContainer(); + } + + @Override + @Ignore + @Test + public void testAttachViaInterpreterShowsInProcessContainer() throws Throwable { + super.testAttachViaInterpreterShowsInProcessContainer(); + } + + // "quit" does not have the desired behavior + @Override + @Ignore + @Test + public void testExecuteQuit() throws Throwable { + super.testExecuteQuit(); + } + + @Override + @Ignore + @Test + public void testInterpreterIsWhereExpected() throws Throwable { + super.testInterpreterIsWhereExpected(); + } + +} + diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbProcessActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbProcessActivationTest.java new file mode 100644 index 0000000000..392ce4b8c3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbProcessActivationTest.java @@ -0,0 +1,60 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import java.util.List; + +import agent.lldb.model.AbstractModelForLldbProcessActivationTest; +import ghidra.dbg.util.PathPattern; +import ghidra.dbg.util.PathUtils; + +public class InVmModelForLldbProcessActivationTest + extends AbstractModelForLldbProcessActivationTest { + + @Override + public List getExpectedSessionPath() { + return PathUtils.parse("Sessions[]"); + } + + protected PathPattern getProcessPattern() { + return new PathPattern(PathUtils.parse("Sessions[].Processes[]")); + } + + @Override + protected List getExpectedDefaultActivePath() { + return PathUtils.parse("Sessions[3].Processes[]"); + } + + public String getIdFromCapture(String line) { + // Syntax "* process #N:..." + String[] split = line.split("pid="); + split = split[1].split(","); + return split[0]; + } + + public String getIndexFromCapture(String line) { + // Syntax "* target #N:..." + String[] split = line.split("#"); + split = split[1].split(":"); + return split[0]; + } + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootAttacherTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootAttacherTest.java new file mode 100644 index 0000000000..e2fecd42b3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootAttacherTest.java @@ -0,0 +1,40 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import org.junit.Ignore; +import org.junit.Test; + +import agent.lldb.model.AbstractModelForLldbRootAttacherTest; + +public class InVmModelForLldbRootAttacherTest extends AbstractModelForLldbRootAttacherTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + + // NB: These tests need debugger rights, which means either: + // (1) on macos, codesigning the executables + // (2) on linux, "sudo su; echo 0 > /proc/sys/kernel/yama/ptrace_scope" + + @Override + @Ignore // test requires ability to attach by object & lldb version requires pid + @Test + public void testAttachByObjBogusThrowsException() throws Throwable { + super.testAttachByObjBogusThrowsException(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootLauncherTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootLauncherTest.java new file mode 100644 index 0000000000..f8738b2676 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbRootLauncherTest.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbRootLauncherTest; + +public class InVmModelForLldbRootLauncherTest extends AbstractModelForLldbRootLauncherTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioCloneExitTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioCloneExitTest.java new file mode 100644 index 0000000000..598af567dd --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioCloneExitTest.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbScenarioCloneExitTest; + +public class InVmModelForLldbScenarioCloneExitTest + extends AbstractModelForLldbScenarioCloneExitTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioForkExitTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioForkExitTest.java new file mode 100644 index 0000000000..709e0c54f3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioForkExitTest.java @@ -0,0 +1,35 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import org.junit.Ignore; +import org.junit.Test; + +import agent.lldb.model.AbstractModelForlldbScenarioForkExitTest; + +public class InVmModelForLldbScenarioForkExitTest + extends AbstractModelForlldbScenarioForkExitTest { + + @Ignore("Specimen is currently defunct - lldb does not support fork/vfork yet") + @Test + public void testScenario() throws Throwable { + } + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioMemoryTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioMemoryTest.java new file mode 100644 index 0000000000..2ca2da1552 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioMemoryTest.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbScenarioMemoryTest; + +public class InVmModelForLldbScenarioMemoryTest extends AbstractModelForLldbScenarioMemoryTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioStackTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioStackTest.java new file mode 100644 index 0000000000..a0c43fbb70 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioStackTest.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbScenarioStackTest; + +public class InVmModelForLldbScenarioStackTest extends AbstractModelForLldbScenarioStackTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioX64RegistersTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioX64RegistersTest.java new file mode 100644 index 0000000000..f2bf7cf7b4 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbScenarioX64RegistersTest.java @@ -0,0 +1,26 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbScenarioX64RegistersTest; + +public class InVmModelForLldbScenarioX64RegistersTest + extends AbstractModelForLldbScenarioX64RegistersTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSessionActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSessionActivationTest.java new file mode 100644 index 0000000000..729f820906 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSessionActivationTest.java @@ -0,0 +1,60 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import java.util.List; + +import agent.lldb.model.AbstractModelForLldbSessionActivationTest; +import ghidra.dbg.util.PathPattern; +import ghidra.dbg.util.PathUtils; + +public class InVmModelForLldbSessionActivationTest + extends AbstractModelForLldbSessionActivationTest { + + @Override + public List getExpectedSessionPath() { + return PathUtils.parse("Sessions[]"); + } + + protected PathPattern getSessionPattern() { + return new PathPattern(PathUtils.parse("Sessions[]")); + } + + @Override + protected List getExpectedDefaultActivePath() { + return PathUtils.parse("Sessions[]"); + } + + public String getIndexFromCapture(String line) { + // Syntax "* target #N:..." + String[] split = line.split("#"); + split = split[1].split(":"); + return split[0]; + } + + public String getIdFromCapture(String line) { + // Syntax "* target #N:..." + String[] split = line.split("pid="); + split = split[1].split(","); + return split[0]; + } + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSteppableTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSteppableTest.java new file mode 100644 index 0000000000..6097991548 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbSteppableTest.java @@ -0,0 +1,25 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbSteppableTest; + +public class InVmModelForLldbSteppableTest extends AbstractModelForLldbSteppableTest { + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbThreadActivationTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbThreadActivationTest.java new file mode 100644 index 0000000000..d3c3625184 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbThreadActivationTest.java @@ -0,0 +1,55 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import java.util.List; + +import agent.lldb.model.AbstractModelForLldbThreadActivationTest; +import ghidra.dbg.util.PathPattern; +import ghidra.dbg.util.PathUtils; + +public class InVmModelForLldbThreadActivationTest + extends AbstractModelForLldbThreadActivationTest { + + @Override + public List getExpectedSessionPath() { + return PathUtils.parse("Sessions[]"); + } + + protected PathPattern getThreadPattern() { + return new PathPattern(PathUtils.parse("Sessions[].Processes[].Threads[]")); + } + + @Override + protected List getExpectedDefaultActivePath() { + return PathUtils.parse("Sessions[].Processes[].Threads[]"); + } + + public String getIdFromCapture(String line) { + // Syntax "* thread #N:..." + String[] split = line.split("tid = "); + split = split[1].split(","); + Integer decode = Integer.decode(split[0]); + return Integer.toHexString(decode); + } + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + + +} diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbX64RegistersTest.java b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbX64RegistersTest.java new file mode 100644 index 0000000000..57a3a481a3 --- /dev/null +++ b/Ghidra/Debug/Debugger-agent-lldb/src/test/java/agent/lldb/model/invm/InVmModelForLldbX64RegistersTest.java @@ -0,0 +1,27 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package agent.lldb.model.invm; + +import agent.lldb.model.AbstractModelForLldbX64RegistersTest; + +public class InVmModelForLldbX64RegistersTest extends AbstractModelForLldbX64RegistersTest { + + @Override + public ModelHost modelHost() throws Throwable { + return new InVmLldbModelHost(); + } + +} diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java index e4dd775a17..9ef42fd296 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProvider.java @@ -15,8 +15,7 @@ */ package ghidra.app.plugin.core.debug.gui.listing; -import static ghidra.app.plugin.core.debug.gui.DebuggerResources.ICON_REGISTER_MARKER; -import static ghidra.app.plugin.core.debug.gui.DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS; +import static ghidra.app.plugin.core.debug.gui.DebuggerResources.*; import java.awt.Color; import java.awt.datatransfer.Transferable; diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/AbstractLldbDebuggerMappingOffer.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/AbstractLldbDebuggerMappingOffer.java new file mode 100644 index 0000000000..880710196a --- /dev/null +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/AbstractLldbDebuggerMappingOffer.java @@ -0,0 +1,41 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidra.app.plugin.core.debug.platform; + +import java.util.Collection; + +import ghidra.app.plugin.core.debug.mapping.AbstractDebuggerMappingOffer; +import ghidra.app.plugin.core.debug.mapping.DebuggerTargetTraceMapper; +import ghidra.dbg.target.TargetObject; +import ghidra.program.model.lang.*; + +public class AbstractLldbDebuggerMappingOffer extends AbstractDebuggerMappingOffer { + public AbstractLldbDebuggerMappingOffer(TargetObject target, int confidence, + String description, LanguageID langID, CompilerSpecID csID, + Collection extraRegNames) { + super(target, confidence, description, langID, csID, extraRegNames); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames); + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } +} diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbArmDebuggerMappingOpinion.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbArmDebuggerMappingOpinion.java new file mode 100644 index 0000000000..394aa36014 --- /dev/null +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbArmDebuggerMappingOpinion.java @@ -0,0 +1,84 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidra.app.plugin.core.debug.platform; + +import java.util.Set; + +import ghidra.app.plugin.core.debug.mapping.*; +import ghidra.dbg.target.*; +import ghidra.program.model.lang.*; +import ghidra.util.Msg; + +public class LldbArmDebuggerMappingOpinion implements DebuggerMappingOpinion { + protected static final LanguageID LANG_ID_AARCH64 = new LanguageID("AARCH64:LE:64:v8A"); + protected static final CompilerSpecID COMP_ID_GCC = new CompilerSpecID("gcc"); + + protected static class LldbI386X86_64RegisterMapper extends DefaultDebuggerRegisterMapper { + public LldbI386X86_64RegisterMapper(CompilerSpec cSpec, + TargetRegisterContainer targetRegContainer) { + super(cSpec, targetRegContainer, false); + } + + @Override + protected String normalizeName(String name) { + name = super.normalizeName(name); + if ("rflags".equals(name)) { + return "eflags"; + } + return name; + } + } + + protected static class LldbAarch64MacosOffer extends AbstractLldbDebuggerMappingOffer { + public LldbAarch64MacosOffer(TargetProcess process) { + super(process, 50, "AARCH64/LLDB on macos", LANG_ID_AARCH64, COMP_ID_GCC, + Set.of("cpsr")); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames) { + @Override + protected DebuggerRegisterMapper createRegisterMapper( + TargetRegisterContainer registers) { + return new LldbI386X86_64RegisterMapper(cSpec, registers); + } + }; + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } + } + + @Override + public Set offersForEnv(TargetEnvironment env, TargetProcess process) { + if (!env.getDebugger().toLowerCase().contains("lldb")) { + return Set.of(); + } + String arch = env.getArchitecture(); + boolean is64Bit = arch.contains("AARCH64"); + String os = env.getOperatingSystem(); + if (os.contains("macos")) { + if (is64Bit) { + Msg.info(this, "Using os=" + os + " arch=" + arch); + return Set.of(new LldbAarch64MacosOffer(process)); + } + } + return Set.of(); + } +} diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbDebuggerProgramLaunchOpinion.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbDebuggerProgramLaunchOpinion.java new file mode 100644 index 0000000000..d0dae48268 --- /dev/null +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbDebuggerProgramLaunchOpinion.java @@ -0,0 +1,118 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidra.app.plugin.core.debug.platform; + +import java.util.*; + +import ghidra.app.plugin.core.debug.service.model.launch.*; +import ghidra.app.services.DebuggerModelService; +import ghidra.dbg.DebuggerModelFactory; +import ghidra.dbg.target.TargetLauncher.TargetCmdLineLauncher; +import ghidra.dbg.target.TargetMethod.ParameterDescription; +import ghidra.dbg.util.PathUtils; +import ghidra.framework.plugintool.PluginTool; +import ghidra.program.model.listing.Program; + +public class LldbDebuggerProgramLaunchOpinion implements DebuggerProgramLaunchOpinion { + protected static abstract class AbstractLldbDebuggerProgramLaunchOffer + extends AbstractDebuggerProgramLaunchOffer { + + public AbstractLldbDebuggerProgramLaunchOffer(Program program, PluginTool tool, + DebuggerModelFactory factory) { + super(program, tool, factory); + } + + @Override + public String getMenuParentTitle() { + return "Debug " + program.getName(); + } + + @Override + protected List getLauncherPath() { + return PathUtils.parse(""); + } + + @Override + protected Map generateDefaultLauncherArgs( + Map> params) { + return Map.of(TargetCmdLineLauncher.CMDLINE_ARGS_NAME, program.getExecutablePath()); + } + } + + protected class InVmLldbDebuggerProgramLaunchOffer + extends AbstractLldbDebuggerProgramLaunchOffer { + private static final String FACTORY_CLS_NAME = "agent.lldb.LldbInJvmDebuggerModelFactory"; + + public InVmLldbDebuggerProgramLaunchOffer(Program program, PluginTool tool, + DebuggerModelFactory factory) { + super(program, tool, factory); + } + + @Override + public String getConfigName() { + return "IN-VM LLDB"; + } + + @Override + public String getMenuTitle() { + return "in LLDB locally IN-VM"; + } + } + + protected class GadpLldbDebuggerProgramLaunchOffer + extends AbstractLldbDebuggerProgramLaunchOffer { + private static final String FACTORY_CLS_NAME = + "agent.lldb.gadp.LldbLocalDebuggerModelFactory"; + + public GadpLldbDebuggerProgramLaunchOffer(Program program, PluginTool tool, + DebuggerModelFactory factory) { + super(program, tool, factory); + } + + @Override + public String getConfigName() { + return "GADP LLDB"; + } + + @Override + public String getMenuTitle() { + return "in LLDB locally via GADP"; + } + } + + @Override + public Collection getOffers(Program program, PluginTool tool, + DebuggerModelService service) { + String exe = program.getExecutablePath(); + if (exe == null || "".equals(exe.trim())) { + return List.of(); + } + List offers = new ArrayList<>(); + for (DebuggerModelFactory factory : service.getModelFactories()) { + if (!factory.isCompatible()) { + continue; + } + String clsName = factory.getClass().getName(); + if (clsName.equals(InVmLldbDebuggerProgramLaunchOffer.FACTORY_CLS_NAME)) { + offers.add(new InVmLldbDebuggerProgramLaunchOffer(program, tool, factory)); + } + else if (clsName.equals(GadpLldbDebuggerProgramLaunchOffer.FACTORY_CLS_NAME)) { + offers.add(new GadpLldbDebuggerProgramLaunchOffer(program, tool, factory)); + } + } + return offers; + } +} diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbTargetTraceMapper.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbTargetTraceMapper.java new file mode 100644 index 0000000000..d67860ee6f --- /dev/null +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbTargetTraceMapper.java @@ -0,0 +1,41 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidra.app.plugin.core.debug.platform; + +import java.util.Collection; + +import ghidra.app.plugin.core.debug.mapping.*; +import ghidra.dbg.target.*; +import ghidra.program.model.lang.*; + +public class LldbTargetTraceMapper extends AbstractDebuggerTargetTraceMapper { + public LldbTargetTraceMapper(TargetObject target, LanguageID langID, CompilerSpecID csId, + Collection extraRegNames) + throws LanguageNotFoundException, CompilerSpecNotFoundException { + super(target, langID, csId, extraRegNames); + } + + @Override + protected DebuggerMemoryMapper createMemoryMapper(TargetMemory memory) { + return new DefaultDebuggerMemoryMapper(language, memory.getModel()); + } + + @Override + protected DebuggerRegisterMapper createRegisterMapper( + TargetRegisterContainer registers) { + return new DefaultDebuggerRegisterMapper(cSpec, registers, false); + } +} diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbX86DebuggerMappingOpinion.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbX86DebuggerMappingOpinion.java new file mode 100644 index 0000000000..2d34c1a2d8 --- /dev/null +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/platform/LldbX86DebuggerMappingOpinion.java @@ -0,0 +1,177 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidra.app.plugin.core.debug.platform; + +import java.util.Set; + +import ghidra.app.plugin.core.debug.mapping.*; +import ghidra.dbg.target.*; +import ghidra.program.model.lang.*; +import ghidra.util.Msg; + +public class LldbX86DebuggerMappingOpinion implements DebuggerMappingOpinion { + protected static final LanguageID LANG_ID_X86 = new LanguageID("x86:LE:32:default"); + protected static final LanguageID LANG_ID_X86_64 = new LanguageID("x86:LE:64:default"); + protected static final CompilerSpecID COMP_ID_GCC = new CompilerSpecID("gcc"); + protected static final CompilerSpecID COMP_ID_VS = new CompilerSpecID("Visual Studio"); + + protected static class LldbI386X86_64RegisterMapper extends DefaultDebuggerRegisterMapper { + public LldbI386X86_64RegisterMapper(CompilerSpec cSpec, + TargetRegisterContainer targetRegContainer) { + super(cSpec, targetRegContainer, false); + } + } + + protected static class LldbI386MacosOffer extends AbstractDebuggerMappingOffer { + public LldbI386MacosOffer(TargetProcess process) { + super(process, 100, "LLDB on macos i386", LANG_ID_X86, COMP_ID_GCC, Set.of()); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames); + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } + } + + protected static class LldbI386LinuxOffer extends AbstractDebuggerMappingOffer { + public LldbI386LinuxOffer(TargetProcess process) { + super(process, 100, "LLDB on Linux i386", LANG_ID_X86, COMP_ID_GCC, Set.of()); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames); + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } + } + + protected static class LldbI386WindowsOffer extends AbstractLldbDebuggerMappingOffer { + public LldbI386WindowsOffer(TargetProcess process) { + super(process, 100, "LLDB on Cygwin/MSYS (Windows) i386", LANG_ID_X86, COMP_ID_VS, + Set.of()); + } + } + + protected static class LldbI386X86_64MacosOffer extends AbstractLldbDebuggerMappingOffer { + public LldbI386X86_64MacosOffer(TargetProcess process) { + super(process, 100, "LLDB on macos x86_64", LANG_ID_X86_64, COMP_ID_GCC, Set.of()); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames) { + @Override + protected DebuggerRegisterMapper createRegisterMapper( + TargetRegisterContainer registers) { + return new LldbI386X86_64RegisterMapper(cSpec, registers); + } + }; + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } + } + + protected static class LldbI386X86_64LinuxOffer extends AbstractLldbDebuggerMappingOffer { + public LldbI386X86_64LinuxOffer(TargetProcess process) { + super(process, 100, "LLDB on Linux x86_64", LANG_ID_X86_64, COMP_ID_GCC, Set.of()); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames) { + @Override + protected DebuggerRegisterMapper createRegisterMapper( + TargetRegisterContainer registers) { + return new LldbI386X86_64RegisterMapper(cSpec, registers); + } + }; + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } + } + + protected static class LldbI386X86_64WindowsOffer extends AbstractLldbDebuggerMappingOffer { + public LldbI386X86_64WindowsOffer(TargetProcess process) { + super(process, 100, "LLDB on Cygwin/MSYS2 (Windows) x64", LANG_ID_X86_64, COMP_ID_VS, + Set.of()); + } + + @Override + public DebuggerTargetTraceMapper take() { + try { + return new LldbTargetTraceMapper(target, langID, csID, extraRegNames) { + @Override + protected DebuggerRegisterMapper createRegisterMapper( + TargetRegisterContainer registers) { + return new LldbI386X86_64RegisterMapper(cSpec, registers); + } + }; + } + catch (LanguageNotFoundException | CompilerSpecNotFoundException e) { + throw new AssertionError(e); + } + } + } + + @Override + public Set offersForEnv(TargetEnvironment env, TargetProcess process) { + if (!env.getDebugger().toLowerCase().contains("lldb")) { + return Set.of(); + } + String arch = env.getArchitecture(); + if (arch.startsWith("i386")) { + return Set.of(); + } + boolean is64Bit = arch.contains("x86-64") || arch.contains("x64-32") || + arch.contains("x86_64") || arch.contains("x64_32"); + String os = env.getOperatingSystem(); + Msg.info(this, "Using os=" + os + " arch=" + arch); + if (os.contains("macos")) { + if (is64Bit) { + return Set.of(new LldbI386X86_64MacosOffer(process)); + } + return Set.of(new LldbI386MacosOffer(process)); + } + else if (os.contains("Linux") || os.contains("linux")) { + if (is64Bit) { + return Set.of(new LldbI386X86_64LinuxOffer(process)); + } + return Set.of(new LldbI386LinuxOffer(process)); + } + else if (os.contains("Cygwin")) { + if (is64Bit) { + return Set.of(new LldbI386X86_64WindowsOffer(process)); + } + return Set.of(new LldbI386WindowsOffer(process)); + } + return Set.of(); + } +} diff --git a/Ghidra/Debug/Framework-Debugging/build.gradle b/Ghidra/Debug/Framework-Debugging/build.gradle index 75ba6e34cd..2611e9e4a8 100644 --- a/Ghidra/Debug/Framework-Debugging/build.gradle +++ b/Ghidra/Debug/Framework-Debugging/build.gradle @@ -50,11 +50,15 @@ task testSpecimenLinux_x86_64 { //dependsOn 'expCloneSpinExecutable'//Linux_x86_64Executable' dependsOn 'expForkExecutable'//Linux_x86_64Executable' dependsOn 'expPrintLinux_x86_64Executable' + dependsOn 'expSpinLinux_x86_64Executable' //dependsOn 'expTypesExecutable'//Linux_x86_64Executable' dependsOn 'expRegistersLinux_x86_64Executable' dependsOn 'expStackLinux_x86_64Executable' } +// TODO: testSpecimenMac_x86_64 (Intel) +// will likely need to codesign them to grant debugee-entitlement + model { components { expCreateProcess(NativeExecutableSpec) { @@ -92,6 +96,7 @@ model { targetPlatform "win_x86_32" // TODO: Test on these } expSpin(NativeExecutableSpec) { + targetPlatform "linux_x86_64" targetPlatform "win_x86_64" targetPlatform "win_x86_32" // TODO: Test on these } diff --git a/Ghidra/Debug/Framework-Debugging/src/expSpin/c/expSpin.c b/Ghidra/Debug/Framework-Debugging/src/expSpin/c/expSpin.c index 1ac8f0ee19..d7eea169ae 100644 --- a/Ghidra/Debug/Framework-Debugging/src/expSpin/c/expSpin.c +++ b/Ghidra/Debug/Framework-Debugging/src/expSpin/c/expSpin.c @@ -13,10 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#ifdef WIN32 #include +#endif +#ifdef WIN32 int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) { for (int i = 0; i < 10; i++) { Sleep(1000); } } +#else +int main(int argc, char** argv) { + for (int i = 0; i < 10; i++) { + sleep(1); + } +} +#endif diff --git a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelRegistersTest.java b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelRegistersTest.java index fbbbfd037b..bc29621753 100644 --- a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelRegistersTest.java +++ b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelRegistersTest.java @@ -114,6 +114,15 @@ public abstract class AbstractDebuggerModelRegistersTest extends AbstractDebugge return m.findWithIndex(TargetRegisterBank.class, "0", seedPath); } + /** + * @param seedPath the path to the target or thread + * @return the set of banks + * @throws Throwable if anything goes wrong + */ + protected Map, TargetRegisterBank> findRegisterBanks(List seedPath) throws Throwable { + return m.findAll(TargetRegisterBank.class, seedPath, true); + } + @Test public void testRegisterBankIsWhereExpected() throws Throwable { m.build(); diff --git a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelScenarioRegistersTest.java b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelScenarioRegistersTest.java index 58b7756839..7e7e021eea 100644 --- a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelScenarioRegistersTest.java +++ b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractDebuggerModelScenarioRegistersTest.java @@ -75,6 +75,25 @@ public abstract class AbstractDebuggerModelScenarioRegistersTest extends Abstrac */ protected abstract Map getRegisterWrites(); + /** + * Perform the register writing portion of the test + * + *

+ * TODO: It is necessary to override this for LLDB, since it presents its registers in various + * "sub" banks. For it, we need to search the banks for each register to write, and delegate to + * the appropriate bank. + * + * @param toWrite + * + * @param the trapped thread + */ + protected void performRegisterWrites(TargetObject target, Map toWrite) + throws Throwable { + TargetRegisterBank bank = Objects + .requireNonNull(m.findWithIndex(TargetRegisterBank.class, "0", target.getPath())); + waitOn(bank.writeRegistersNamed(toWrite)); + } + /** * Verify, using {@link Assert}, that the target exhibited the effect of the register write * @@ -165,10 +184,8 @@ public abstract class AbstractDebuggerModelScenarioRegistersTest extends Abstrac TargetObject target = waitOn(bpMonitor.trapped); Map toWrite = getRegisterWrites(); - TargetRegisterBank bank = Objects - .requireNonNull(m.findWithIndex(TargetRegisterBank.class, "0", target.getPath())); Msg.debug(this, "Writing registers: " + toWrite.keySet()); - waitOn(bank.writeRegistersNamed(toWrite)); + performRegisterWrites(target, toWrite); Msg.debug(this, " Done"); assertTrue(DebugModelConventions.isProcessAlive(process)); diff --git a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractModelHost.java b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractModelHost.java index 86e8f055db..2408b94c69 100644 --- a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractModelHost.java +++ b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/test/AbstractModelHost.java @@ -17,6 +17,7 @@ package ghidra.dbg.test; import java.util.*; import java.util.Map.Entry; +import java.util.function.Function; import ghidra.dbg.DebuggerModelFactory; import ghidra.dbg.DebuggerObjectModel; @@ -231,8 +232,16 @@ public abstract class AbstractModelHost implements ModelHost, DebuggerModelTestU @Override public NavigableMap, T> findAll(Class cls, List seedPath, boolean atLeastOne) throws Throwable { - PathMatcher matcher = - model.getRootSchema().getSuccessorSchema(seedPath).searchFor(cls, seedPath, false); + return findAll(cls, seedPath, pred -> pred, atLeastOne); + } + + @Override + public NavigableMap, T> findAll(Class cls, + List seedPath, Function adjustPredicates, + boolean atLeastOne) throws Throwable { + PathPredicates matcher = adjustPredicates.apply(model.getRootSchema() + .getSuccessorSchema(seedPath) + .searchFor(cls, seedPath, false)); if (matcher.isEmpty()) { return new TreeMap<>(); } @@ -244,7 +253,10 @@ public abstract class AbstractModelHost implements ModelHost, DebuggerModelTestU // During testing, we should expend the energy to verify the heap. NavigableMap, T> result = new TreeMap<>(PathComparator.KEYED); for (Entry, ?> ent : found.entrySet()) { - result.put(ent.getKey(), cls.cast(ent.getValue())); + //TODO GP-1301 + if (cls.isInstance(ent.getValue())) { + result.put(ent.getKey(), cls.cast(ent.getValue())); + } } return result; } diff --git a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/testutil/TestDebuggerModelProvider.java b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/testutil/TestDebuggerModelProvider.java index a251465be5..4913b0c9f2 100644 --- a/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/testutil/TestDebuggerModelProvider.java +++ b/Ghidra/Debug/Framework-Debugging/src/test/java/ghidra/dbg/testutil/TestDebuggerModelProvider.java @@ -17,9 +17,11 @@ package ghidra.dbg.testutil; import java.util.List; import java.util.Map; +import java.util.function.Function; import ghidra.dbg.DebuggerObjectModel; import ghidra.dbg.target.TargetObject; +import ghidra.dbg.util.PathPredicates; public interface TestDebuggerModelProvider { interface ModelHost extends AutoCloseable { @@ -83,6 +85,10 @@ public interface TestDebuggerModelProvider { Map, T> findAll(Class cls, List seedPath, boolean atLeastOne) throws Throwable; + Map, T> findAll(Class cls, List seedPath, + Function adjustPredicates, boolean atLeastOne) + throws Throwable; + TargetObject findContainer(Class cls, List seedPath) throws Throwable; diff --git a/licenses/Apache_License_2.0_with_LLVM_Exceptions.txt b/licenses/Apache_License_2.0_with_LLVM_Exceptions.txt new file mode 100644 index 0000000000..fa6ac54000 --- /dev/null +++ b/licenses/Apache_License_2.0_with_LLVM_Exceptions.txt @@ -0,0 +1,279 @@ +============================================================================== +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== +University of Illinois/NCSA +Open Source License + +Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + diff --git a/licenses/certification.manifest b/licenses/certification.manifest index 1eca76fbfd..0a4eef320a 100644 --- a/licenses/certification.manifest +++ b/licenses/certification.manifest @@ -1,5 +1,6 @@ ##VERSION: 2.0 Apache_License_2.0.txt||LICENSE||||END| +Apache_License_2.0_with_LLVM_Exceptions.txt||LICENSE||||END| BSD.txt||LICENSE||||END| Bouncy_Castle_License.txt||LICENSE||||END| Christian_Plattner.txt||LICENSE||||END|