diff --git a/Ghidra/Debug/Debugger-swig-lldb/InstructionsForBuildingLLDBInterface.txt b/Ghidra/Debug/Debugger-swig-lldb/InstructionsForBuildingLLDBInterface.txt index a25871579a..9103e886b2 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/InstructionsForBuildingLLDBInterface.txt +++ b/Ghidra/Debug/Debugger-swig-lldb/InstructionsForBuildingLLDBInterface.txt @@ -4,12 +4,12 @@ To do this: (1) check the version for your copy of lldb: lldb --version -If you have a version other than the most current (release/13.x), you will need to either -install v13 or generate the JNI interface for the version you have. +If you have a version other than the most current (release/14.x), you will need to either +install v14 or generate the JNI interface for the version you have. -(2a) To install LLVM/lldb version 13: +(2a) To install LLVM/lldb version 14: - git clone https://github.com/llvm/llvm-project.git - - git checkout release/13.x + - git checkout release/14.x - cd llvm-project - mkdir build && cd build - cmake -G Ninja -DLLVM_ENABLE_PROJECTS="clang;libcxx;lldb" -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_LINKER=gold ../llvm @@ -37,8 +37,8 @@ If you have the most current version or have completed step (2), you can: - gradle build (4) To run: - - add -Djava.library.path=/path_to/liblldb:/path_to/liblldb-java:etc in support/launch.properties or, - if you're running out of Eclipse, to the arguments in the Run/Debug Configuration + - add -Djava.library.path=/path_to_liblldb:/path_to_liblldb-java:etc (not including the actual library name) + in support/launch.properties or, if you're running out of Eclipse, to the arguments in the Run/Debug Configuration TROUBLESHOOTING: (1) If you are trying to execute "gradle buildGhidra" with LLVM_HOME already set, you are likely @@ -51,6 +51,10 @@ TROUBLESHOOTING: (4) If you get an "Unsatisfied Link Error" when you start the debugger, make sure both liblldb and liblldb-java are in the path described by java.library.path. (5) Link errors can also be caused by different architectures or platforms for the libraries. +(6) You may need to set up the development environment before running gradle: + gradle -I gradle/support/fetchDependencies.gradle init +(7) If you are using the homebrew installation of lldb, you may need to modify buildNatives.gradle + to reflect the homebrew directory structure, e.g. $llvm_dir/lldb/include -> $llvm_dir/include. \ No newline at end of file diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/cpp/LLDBWrapJava.cpp b/Ghidra/Debug/Debugger-swig-lldb/src/main/cpp/LLDBWrapJava.cpp index 57fefeaca4..351cba06f2 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/cpp/LLDBWrapJava.cpp +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/cpp/LLDBWrapJava.cpp @@ -4714,6 +4714,18 @@ SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSaveCoreDirtyOnly_1get(JNIEnv *jenv, } +SWIGEXPORT jint JNICALL Java_SWIG_lldbJNI_eSaveCoreStackOnly_1get(JNIEnv *jenv, jclass jcls) { + jint jresult = 0 ; + lldb::SaveCoreStyle result; + + (void)jenv; + (void)jcls; + result = (lldb::SaveCoreStyle)lldb::eSaveCoreStackOnly; + 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 ; @@ -12141,6 +12153,32 @@ SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBData_1SetData(JNIEnv *jenv, jclass j } +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBData_1SetDataWithOwnership(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)->SetDataWithOwnership(*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 ; @@ -12663,6 +12701,28 @@ SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetErrorFileHandle(JNIEnv } +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1SetInputString(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)->SetInputString((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_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 ; @@ -14265,6 +14325,23 @@ SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetSyntheticForType(JNIEn } +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBDebugger_1GetScriptInterpreterInfo(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + lldb::SBDebugger *arg1 = (lldb::SBDebugger *) 0 ; + lldb::ScriptLanguage arg2 ; + lldb::SBStructuredData result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBDebugger **)&jarg1; + arg2 = (lldb::ScriptLanguage)jarg2; + result = (arg1)->GetScriptInterpreterInfo(arg2); + *(lldb::SBStructuredData **)&jresult = new lldb::SBStructuredData((const lldb::SBStructuredData &)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 ; @@ -20618,6 +20695,85 @@ SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBMemoryRegionInfo_1_1SWIG_11(JN } +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_new_1SBMemoryRegionInfo_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jobject jarg2, jobject jarg3, jlong jarg4, jboolean jarg5, jboolean jarg6) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + lldb::addr_t arg2 ; + lldb::addr_t arg3 ; + uint32_t arg4 ; + bool arg5 ; + bool arg6 ; + lldb::SBMemoryRegionInfo *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) 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); + } + { + 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); + } + arg4 = (uint32_t)jarg4; + arg5 = jarg5 ? true : false; + arg6 = jarg6 ? true : false; + result = (lldb::SBMemoryRegionInfo *)new lldb::SBMemoryRegionInfo((char const *)arg1,arg2,arg3,arg4,arg5,arg6); + *(lldb::SBMemoryRegionInfo **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + return jresult; +} + + SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_delete_1SBMemoryRegionInfo(JNIEnv *jenv, jclass jcls, jlong jarg1) { lldb::SBMemoryRegionInfo *arg1 = (lldb::SBMemoryRegionInfo *) 0 ; @@ -20950,6 +21106,55 @@ SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1GetSize(JNIEn } +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBMemoryRegionInfoList_1GetMemoryRegionContainingAddress(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jobject jarg3_) { + jboolean jresult = 0 ; + lldb::SBMemoryRegionInfoList *arg1 = (lldb::SBMemoryRegionInfoList *) 0 ; + lldb::addr_t arg2 ; + lldb::SBMemoryRegionInfo *arg3 = 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(lldb::SBMemoryRegionInfoList **)&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 = (bool)(arg1)->GetMemoryRegionContainingAddress(arg2,*arg3); + jresult = (jboolean)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 ; @@ -21153,6 +21358,21 @@ SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBModule_1Clear(JNIEnv *jenv, jclass j } +SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBModule_1IsFileBacked(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)->IsFileBacked(); + jresult = (jboolean)result; + return jresult; +} + + 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 ; @@ -23196,6 +23416,24 @@ SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBPlatform_1GetOSUpdateVersion(JNIEnv } +SWIGEXPORT void JNICALL Java_SWIG_lldbJNI_SBPlatform_1SetSDKRoot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { + lldb::SBPlatform *arg1 = (lldb::SBPlatform *) 0 ; + char *arg2 = (char *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(lldb::SBPlatform **)&jarg1; + arg2 = 0; + if (jarg2) { + arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2) return ; + } + (arg1)->SetSDKRoot((char const *)arg2); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); +} + + 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 ; @@ -29623,6 +29861,21 @@ SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetCodeByteSize(JNIEnv *jen } +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBTarget_1GetMaximumNumberOfChildrenToDisplay(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)->GetMaximumNumberOfChildrenToDisplay(); + 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 ; @@ -33633,6 +33886,21 @@ SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBThread_1SafeToCallFunctions(JNIE } +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBThread_1GetSiginfo(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)->GetSiginfo(); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)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 ; @@ -40070,6 +40338,28 @@ SWIGEXPORT jboolean JNICALL Java_SWIG_lldbJNI_SBValue_1SetData(JNIEnv *jenv, jcl } +SWIGEXPORT jlong JNICALL Java_SWIG_lldbJNI_SBValue_1Clone(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)->Clone((char const *)arg2); + *(lldb::SBValue **)&jresult = new lldb::SBValue((const lldb::SBValue &)result); + if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); + 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 ; diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBData.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBData.java index f469f93d45..7fb89f319d 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBData.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBData.java @@ -139,6 +139,10 @@ public class SBData { lldbJNI.SBData_SetData(swigCPtr, this, SBError.getCPtr(error), error, SWIGTYPE_p_void.getCPtr(buf), size, endian.swigValue(), addr_size); } + public void SetDataWithOwnership(SBError error, SWIGTYPE_p_void buf, long size, ByteOrder endian, short addr_size) { + lldbJNI.SBData_SetDataWithOwnership(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); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBDebugger.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBDebugger.java index 2064de2182..5712d062c8 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBDebugger.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBDebugger.java @@ -111,6 +111,10 @@ public class SBDebugger { return new SWIGTYPE_p_std__shared_ptrT_lldb_private__File_t(lldbJNI.SBDebugger_GetErrorFileHandle(swigCPtr, this), true); } + public SBError SetInputString(String data) { + return new SBError(lldbJNI.SBDebugger_SetInputString(swigCPtr, this, data), true); + } + public SBError SetInputFile(SBFile file) { return new SBError(lldbJNI.SBDebugger_SetInputFile__SWIG_0(swigCPtr, this, SBFile.getCPtr(file), file), true); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBModule.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBModule.java index 900ee2030a..f2716b049c 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBModule.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBModule.java @@ -63,6 +63,10 @@ public class SBModule { lldbJNI.SBModule_Clear(swigCPtr, this); } + public boolean IsFileBacked() { + return lldbJNI.SBModule_IsFileBacked(swigCPtr, this); + } + public SBFileSpec GetFileSpec() { return new SBFileSpec(lldbJNI.SBModule_GetFileSpec(swigCPtr, this), true); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBPlatform.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBPlatform.java index 948a69a2fc..c70dbd019c 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBPlatform.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBPlatform.java @@ -111,6 +111,10 @@ public class SBPlatform { return lldbJNI.SBPlatform_GetOSUpdateVersion(swigCPtr, this); } + public void SetSDKRoot(String sysroot) { + lldbJNI.SBPlatform_SetSDKRoot(swigCPtr, this, sysroot); + } + public SBError Get(SBFileSpec src, SBFileSpec dst) { return new SBError(lldbJNI.SBPlatform_Get(swigCPtr, this, SBFileSpec.getCPtr(src), src, SBFileSpec.getCPtr(dst), dst), true); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBTarget.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBTarget.java index e653a9e08f..e5fb524257 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBTarget.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBTarget.java @@ -187,6 +187,10 @@ public class SBTarget { return lldbJNI.SBTarget_GetCodeByteSize(swigCPtr, this); } + public long GetMaximumNumberOfChildrenToDisplay() { + return lldbJNI.SBTarget_GetMaximumNumberOfChildrenToDisplay(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); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBThread.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBThread.java index 7c09fab9eb..5da63eb732 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBThread.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBThread.java @@ -299,6 +299,10 @@ public class SBThread { return lldbJNI.SBThread_SafeToCallFunctions(swigCPtr, this); } + public SBValue GetSiginfo() { + return new SBValue(lldbJNI.SBThread_GetSiginfo(swigCPtr, this), true); + } + public String __str__() { return lldbJNI.SBThread___str__(swigCPtr, this); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBValue.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBValue.java index e4c27fdc11..b255b30808 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBValue.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/SBValue.java @@ -360,6 +360,10 @@ public class SBValue { return lldbJNI.SBValue_SetData(swigCPtr, this, SBData.getCPtr(data), data, SBError.getCPtr(error), error); } + public SBValue Clone(String new_name) { + return new SBValue(lldbJNI.SBValue_Clone(swigCPtr, this, new_name), true); + } + public java.math.BigInteger GetLoadAddress() { return lldbJNI.SBValue_GetLoadAddress(swigCPtr, this); } diff --git a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/lldbJNI.java b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/lldbJNI.java index 5095c63bce..798ede81a0 100644 --- a/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/lldbJNI.java +++ b/Ghidra/Debug/Debugger-swig-lldb/src/main/java/SWIG/lldbJNI.java @@ -720,6 +720,7 @@ public class lldbJNI { 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 void SBData_SetDataWithOwnership(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); @@ -753,6 +754,7 @@ public class lldbJNI { 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_SetInputString(long jarg1, SBDebugger jarg1_, String jarg2); 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_); @@ -1222,6 +1224,7 @@ public class lldbJNI { 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 boolean SBModule_IsFileBacked(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_); @@ -1340,6 +1343,7 @@ public class lldbJNI { 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 void SBPlatform_SetSDKRoot(long jarg1, SBPlatform jarg1_, String jarg2); 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_); @@ -1645,6 +1649,7 @@ public class lldbJNI { 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_GetMaximumNumberOfChildrenToDisplay(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); @@ -1808,6 +1813,7 @@ public class lldbJNI { 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 long SBThread_GetSiginfo(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_); @@ -2168,6 +2174,7 @@ public class lldbJNI { 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 long SBValue_Clone(long jarg1, SBValue jarg1_, String jarg2); 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_);