From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29569 invoked by alias); 10 Nov 2011 22:19:27 -0000 Received: (qmail 29553 invoked by uid 22791); 10 Nov 2011 22:19:26 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,TW_SV X-Spam-Check-By: sourceware.org Received: from crispin.apple.com (HELO mail-out.apple.com) (17.151.62.50) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 10 Nov 2011 22:19:12 +0000 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from relay13.apple.com ([17.128.113.29]) by mail-out.apple.com (Oracle Communications Messaging Exchange Server 7u4-20.01 64bit (built Nov 21 2010)) with ESMTPS id <0LUG001BVTYRZ9P1@mail-out.apple.com> for gdb@sourceware.org; Thu, 10 Nov 2011 14:18:45 -0800 (PST) Received: from moleja2.apple.com (moleja2.apple.com [17.226.33.248]) (using TLS with cipher AES128-SHA (AES128-SHA/128 bits)) (Client did not present a certificate) by relay13.apple.com (Apple SCV relay) with SMTP id 34.DA.30243.4CD4CBE4; Thu, 10 Nov 2011 14:18:44 -0800 (PST) Subject: Re: gdb on Mac OS bpt implementation question From: Jason Molenda In-reply-to: <4EB9BE43.7050200@oracle.com> Date: Thu, 10 Nov 2011 22:19:00 -0000 Cc: gdb@sourceware.org Message-id: <02316737-5D19-4720-912A-A8A475940A4D@apple.com> References: <4EB9BE43.7050200@oracle.com> To: Mick Jordan X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2011-11/txt/msg00078.txt.bz2 On Nov 8, 2011, at 3:41 PM, Mick Jordan wrote: > I'd be grateful if someone could point me to where in the gdb source code that Mac OS specific breakpoint setting is done. The problem I am trying to resolve is how breakpoints are set in shared libraries, given that they are loaded read-only on Mac OS X (assuming the "write a bpt instruction" approach). For what it's worth, two other implementations that may be worth consulting on issues like this are the Apple fork of gdb, downloadable here http://opensource.apple.com/ although it's based on the gdb sources circa 2006-2007. lldb, the new debugger that we've been writing recently is licensed under the LLVM copyright (berkeley-style) and has a public svn repository, is also a good reference for how debuggers work on the Mac OS X platform. v. http://lldb.llvm.org/ although note that lldb's primary method of operation on Mac OS X is to debug the inferior via a gdbserver-like program via gdb remote protocol (our implementation is "debugserver" and the sources are in lldb/tools/debugserver in the source checkout). Originally we had lldb controlling the inferior process directly but on Mac OS X we've moved away from that and have all process done by debugserver - that's where you'd want to look to see how the low level memory reading/writing/etc is done. Jason