Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 May 2017 16:41:07 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r318884 - head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD
Message-ID:  <201705251641.v4PGf7bI007518@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Thu May 25 16:41:07 2017
New Revision: 318884
URL: https://svnweb.freebsd.org/changeset/base/318884

Log:
  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.

Modified:
  head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp

Modified: head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
==============================================================================
--- head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp	Thu May 25 16:31:53 2017	(r318883)
+++ head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp	Thu May 25 16:41:07 2017	(r318884)
@@ -1132,6 +1132,8 @@ ProcessMessage ProcessMonitor::MonitorSI
 
   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",



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705251641.v4PGf7bI007518>