From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21639 invoked by alias); 19 Mar 2007 12:00:35 -0000 Received: (qmail 21484 invoked by uid 48); 19 Mar 2007 12:00:14 -0000 Date: Mon, 19 Mar 2007 12:00:00 -0000 Message-ID: <20070319120014.21483.qmail@sourceware.org> From: "mark at klomp dot org" To: frysk-bugzilla@sourceware.org In-Reply-To: <20070207161918.3997.mark@klomp.org> References: <20070207161918.3997.mark@klomp.org> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug general/3997] SIGTRAP handler gets reset when single stepping X-Bugzilla-Reason: AssignedTo Mailing-List: contact frysk-bugzilla-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: frysk-bugzilla-owner@sourceware.org X-SW-Source: 2007-q1/txt/msg00667.txt.bz2 List-Id: ------- Additional Comments From mark at klomp dot org 2007-03-19 12:00 ------- This is a misfeature of ptrace single step. It uses SIGTRAP to signal that a step is made. this used to work in older kernels. But newer kernels decided to block the sig trap handler if the child wasn't using a reentrant sigtrap handler (even though the ptracing debugger would of course swallow the signal and never deliver it to the child itself). Resetting the child signal handler obviously breaks out testcases. For now, to have minimal testing of sigtrap handler stepping, we instrument the test programs to us SA_NODEFER. Also the funit-breakpoints uses a simple SIGUSER handler to test signal stepping and breakpointing. The real solution for this problem, so we can single step also non-altered user programs that use SIGTRAP, is to use a, non-existing yet, interface on top of utrace that doesn't use SIGTRAP for reporting events to frysk. -- http://sourceware.org/bugzilla/show_bug.cgi?id=3997 ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.