1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
(lldb) target create "XXXX"
Current executable set to 'XXXX' ($ARCH).
(lldb) command source -s 0 'XXXX'
Executing commands in 'XXXX'.
(lldb) settings set target.disable-aslr false
(lldb) settings set stop-disassembly-display never
(lldb) command script import ./lldb_test.py
(lldb) create caml_start_program
Breakpoint created for regex caml_start_program.
(lldb) create caml_program
Breakpoint created for regex caml_program.
(lldb) create camlMeander[.$]c_to_ocaml*
Breakpoint created for regex camlMeander[.$]c_to_ocaml*.
(lldb) create ocaml_to_c
Breakpoint created for regex ocaml_to_c.
(lldb) run
Process XXXX stopped
* thread #1, queue = 'XXXX', stop reason = breakpoint 1.1
frame #0: 0x00000000000000 meander`caml_start_program
Target 0: (meander) stopped.
Process XXXX launched: 'XXXX' ($ARCH)
(lldb) backtrace
frame 0: meander`caml_start_program
frame 1: meander`caml_startup_common
frame 2: meander`caml_startup_exn
frame 3: meander`caml_startup
frame 4: meander`caml_main
frame 5: meander`main
frame 6: dyld`start
(lldb) continue
Process XXXX resuming
Process XXXX stopped
* thread #1, queue = 'XXXX', stop reason = breakpoint 2.1
frame #0: 0x00000000000000 meander`caml_program
Target 0: (meander) stopped.
(lldb) backtrace
frame 0: meander`caml_program
frame 1: meander`caml_start_program
frame 2: meander`caml_startup_common
frame 3: meander`caml_startup_exn
frame 4: meander`caml_startup
frame 5: meander`caml_main
frame 6: meander`main
frame 7: dyld`start
(lldb) continue
Process XXXX resuming
Process XXXX stopped
* thread #1, queue = 'XXXX', stop reason = breakpoint 4.1
frame #0: 0x00000000000000 meander`ocaml_to_c(unit=1) at meander_c.c:XX [opt]
2 #include <caml/callback.h>
3
4 value ocaml_to_c (value unit) {
-> 5 caml_callback(*caml_named_value
^
6 ("c_to_ocaml"), Val_unit);
7 return Val_int(0);
8 }
Target 0: (meander) stopped.
(lldb) backtrace
frame 0: meander`ocaml_to_c
frame 1: meander`caml_c_call
frame 2: meander`camlMeander$omain
frame 3: meander`camlMeander$entry
frame 4: meander`caml_program
frame 5: meander`caml_start_program
frame 6: meander`caml_startup_common
frame 7: meander`caml_startup_exn
frame 8: meander`caml_startup
frame 9: meander`caml_main
frame 10: meander`main
frame 11: dyld`start
(lldb) continue
Process XXXX resuming
Process XXXX stopped
* thread #1, queue = 'XXXX', stop reason = breakpoint 3.1
frame #0: 0x00000000000000 meander`camlMeander$c_to_ocaml
Target 0: (meander) stopped.
(lldb) backtrace
frame 0: meander`camlMeander$c_to_ocaml
frame 1: meander`caml_start_program
frame 2: meander`caml_callback_exn
frame 3: meander`caml_callback
frame 4: meander`ocaml_to_c
frame 5: meander`caml_c_call
frame 6: meander`camlMeander$omain
frame 7: meander`camlMeander$entry
frame 8: meander`caml_program
frame 9: meander`caml_start_program
frame 10: meander`caml_startup_common
frame 11: meander`caml_startup_exn
frame 12: meander`caml_startup
frame 13: meander`caml_main
frame 14: meander`main
frame 15: dyld`start
(lldb) quit
|