From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10147 invoked by alias); 23 Dec 2009 19:33:03 -0000 Mailing-List: contact archer-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: List-Id: Received: (qmail 10126 invoked by uid 22791); 23 Dec 2009 19:33:01 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org From: Tom Tromey To: David Malcolm Cc: archer@sourceware.org Subject: Re: Pretty-printing backtraces when "python" is the inferior process References: <1261524321.2228.70.camel@brick> Reply-To: Tom Tromey Date: Wed, 23 Dec 2009 19:33:00 -0000 In-Reply-To: <1261524321.2228.70.camel@brick> (David Malcolm's message of "Tue, 22 Dec 2009 18:25:21 -0500") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2009-q4/txt/msg00132.txt.bz2 >>>>> "David" == David Malcolm writes: David> I'm experimenting with archer, and adding python hooks for when the David> inferior process is itself Python. Awesome. David> I've attempted to do this, but am running into an issue. (this is on David> Fedora 12 i386) David> $ git checkout --track -b archer-tromey-python origin/archer-tromey-python David> (gdb) frame 9 David> #9 PyEval_EvalFrameEx (f=, throwflag= optimized out>) at Python/ceval.c:2389 David> 2389 x = call_function(&sp, oparg); I tried this same example on my F11 box. I am not sure exactly what bug you are hitting, but I think it is something that is fixed either in CVS head or in some other Fedora patch. I say that because the example fails with archer-tromey-python, but works with the F11 system gdb. I think it has to do with the representation of inlined frames -- when I trace into lookup_symbol, if I look at the blocks I eventually see: (gdb) p *block.superblock.function $5 = { ginfo = { name = 0x92be5e8 "call_function", I don't fully understand this, because I would have expected the selected frame to be PyEval_EvalFrameEx, not call_function. However, I'm planning to do a merge from trunk in early January, which may fix the problem. In the meantime, maybe using archer-jankratochvil-fedora12 would be better. Or even using the system gdb... though that will make it a bit harder if you need to modify the python libraries. Tom