Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Feb 2015 23:00:27 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 197501] [devel/gdb] Add XSAVE support, plus i386 sigtramp fix and i386 on amd64 fix
Message-ID:  <bug-197501-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197501

            Bug ID: 197501
           Summary: [devel/gdb] Add XSAVE support, plus i386 sigtramp fix
                    and i386 on amd64 fix
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs@FreeBSD.org
          Reporter: jhb@FreeBSD.org

Created attachment 152824
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=152824&action=edit
gdb_port_xsave.patch

This patch to the port adds support for XSAVE on amd64 and i386 using the
recently added PTRACE_GET/SETXSTATE in HEAD.  (I will soon merge those changes
to stable/10 as well.)

It also adds kern.proc.sigtramp usage on i386 fixing unwinding across signal
frames for i386 binaries after the shared page signal code changes.

As part of the XSAVE changes it also fixes the amd64 FreeBSD ABI to return an
i386 target description when debugging a 32-bit process.  This allows XSAVE
debugging to work for an i386 binary on amd64 (though threads cannot be
debugged still).

The threads patches have been reworked to pull threads-related patches out of
the main port patches and into a single patch that is applied when the THREAD
option is enabled.  In part this is to make it easier to update the port in the
hopeful case that other patches (like the signal trampoline fixes and XSAVE)
can be upstreamed.

One additional change to the threads patches to allow them to work with XSAVE
is that the fbsd-threads target no longer uses ptrace to fetch registers for
LWPs directly.  Instead, the x86 nat.c files are updated to pass the lwp id to
ptrace if the inferior has an lwp id instead of always passing the PIDs.  This
means that for LWP-backed threads, the fbsd-threads target now passes all
register requests down to the native method.  The supply/collect regset stubs
are now only needed to support userland threads for libkse.

-- 
You are receiving this mail because:
You are the assignee for the bug.



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