Я пытаюсь реализовать jdwp (java протокол отладочного провода) в android, когда я пытаюсь установить точку останова с помощью команды jdwp EventRequest # set, я получаю cra sh, как показано ниже
A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xffffffffbf18779c in tid 2631 (JDWP), pid 2374
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
A/DEBUG: Build fingerprint: 'HONOR/DUK-AL20/HWDUK:9/HUAWEIDUK-AL20/179C00R1:user/release-keys'
A/DEBUG: Revision: '0'
A/DEBUG: ABI: 'arm64'
A/DEBUG: pid: 2374, tid: 2631, name: JDWP >>> com.test.jdwp <<<
A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xffffffffbf18779c
A/DEBUG: x0 00000072c7436ce0 x1 00000072a6301018 x2 0000000000000000 x3 00000072c7436ce0
A/DEBUG: x4 00000072c7436d00 x5 00000072a6300fe8 x6 000000734dbaa000 x7 0000000000a6439a
A/DEBUG: x8 0000000000000000 x9 0000000000000001 x10 0000000000000020 x11 0000000000002000
A/DEBUG: x12 0000000000200000 x13 0000000000000000 x14 0000000000000070 x15 aaaaaaaaaaaaaaab
A/DEBUG: x16 00000072c4d69f80 x17 000000734ada12b0 x18 0000000000000001 x19 00000072a8f30800
A/DEBUG: x20 00000072c7436ce0 x21 ffffffffbf187798 x22 00000072a6301018 x23 00000072c74ee3e0
A/DEBUG: x24 00000072c74ee3c0 x25 00000072a6301588 x26 0000000000000000 x27 00000072c4c99f37
A/DEBUG: x28 0000000000000001 x29 00000072a6300ff0
A/DEBUG: sp 00000072a6300f60 lr 00000072c4a0bcc0 pc 00000072c4893994
A/DEBUG: backtrace:
A/DEBUG: #00 pc 0000000000178994 /system/lib64/libart.so (art::Dbg::WatchLocation(art::JDWP::JdwpLocation const*, art::DeoptimizationRequest*)+884)
A/DEBUG: #01 pc 00000000002f0cbc /system/lib64/libart.so (art::JDWP::JdwpState::RegisterEvent(art::JDWP::JdwpEvent*)+136)
A/DEBUG: #02 pc 00000000002fbd4c /system/lib64/libart.so (art::JDWP::ER_Set(art::JDWP::JdwpState*, art::JDWP::Request*, art::JDWP::ExpandBuf*)+1536)
A/DEBUG: #03 pc 00000000002f8264 /system/lib64/libart.so (art::JDWP::JdwpState::ProcessRequest(art::JDWP::Request*, art::JDWP::ExpandBuf*, bool*)+1140)
A/DEBUG: #04 pc 00000000002ffac0 /system/lib64/libart.so (art::JDWP::JdwpState::HandlePacket()+164)
A/DEBUG: #05 pc 0000000000303fbc /system/lib64/libart.so (art::JDWP::JdwpSocketState::ProcessIncoming()+996)
A/DEBUG: #06 pc 00000000002ffe0c /system/lib64/libart.so (art::JDWP::JdwpState::Run()+444)
A/DEBUG: #07 pc 00000000002ff4f4 /system/lib64/libart.so (art::JDWP::StartJdwpThread(void*)+40)
A/DEBUG: #08 pc 0000000000083550 /system/lib64/libc.so (__pthread_start(void*)+36)
A/DEBUG: #09 pc 00000000000241a0 /system/lib64/libc.so (__start_thread+68)
параметр, который я передал через команду jdwp EventRequest # set, является точкой останова, ему нужно местоположение, содержащее 4 параметра: typetag 、 classId 、 methodId 、 index (который определяет местоположение в методе), я могу получить (typetag 、 classId 、 methodId) из другой команды jdwp, но только param (index) Я не знаю, где найти или как вычислить
, так, кто-нибудь знает, как решить проблему и как получить Индекс (который определяет местоположение в методе), вы можете помочь решить, спасибо