This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Multiprogram teaser
- From: Stan Shebs <stan at codesourcery dot com>
- To: gdb at sourceware dot org
- Date: Mon, 28 Jul 2008 18:46:24 -0700
- Subject: Multiprogram teaser
Here's a little teaser showing the results of me flogging GDB's source
code. In addition to the fun aspect of listing the main()s of two
different programs, it points up the the potential confusion of having
several programs in a session. What I've got so far in my prototype is
the ability to collect multiple execs from the command line, the
creation of "exec" objects from which you can select one as "current",
and some symbol table hacking to restrict lookups to the current executable.
stan@adell:~/mpgdb/linux/gdb$ ./gdb -nx ~/hello ~/goodbye
GNU gdb (GDB) 6.8.50.20080728-cvs
[...]
Attaching objfile /home/stan/hello to exec /home/stan/hello
Attaching objfile /home/stan/goodbye to exec /home/stan/goodbye
(gdb) list main
1 int glob = 45;
2
3 main() {
4 mailand();
5 foo(glob);
6 printf("goodbye cruel world\n");
7 }
8
9 foo(int x) {
10 return x + 92;
(gdb) exec /home/stan/hello
Setting current exec to /home/stan/hello.
(gdb) list main
3 if (bar == 0)
4 exit(1);
5 }
6
7 main()
8 {
9 bar();
10 printf("hello world\n");
11 }
12
(gdb)
Stan