YungRaj wrote:
> This patch fixes the deserialization of the "address" field which surely can
> be tested in isolation. The existing test (`TestObjectFileJSON.py`) has
> `address` set to zero, which is why this happens to work today. It should be
> possible to either update the test or add a new one that has a non-zero
> section address, which would fail prior to this patch, but pass with it.
I was hoping to fix everything in one Pull Request so that it at least becomes
usable once this merges. I can handle the unit test changes, but I'm unsure how
to fix the other memory reading issue while debugging the target. I describe it
in brief on that other comment.
Basically reading the memory of the symbolicated address reads from the JSON
Object File instead of the live memory.
```
ilhanraja@ilhanrajas-Virtual-Machine build % bin/lldb
(lldb) target create /Users/ilhanraja/Downloads/symbols.json
Current executable set to '/Users/ilhanraja/Downloads/symbols.json' (arm64e).
(lldb) gdb-remote 10.11.1.2:4000
Kernel UUID: 894FC3F0-4DF9-3A70-A4EE-75646151C8A7
Load Address: 0xfffffff00700c000
Process 1 stopped
* thread #1, stop reason = signal SIGINT
frame #0: 0xfffffff007d56080
error: 0xffffffffffffffff can't be resolved
(lldb) bt
* thread #1, stop reason = signal SIGINT
* frame #0: 0xfffffff007d56080
frame #1: 0xfffffff007ecafe8
frame #2: 0xfffffff007dc2d50
frame #3: 0xfffffff007dc2fb8
(lldb) image lookup -r -s ipc
74 symbols match the regular expression 'ipc' in
/Users/ilhanraja/Downloads/symbols.json:
Address: symbols.json[0xfffffff007d62124]
(symbols.json.com.apple.kernel:__text + 106788)
Summary: symbols.json`ipc_hash_delete
Address: symbols.json[0xfffffff007d6264c]
(symbols.json.com.apple.kernel:__text + 108108)
Summary: symbols.json`ipc_importance_task_check_transition
Address: symbols.json[0xfffffff007d62774]
(symbols.json.com.apple.kernel:__text + 108404)
Summary: symbols.json`ipc_importance_task_propagate_assertion_locked
Address: symbols.json[0xfffffff007d66b80]
(symbols.json.com.apple.kernel:__text + 125824)
Summary: symbols.json`ipc_kmsg_alloc
Address: symbols.json[0xfffffff007d66e30]
(symbols.json.com.apple.kernel:__text + 126512)
Summary: symbols.json`ipc_kmsg_alloc_uext_reply
Address: symbols.json[0xfffffff007d671c4]
(symbols.json.com.apple.kernel:__text + 127428)
Summary: symbols.json`ipc_kmsg_enqueue_qos
Address: symbols.json[0xfffffff007d675f8]
(symbols.json.com.apple.kernel:__text + 128504)
Summary: symbols.json`ipc_kmsg_clean_body
Address: symbols.json[0xfffffff007d6af48]
(symbols.json.com.apple.kernel:__text + 143176)
Summary: symbols.json`_ipc_kmsg_option_check
Address: symbols.json[0xfffffff007d6b0fc]
(symbols.json.com.apple.kernel:__text + 143612)
Summary: symbols.json`ipc_kmsg_validate_reply_port_locked
Address: symbols.json[0xfffffff007d6bf78]
(symbols.json.com.apple.kernel:__text + 147320)
Summary: symbols.json`ipc_kmsg_link_reply_context_locked
Address: symbols.json[0xfffffff007d6cf5c]
(symbols.json.com.apple.kernel:__text + 151388)
Summary: symbols.json`ipc_kmsg_get_thread_group
Address: symbols.json[0xfffffff007d6e65c]
(symbols.json.com.apple.kernel:__text + 157276)
Summary: symbols.json`ipc_mqueue_destroy_locked
Address: symbols.json[0xfffffff007d6e6fc]
(symbols.json.com.apple.kernel:__text + 157436)
Summary: symbols.json`ipc_mqueue_set_qlimit_locked
Address: symbols.json[0xfffffff007d6e87c]
(symbols.json.com.apple.kernel:__text + 157820)
Summary: symbols.json`ipc_notify_port_deleted
Address: symbols.json[0xfffffff007d6e8e0]
(symbols.json.com.apple.kernel:__text + 157920)
Summary: symbols.json`ipc_notify_no_senders_prepare
Address: symbols.json[0xfffffff007d6ea50]
(symbols.json.com.apple.kernel:__text + 158288)
Summary: symbols.json`ipc_notify_send_once_and_unlock
Address: symbols.json[0xfffffff007d6eb6c]
(symbols.json.com.apple.kernel:__text + 158572)
Summary: symbols.json`ipc_object_deallocate_queue_invoke
Address: symbols.json[0xfffffff007d6ec7c]
(symbols.json.com.apple.kernel:__text + 158844)
Summary: symbols.json`ipc_object_release
Address: symbols.json[0xfffffff007d6f300]
(symbols.json.com.apple.kernel:__text + 160512)
Summary: symbols.json`ipc_object_alloc
Address: symbols.json[0xfffffff007d6f400]
(symbols.json.com.apple.kernel:__text + 160768)
Summary: symbols.json`ipc_object_alloc_name
Address: symbols.json[0xfffffff007d70844]
(symbols.json.com.apple.kernel:__text + 165956)
Summary: symbols.json`ipc_object_lock_allow_invalid
Address: symbols.json[0xfffffff007d70970]
(symbols.json.com.apple.kernel:__text + 166256)
Summary: symbols.json`ipc_port_reference
Address: symbols.json[0xfffffff007d709f4]
(symbols.json.com.apple.kernel:__text + 166388)
Summary: symbols.json`ipc_port_translate_send
Address: symbols.json[0xfffffff007d70a5c]
(symbols.json.com.apple.kernel:__text + 166492)
Summary: symbols.json`ipc_port_translate_receive
Address: symbols.json[0xfffffff007d714d0]
(symbols.json.com.apple.kernel:__text + 169168)
Summary: symbols.json`ipc_port_clear_receiver
Address: symbols.json[0xfffffff007d7179c]
(symbols.json.com.apple.kernel:__text + 169884)
Summary: symbols.json`ipc_port_alloc
Address: symbols.json[0xfffffff007d72cc8]
(symbols.json.com.apple.kernel:__text + 175304)
Summary: symbols.json`ipc_port_send_update_inheritor
Address: symbols.json[0xfffffff007d72fd0]
(symbols.json.com.apple.kernel:__text + 176080)
Summary: symbols.json`ipc_port_recv_update_inheritor
Address: symbols.json[0xfffffff007d734a8]
(symbols.json.com.apple.kernel:__text + 177320)
Summary: symbols.json`ipc_port_adjust_port_locked
Address: symbols.json[0xfffffff007d73af4]
(symbols.json.com.apple.kernel:__text + 178932)
Summary: symbols.json`ipc_port_get_receiver_task_locked
Address: symbols.json[0xfffffff007d73dc4]
(symbols.json.com.apple.kernel:__text + 179652)
Summary: symbols.json`ipc_port_make_send_any_locked
Address: symbols.json[0xfffffff007d74018]
(symbols.json.com.apple.kernel:__text + 180248)
Summary: symbols.json`ipc_port_copy_send_any_locked
Address: symbols.json[0xfffffff007d74074]
(symbols.json.com.apple.kernel:__text + 180340)
Summary: symbols.json`ipc_port_copy_send_any
Address: symbols.json[0xfffffff007d7411c]
(symbols.json.com.apple.kernel:__text + 180508)
Summary: symbols.json`ipc_port_copy_send_mqueue
Address: symbols.json[0xfffffff007d74220]
(symbols.json.com.apple.kernel:__text + 180768)
Summary: symbols.json`ipc_port_copyout_send
Address: symbols.json[0xfffffff007d74298]
(symbols.json.com.apple.kernel:__text + 180888)
Summary: symbols.json`ipc_port_copyout_send_pinned
Address: symbols.json[0xfffffff007d743a0]
(symbols.json.com.apple.kernel:__text + 181152)
Summary: symbols.json`ipc_port_release_send_and_unlock
Address: symbols.json[0xfffffff007d74808]
(symbols.json.com.apple.kernel:__text + 182280)
Summary: symbols.json`ipc_port_release_sonce_and_unlock
Address: symbols.json[0xfffffff007d76320]
(symbols.json.com.apple.kernel:__text + 189216)
Summary: symbols.json`ipc_pset_alloc_name
Address: symbols.json[0xfffffff007d7749c]
(symbols.json.com.apple.kernel:__text + 193692)
Summary: symbols.json`ipc_right_request_cancel
Address: symbols.json[0xfffffff007d79ab4]
(symbols.json.com.apple.kernel:__text + 203444)
Summary: symbols.json`ipc_right_copyin_check_guard_locked
Address: symbols.json[0xfffffff007d7a3c8]
(symbols.json.com.apple.kernel:__text + 205768)
Summary: symbols.json`_ipc_space_retire_table
Address: symbols.json[0xfffffff007d7a4d0]
(symbols.json.com.apple.kernel:__text + 206032)
Summary: symbols.json`ipc_space_free
Address: symbols.json[0xfffffff007d7a560]
(symbols.json.com.apple.kernel:__text + 206176)
Summary: symbols.json`ipc_space_rand_freelist
Address: symbols.json[0xfffffff007d7ad6c]
(symbols.json.com.apple.kernel:__text + 208236)
Summary: symbols.json`ipc_service_port_label_alloc
Address: symbols.json[0xfffffff007d7af8c]
(symbols.json.com.apple.kernel:__text + 208780)
Summary: symbols.json`ipc_service_port_derive_sblabel
Address: symbols.json[0xfffffff007d7b140]
(symbols.json.com.apple.kernel:__text + 209216)
Summary: symbols.json`ipc_service_port_get_sblabel
Address: symbols.json[0xfffffff007d96804]
(symbols.json.com.apple.kernel:__text + 321540)
Summary: symbols.json`_ipc_kobject_label_substitute_thread
Address: symbols.json[0xfffffff007d968dc]
(symbols.json.com.apple.kernel:__text + 321756)
Summary: symbols.json`_ipc_kobject_label_substitute_thread_read
Address: symbols.json[0xfffffff007d9ea14]
(symbols.json.com.apple.kernel:__text + 354836)
Summary: symbols.json`ipc_thread_init_exc_actions
Address: symbols.json[0xfffffff007e07e70]
(symbols.json.com.apple.kernel:__text + 786032)
Summary: symbols.json`get_task_ipcspace
Address: symbols.json[0xfffffff008240ae4]
(symbols.json.com.apple.kernel:__text + 5212900)
Summary: symbols.json`uipc_sockaddr
Address: symbols.json[0xfffffff008240b70]
(symbols.json.com.apple.kernel:__text + 5213040)
Summary: symbols.json`uipc_shutdown
Address: symbols.json[0xfffffff008240cb4]
(symbols.json.com.apple.kernel:__text + 5213364)
Summary: symbols.json`uipc_sense
Address: symbols.json[0xfffffff008242b80]
(symbols.json.com.apple.kernel:__text + 5221248)
Summary: symbols.json`uipc_rcvd
Address: symbols.json[0xfffffff008242c98]
(symbols.json.com.apple.kernel:__text + 5221528)
Summary: symbols.json`uipc_peeraddr
Address: symbols.json[0xfffffff008242e30]
(symbols.json.com.apple.kernel:__text + 5221936)
Summary: symbols.json`uipc_listen
Address: symbols.json[0xfffffff008243978]
(symbols.json.com.apple.kernel:__text + 5224824)
Summary: symbols.json`uipc_accept
Address: symbols.json[0xfffffff008243a4c]
(symbols.json.com.apple.kernel:__text + 5225036)
Summary: symbols.json`uipc_abort
Address: symbols.json[0xfffffff0083507d0]
(symbols.json.com.apple.kernel:__text + 6326224)
Summary: symbols.json`IODispatchQueue::SetPort(ipc_port
Address: symbols.json[0xfffffff0083565d4]
(symbols.json.com.apple.kernel:__text + 6350292)
Summary: symbols.json`IOEventLink::SetEventlinkPort(ipc_port
Address: symbols.json[0xfffffff00835703c]
(symbols.json.com.apple.kernel:__text + 6352956)
Summary: symbols.json`IOWorkGroup::SetWorkGroupPort(ipc_port
Address: symbols.json[0xfffffff0083fe7fc]
(symbols.json.com.apple.kernel:__text + 7038972)
Summary: symbols.json`IOUserClient::registerNotificationPort(ipc_port
Address: symbols.json[0xfffffff00840363c]
(symbols.json.com.apple.kernel:__text + 7059004)
Summary:
symbols.json`__ZN12IOUserClient17setAsyncReferenceEPjP8ipc_portPvS3__0_1
Address: symbols.json[0xfffffff0084051e8]
(symbols.json.com.apple.kernel:__text + 7066088)
Summary: symbols.json`IOUserClient::releaseNotificationPort(ipc_port
Address: symbols.json[0xfffffff00840f9d8]
(symbols.json.com.apple.kernel:__text + 7109080)
Summary: symbols.json`IODataQueue::setNotificationPort(ipc_port
Address: symbols.json[0xfffffff00849a380]
(symbols.json.com.apple.kernel:__text + 7676800)
Summary: symbols.json`ipc_importance_init
Address: symbols.json[0xfffffff00849a3a0]
(symbols.json.com.apple.kernel:__text + 7676832)
Summary: symbols.json`ipc_importance_thread_call_init
Address: symbols.json[0xfffffff00849a5a0]
(symbols.json.com.apple.kernel:__text + 7677344)
Summary: symbols.json`ipc_object_validate_preflight_panic
Address: symbols.json[0xfffffff00849a5d0]
(symbols.json.com.apple.kernel:__text + 7677392)
Summary: symbols.json`__ipc_port_inactive_panic
Address: symbols.json[0xfffffff00849a698]
(symbols.json.com.apple.kernel:__text + 7677592)
Summary: symbols.json`ipc_voucher_init
Address: symbols.json[0xfffffff00849ad30]
(symbols.json.com.apple.kernel:__text + 7679280)
Summary: symbols.json`__ipc_kobject_dealloc_bad_type_panic
Address: symbols.json[0xfffffff00849ad6c]
(symbols.json.com.apple.kernel:__text + 7679340)
Summary: symbols.json`__ipc_kobject_dealloc_bad_mscount_panic
Address: symbols.json[0xfffffff00849ada4]
(symbols.json.com.apple.kernel:__text + 7679396)
Summary: symbols.json`__ipc_kobject_dealloc_bad_srights_panic
(lldb) memory read 0xfffffff007d6264c
0xfffffff007d6264c: 34 34 30 30 35 31 32 32 33 32 37 35 35 32 0a 20
44005122327552.
0xfffffff007d6265c: 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 },.
(lldb) memory read 0xfffffff007d62620 -c 512
0xfffffff007d62620: 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 type":
"code",.
0xfffffff007d62630: 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 72
"addr
0xfffffff007d62640: 65 73 73 22 3a 20 31 38 34 34 36 37 34 34 30 30 ess":
1844674400
0xfffffff007d62650: 35 31 32 32 33 32 37 35 35 32 0a 20 20 20 20 20
5122327552.
0xfffffff007d62660: 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 7b 0a },.
{.
0xfffffff007d62670: 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d
"nam
0xfffffff007d62680: 65 22 3a 20 22 5f 6f 73 65 6e 76 69 72 6f 6e 6d e":
"_osenvironm
0xfffffff007d62690: 65 6e 74 5f 69 73 5f 64 69 61 67 6e 6f 73 74 69
ent_is_diagnosti
0xfffffff007d626a0: 63 73 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 cs",.
0xfffffff007d626b0: 20 22 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c "type":
"code",
0xfffffff007d626c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 .
"ad
0xfffffff007d626d0: 64 72 65 73 73 22 3a 20 31 38 34 34 36 37 34 34 dress":
18446744
0xfffffff007d626e0: 30 30 35 31 32 32 33 33 33 37 39 32 0a 20 20 20
005122333792.
0xfffffff007d626f0: 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 },.
0xfffffff007d62700: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 6e {.
"n
0xfffffff007d62710: 61 6d 65 22 3a 20 22 64 65 66 5f 46 46 46 46 46 ame":
"def_FFFFF
0xfffffff007d62720: 46 46 30 30 37 45 32 33 39 44 34 22 2c 0a 20 20
FF007E239D4",.
0xfffffff007d62730: 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22
"type"
0xfffffff007d62740: 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 : "code",.
0xfffffff007d62750: 20 20 20 20 20 20 22 61 64 64 72 65 73 73 22 3a
"address":
0xfffffff007d62760: 20 31 38 34 34 36 37 34 34 30 30 35 31 32 32 33
184467440051223
0xfffffff007d62770: 34 33 35 38 30 0a 20 20 20 20 20 20 20 20 7d 2c 43580.
},
0xfffffff007d62780: 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 .
{.
```
https://github.com/llvm/llvm-project/pull/101062
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits