Mirror of the gdb mailing list
 help / color / mirror / Atom feed
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


             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