Родной для Android. Как мой собственный путь к библиотеке не указан в GetMemoryRegions при отладке с использованием lldbAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Родной для Android. Как мой собственный путь к библиотеке не указан в GetMemoryRegions при отладке с использованием lldb

Сообщение Anonymous »

Я хочу отладить свою собственную библиотеку на низком уровне с помощью lldb. Для этого мне нужно знать базовый адрес целевого общего объекта. Я написал скрипт для дампа всех областей памяти, но в списке результатов не было записи об этом, хотя код по-прежнему выполнялся нормально.
Я попробовал 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»