This has super-high priority, because right now we cannot properly debug Darling or any software running underneath it.
personality(ADDR_NO_RANDOMIZE)mldr to suspend itself before it jumps into dyld codemldr - it has to find a section named __DATA,__all_image_info. How exactly TBD.access_process_vm())task_info(flavor=5) (also used by ps)kp_proc.p_flag & P_LP64 for 64-bit processesThis is how adding a breakpoint currently fails:
2785 +21.027975 sec [0009/1303]: ::read ( 15, 0x7ffef1a987c0, 1024 ) => 21 err = 0x00000000
2786 +0.011023 sec [0009/1303]: read: $Z0,7ffff7ed98f0,1#e9
2787 +0.008166 sec [0009/1303]: getpkt: $Z0,7ffff7ed98f0,1#e9
2788 +0.020084 sec [0009/0307]: RNBRunLoopInferiorExecuting ctx.Events().WaitForSetEvents(0x000000a5) => 0x00000020 (read_packet_available )
2789 +0.004269 sec [0009/0307]: HandleReceivedPacket ("Z0,7ffff7ed98f0,1");
2790 +0.004230 sec [0009/0307]: MachProcess::CreateBreakpoint ( addr = 0x7ffff7ed98f0, length = 1, hardware = 0)
2791 +0.004297 sec [0009/0307]: MachProcess::EnableBreakpoint ( addr = 0x7ffff7ed98f0 )
2792 +0.017011 sec [0009/0307]: ::mach_vm_read ( task = 0x0a03, addr = 0x7ffff7ed98f0, size = 1, data => 0x7ffef4e9b000, dataCnt => 1 ) err = 0x00000000
2793 +0.005927 sec [0009/0307]: MachTask::ReadMemory ( addr = 0x7ffff7ed98f0, size = 1, buf = 0x7fd43ec0a1e0) => 1 bytes read
0x7ffff7ed98f0: 55
2794 +0.013687 sec [0009/0307]: ::mach_vm_region_recurse ( task = 0x0a03, address => 0x7ffff7e98000, size => 1036288, nesting_depth => 0, info => 0x7fffffffa8e4, infoCnt => 12) addr = 0x7ffff7ed98f0 err = 0x00000000
2795 +0.004229 sec [0009/0307]: info = { prot = 4, max_prot = 7, inheritance = 0x00000000, offset = 0x00000000, user_tag = 0x00000000, ref_count = 0, shadow_depth = 0, ext_pager = 0, share_mode = 0, is_submap = 0, behavior = 0, object_id = 0x00000000, user_wired_count = 0x0000 }
2796 +0.005872 sec [0009/0307]: error: ::mach_vm_protect ( task = 0x0a03, addr = 0x7ffff7ed98f0, size = 1, set_max = 0, prot = 3 ) err = (os/kern) failure (0x00000005)
2797 +0.006209 sec [0009/0307]: error: ::mach_vm_protect ( task = 0x0a03, addr = 0x7ffff7ed98f0, size = 1, set_max = 0, prot = 19 ) err = (os/kern) failure (0x00000005)
2798 +0.004219 sec [0009/0307]: Failed to set read/write protections on region for address: [0x7ffff7ed98f0-0x7ffff7ed98f1)
2799 +0.009162 sec [0009/0307]: MachTask::WriteMemory ( addr = 0x7ffff7ed98f0, size = 1, buf = 0x7ffff7b48ae8) => 0 bytes written
error: MachProcess::EnableBreakpoint ( addr = 0x7ffff7ed98f0 ): unable to write breakpoint opcode to memory.
2800 +0.006360 sec [0009/0307]: 21181246 RNBRemote::SendPacket (E09) called
2801 +0.006468 sec [0009/0307]: ::write ( socket = 15, buffer = 0x7fffffffa6b1, length = 7) => 7 err = 0x00000000
2802 +0.010155 sec [0009/0307]: putpkt: $E09#00
2803 +0.000018 sec [0009/0307]: sent: $E09#00
2804 +0.004028 sec [0009/0307]: RNBRunLoopInferiorExecuting ctx.Events().WaitForSetEvents(0x000000a5) ...
:tada:
For the reference, it's been 505 days since using-machos-experiment (remember that name?) was merged, but we've survived :smile: and even made some amazing progress without a debugger. It's only going to be much much more productive from here.
Most helpful comment
For the reference, it's been 505 days since
using-machos-experiment(remember that name?) was merged, but we've survived :smile: and even made some amazing progress without a debugger. It's only going to be much much more productive from here.