lldb: map TRAP_CAP to a trace trap
In the absense of a more specific handler for TRAP_CAP (generated by ENOTCAPABLE or ECAPMODE while in capability mode) treat it as a trace trap. Example usage (testing the bug in PR219173): % proccontrol -m trapcap lldb usr.bin/hexdump/obj/hexdump -- -Cv -s 1 /bin/ls ... (lldb) run Process 12980 launching Process 12980 launched: '.../usr.bin/hexdump/obj/hexdump' (x86_64) Process 12980 stopped * thread #1, stop reason = trace frame #0: 0x0000004b80c65f1a libc.so.7`__sys_lseek + 10 ... In the future we should have LLDB control the trapcap procctl itself (as it does with ASLR), as well as report a specific stop reason. This change eliminates an assertion failure from LLDB for now.
This commit is contained in:
parent
ac4ef3f9a9
commit
b08e22797d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=318884
@ -1132,6 +1132,8 @@ ProcessMessage ProcessMonitor::MonitorSIGTRAP(ProcessMonitor *monitor,
|
||||
|
||||
case 0:
|
||||
case TRAP_TRACE:
|
||||
// Map TRAP_CAP to a trace trap in the absense of a more specific handler.
|
||||
case TRAP_CAP:
|
||||
if (log)
|
||||
log->Printf("ProcessMonitor::%s() received trace event, tid = %" PRIu64
|
||||
" : si_code = %d",
|
||||
|
Loading…
Reference in New Issue
Block a user