This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]