From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: gdb@sourceware.org
Cc: Phil Muldoon <pmuldoon@redhat.com>
Subject: compile: objfiles lifetime UI
Date: Wed, 29 Apr 2015 13:57:00 -0000 [thread overview]
Message-ID: <20150429135735.GA16974@host1.jankratochvil.net> (raw)
Hi,
posting first for an approval CLI UI for managing objfiles currently in
inferior for the 'compile' command.
With each injected code is associated:
* infcall dummy frame - deleted when the code returns or when user interrupts
the code and 'return's from it in CLI.
* objfile - deleted when the dummy frame is deleted
* inferior mmap()ped memory - currently leaked in inferior forever
- prepared in a local patchset: deleted when the objfile is deleted
* inferior malloc()ed memory - only from the posted 'compile print' command
- in the posted 'compile print' command: deleted when the objfile is deleted
The mmap leak was intentional so that one can do for example:
inferior:
char *str = "foo";
GDB:
(gdb) compile code str = "bar";
Now there should be a way to delete everything by default (so that a loop with
'compile print' command will not run the inferior out of memory) but to have
a way to keep the memory alive (so that for example strings can be set) or
even to keep the objfile alive (so that for example a callback function can be
set which may crash so that we want to keep DWARF loaded for the callback
function).
What CLI should be there for it?
(gdB) info compile-files
Num Address Range Frame Name
1 0x00007ffff7ff3000 - 0x00007ffff7ff5000 - file test.c
2 0x00007ffff7ff9000 - 0x00007ffff7ffb000 #0 code puts("hello wor...
(gdb) delete compile-file 1
(gdb) delete compile-file 2
compile-file #2 dummy frame is still valid, use 'return' command to delete it.
(gdb) bt
#0 0x00007ffff7ff9021 in _gdb_expr (__regs=0x7ffff7ff7000) at gdb command line:1
#1 <function called from gdb>
#2 main () at ./gdb.compile/compile-print.c:31
(gdB) info compile-files
Num Address Range Frame Name
2 0x0000003834603da0 - 0x0000003834603dc0 #0 code puts("hello wor...
Jan
next reply other threads:[~2015-04-29 13:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-29 13:57 Jan Kratochvil [this message]
2015-04-30 10:31 ` Phil Muldoon
2015-04-30 10:53 ` Jan Kratochvil
2015-05-06 12:26 ` Jan Kratochvil
2015-05-07 2:53 ` Alexandre Oliva
2015-05-07 17:06 ` Jan Kratochvil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150429135735.GA16974@host1.jankratochvil.net \
--to=jan.kratochvil@redhat.com \
--cc=gdb@sourceware.org \
--cc=pmuldoon@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox