From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11935 invoked by alias); 31 Jan 2008 15:28:17 -0000 Received: (qmail 11919 invoked by uid 22791); 31 Jan 2008 15:28:16 -0000 X-Spam-Check-By: sourceware.org Received: from web90410.mail.mud.yahoo.com (HELO web90410.mail.mud.yahoo.com) (216.252.100.162) by sourceware.org (qpsmtpd/0.31) with SMTP; Thu, 31 Jan 2008 15:27:47 +0000 Received: (qmail 13359 invoked by uid 60001); 31 Jan 2008 15:27:46 -0000 X-YMail-OSG: xWFDecAVM1mH1Arpz7PVWjwZFgTloXFRAIs4akXGQHxfVzM31WzKQU9cVpgArD3rLskVzQ3muGaA7paNDdU0znhpRhsB5xzwJjz6jC_fnp3IyVcNHI8- Received: from [99.229.24.71] by web90410.mail.mud.yahoo.com via HTTP; Thu, 31 Jan 2008 07:27:45 PST X-Mailer: YahooMailRC/818.31 YahooMailWebService/0.7.162 Date: Thu, 31 Jan 2008 15:28:00 -0000 From: Arun Paneri Subject: Re: beginner To: srinivasbakki@yahoo.co.uk Cc: gdb@sourceware.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Message-ID: <922038.13119.qm@web90410.mail.mud.yahoo.com> 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: 2008-01/txt/msg00361.txt.bz2 See this mail chain if it helps you (Courtesy Michael Snyder) Also go through this site http://sourceware.org/gdb/current/onlinedocs/gdbint_toc.html Regards. var YAHOO = {'Shortcuts' : {}}; YAHOO.Shortcuts.hasSensitiveText = false; YAHOO.Shortcuts.sensitivityType = []; YAHOO.Shortcuts.doUlt = false; YAHOO.Shortcuts.location = "us"; YAHOO.Shortcuts.document_id = 0; YAHOO.Shortcuts.document_type = ""; YAHOO.Shortcuts.document_title = "Re: Pls help: regarding gdb internals"; YAHOO.Shortcuts.document_publish_date = ""; YAHOO.Shortcuts.document_author = "msnyder@specifix.com"; YAHOO.Shortcuts.document_url = ""; YAHOO.Shortcuts.document_tags = ""; YAHOO.Shortcuts.annotationSet = { }; On Wed, 2008-01-16 at 11:59 -0800, Arun Paneri wrote: > Hi All, > > I am new to gdb code and trying to learn more things. i need help regarding gdb internals. > > Can anyone write few lines about how does gdb internally works. > I went to "Gdb internals guide" but couldn't find much information > specifically which i am looking for. I want information like > when we give command > "$gdb test.exe" > then how internaly it works. Does it start reading symbols > and start making symbol table with this command ? Yes. > Does it start creating stack frames as we give command "run" or before even that with "$gdb test.exe"? No, and no. Before you "run" a program, there are no stack frames. But gdb does not start constructing its internal stack frame representation until the program STOPS, eg. at a breakpoint or after executing a "step". > I am basically interested to know about creation of frames and how does gdb read them back when we give "backtrace" command? For performance reasons, gdb tries to construct its stack frame data lazily -- it postpones the work whenever possible. So, in general, whenever the program stops, gdb will construct one (and hopefully only one) stack frame -- the one for the function in which the program stopped. If you give the "up" command, gdb will construct the next (one) stack frame. If you ask for "backtrace 10" it will construct the next ten stack frames. And if you ask for a full backtrace, gdb will construct as many stack frames as it can find. > > I am not sure but i think to creat a frame it calls _initialize_stack (void) No. That function is the initializer for the "stack.c" module. It is called when gdb starts up, and just initializes the infrastructure for stack manipulation. > and from this it calls fun_command(char *arg, int from_tty) then parse_frame_specification(char *frame_exp) & then create_new_frame(CORE_ADDR addr, CORE_ADDR pc) function. Start with the function "get_prev_frame", and work your way up (and down) from there. ----- Original Message ---- > srinivas > bakki > wrote: > > > Hi > people, > > > I > wanted > to > start > going > through > the > GDB > > > source > code > to > learn > how > it > is > implemented, > what > goes > > > into > the > application > and > its > various > nuances, > perhaps > > > in > a > direction > to > be > an > active > contributor > to > gdb. > > > > > But > am > not > able > to > get > a > clue > for > the > starting > point. > > > where > should > i > start > digging > the > code > ? > > > > > Would > be > great > if > you > people > help > me > through > this. > > man > ptrace > > You > should > have > a > good > understanding > of > how > the > unix > process > works > first. > ____________________________________________________________________________________ Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping