Я попробовал 2 вещи:
- поместил бесконечный цикл, чтобы общий объект оставался «живым» в памяти процесса, когда я прерывал процесс в клиенте lldb:
Код: Выделить всё
jobject myNativeMethod3(JNIEnv *env, jobject thiz, jobject arrayObj) {
LOGI("Reading string array");
struct timespec ts = {2, 0}; // 2 second sleep
while(true){
LOGI("waiting for lldb");
nanosleep(&ts, nullptr);
}
}
- сохранять каждую запись в файл:
Код: Выделить всё
def get_memory_regions(debugger, command, result, internal_dict):
target = debugger.GetSelectedTarget()
process = target.GetProcess()
if not process:
print("No process available.")
return
region_list = process.GetMemoryRegions()
print(f"Total regions: {region_list.GetSize()}")
with open('regions.txt', 'w') as f:
for i in range(region_list.GetSize()):
region_info = lldb.SBMemoryRegionInfo()
if region_list.GetMemoryRegionAtIndex(i, region_info):
name = region_info.GetName()
f.write(f"{name}\n")
Я увидел запись с именем /data/app/~~v4slxMbRQy4YqeFeTO3Rig ==/com.example.testnative-Lkf80ctXP4dWS-iV201AwQ==/base.apk появился, но я также ожидаю, что библиотека будет с именем libtestnative.so в списке.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ions-resul
Мобильная версия