From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16269 invoked by alias); 20 Jan 2006 14:14:10 -0000 Received: (qmail 16261 invoked by uid 22791); 20 Jan 2006 14:14:09 -0000 X-Spam-Check-By: sourceware.org Received: from svr68.ehostpros.com (HELO svr68.ehostpros.com) (67.15.48.48) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 20 Jan 2006 14:14:05 +0000 Received: from [61.11.18.135] (helo=titan.linsyssoft.com) by svr68.ehostpros.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.52) id 1Ezx0x-0005fl-Dr; Fri, 20 Jan 2006 06:13:20 -0800 Received: from krypton (krypton [192.168.1.13] (may be forged)) by titan.linsyssoft.com (8.13.1/8.13.1) with ESMTP id k0KDxjtE003271; Fri, 20 Jan 2006 19:29:45 +0530 Subject: Re: [Patch] Mark the thread_event breakpoint as "not inserted" before calling thread_mourn_inferior From: Girish Shilamkar To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com In-Reply-To: <20060118135735.GA3154@nevyn.them.org> References: <1137512294.3217.29.camel@krypton> <20060117154004.GA3672@nevyn.them.org> <1137575670.3221.17.camel@krypton> <20060118135735.GA3154@nevyn.them.org> Content-Type: text/plain Date: Fri, 20 Jan 2006 14:14:00 -0000 Message-Id: <1137766638.3225.40.camel@krypton> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-01/txt/msg00246.txt.bz2 > As I suspected something is wrong with your host system, kernel, > environment, or similar. You may want to try a few others. Thanks for the reply. I tried gdb-6.4 on Fedora Core 3 & 4 and always saw that problem. I further tried gdb-6.3 on the same m/c with same configuration (only the gdb had changed )on which I had seen this problem and it worked fine. Then while investigating further about the different behaviour of the two gdb's i.e. gdb-6.3 and gdb-6.4 I found one difference that gdb-6.3 doesn't have a function called thread_db_xfer_partial. The following call trace is same for both the gdbs #11 0x08131c24 in target_write_memory (memaddr=4626416, myaddr=0x95a7618 "U", len=1) at ../../src/gdb/target.c:1013 #12 0x081305a2 in default_memory_remove_breakpoint (addr=4626416, contents_cache=0x95a7618 "U") at ../../src/gdb/mem- break.c:78 #13 0x08124292 in gdbarch_memory_remove_breakpoint (gdbarch=0x9545f90, addr=4626416, contents_cache=0x95a7618 "U") at ../../src/gdb/gdbarch.c:2960 #14 0x081305e0 in memory_remove_breakpoint (addr=4626416, contents_cache=0x95a7618 "U") at ../../src/gdb/mem- break.c:91 #15 0x080cffdd in remove_breakpoint (b=0x95a7600, is=mark_inserted) at ../../src/gdb/breakpoint.c:1452 #16 0x080d82aa in delete_breakpoint (bpt=0x95a7558) at ../../src/gdb/breakpoint.c:6772 #17 0x080d4258 in remove_thread_event_breakpoints () at ../../src/gdb/breakpoint.c:4295 #18 0x08096875 in thread_db_mourn_inferior () at ../../src/gdb/linux-thread-db.c:1107 #19 0x0810da19 in handle_inferior_event (ecs=0xfefa4cb0) at ../../src/gdb/infrun.c:1376 (More stack frames follow...) in target_write_memory, gdb-6.3 calls target_xfer_memory whereas gdb-6.4 calls xfer_using_stratum this difference is there since target_stack->to_xfer_partial is set to deafult_xfer_partial for gdb-6.3 whereas it is set to thread_db_xfer_partial for gdb-6.4 So the further functions which are called for gdb-6.4 are xfer_using_stratum -> target_xfer_partial -> thread_db_xfer_partial And in thread_db_xfer_partial it checks whether the thread is alive or not (target_thread_alive) and while doing so it tries to fetch registers ptrace(PTRACE_GETREGS,.....) and fails. Kindly let me know what's wrong? Thanks & Regards, -Girish.