From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YtFnG-0007Jy-VU for qemu-devel@nongnu.org; Fri, 15 May 2015 09:36:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YtFnC-0001bx-BE for qemu-devel@nongnu.org; Fri, 15 May 2015 09:36:50 -0400 Received: from david.siemens.de ([192.35.17.14]:36041) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YtFnC-0001az-1o for qemu-devel@nongnu.org; Fri, 15 May 2015 09:36:46 -0400 Message-ID: <5555F669.80805@siemens.com> Date: Fri, 15 May 2015 15:36:41 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <1431621835-7565-1-git-send-email-peter.maydell@linaro.org> <87382yp90i.fsf@blackfin.pond.sub.org> <87egmighkn.fsf@blackfin.pond.sub.org> <5555E918.5070608@siemens.com> <87wq0aasdf.fsf@blackfin.pond.sub.org> In-Reply-To: <87wq0aasdf.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/3] scripts/qemu-gdb: Add event tracing support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Peter Maydell , QEMU Developers , Stefan Hajnoczi , Patch Tracking On 2015-05-15 15:21, Markus Armbruster wrote: > Jan Kiszka writes: > >> On 2015-05-15 14:18, Markus Armbruster wrote: >>> Peter Maydell writes: >>> >>>> On 15 May 2015 at 08:58, Markus Armbruster wrote: >>>>> Since you're touching qemu-gdb.py anyway, could you stick in a brief >>>>> comment explaining how to put it to use? >>>> >>>> Good idea. It turns out the answer is just "source it from gdb", >>>> but it took me a little while to find that out, so worth commenting. >>>> I also have a patch which makes it do the 'ignore SIGUSR1' bit >>>> by doing 'handle SIGUSR1 pass noprint nostop' for you. >>> >>> Here's how to load scripts/qemu-gdb.py automatically: >>> >>> * Apply the appended patch to turn it into a gdb init file >>> >>> That's what it is, after all. It's not a standalone Python program. >>> >>> * Tell gdb to trust it >>> >>> Add a line like >>> >>> add-auto-load-safe-path ~/work/qemu/scripts/qemu-gdb.py >>> >>> to your ~/.gdbinit >>> >>> * Link it into the directory where you run gdb --args qemu... >>> >>> * Verify it works: >>> >>> $ gdb >>> [...] >>> (gdb) help qemu >>> Prefix for QEMU debug support commands >>> >>> List of qemu subcommands: >>> >>> qemu coroutine -- Display coroutine backtrace >>> qemu mtree -- Display the memory tree hierarchy >>> >>> Type "help qemu" followed by qemu subcommand name for full documentation. >>> Type "apropos word" to search for commands related to "word". >>> Command name abbreviations are allowed if unambiguous. >>> (gdb) >>> >>> If you know a better way to do this, please post it. >>> >> >> Yep, that's the basic idea behind gdb python scripts: myapp-gdb.py gets >> auto-pulled on "gdb myapp". Since some gdb 7.x, we have that security >> feature above which prevents pulling from arbitrary sources. >> >>> >>> diff --git a/scripts/qemu-gdb.py b/scripts/qemu-gdb.py >>> index 6c7f4fb..ac3087c 100644 >>> --- a/scripts/qemu-gdb.py >>> +++ b/scripts/qemu-gdb.py >>> @@ -1,5 +1,3 @@ >>> -#!/usr/bin/python >>> - >>> # GDB debugging support >>> # >>> # Copyright 2012 Red Hat, Inc. and/or its affiliates >>> @@ -13,7 +11,7 @@ >>> # Contributions after 2012-01-13 are licensed under the terms of the >>> # GNU GPL, version 2 or (at your option) any later version. >>> >>> - >>> +python >> >> What is this line doing? > > Found here: > https://stackoverflow.com/questions/16553283/python-code-in-gdb-init-file-gdbinit The author there puts his code into .gdbinit, which is a gdb script, not a python one. > > It doesn't work for me without it. When sourcing? Works fine here (gdb 7.7.something). In any case, when you pull in the script via auto-load, that extra non-python statement will break. Try "python python". ;) Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux