[5.6] Gdb does not output the correct value of a structure.
Issue
-
Gdb does not output the correct value of a structure in the following situation:
- The target program links two libraries.
- The two libraries have the same structure.
- The structure is a global variable.
-
When gdb debugs the one of library, it does not output the correct value of the structure.
-
Please see the following log:
# gdb ./test\_main ... (snip) ... http://www.gnu.org/software/gdb/bugs/ Reading symbols from /root/iza/test/test\_main...done. (gdb) b A\_Main Function "A\_Main" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (A\_Main) pending. (gdb) run Starting program: /root/iza/test/test\_main Breakpoint 1, A\_Main () at ./test2.c:23 23 memset(&test, '\0', sizeof(TEST)); (gdb) n 25 test.num = 10; (gdb) n 26 strcpy(test.c1, "aaaaa"); (gdb) n 27 strcpy(test.c2, "bbbbb"); (gdb) n 29 printf("ADDRESS of test: %p\n", &test); (gdb) n ADDRESS of test: 0xf7ffc718 31 printf("test.c1 = %s\n", test.c1); (gdb) n test.c1 = aaaaa 32 printf("test.c2 = %s\n", test.c2); (gdb) n test.c2 = bbbbb 35 } (gdb) p A::test $1 = {c1 = "\000\000\000\000\000", c2 = "\000\000\000\000\000", num = 0} -
The value of "test" structure is not output though some values are set to the structure.
Environment
- Red Hat Enterprise Linux 5 Update 6
- Architecture: x86_64
- Kernel Version: kernel-2.6.18-238.el5
- Package Version: gdb-7.0.1-32.el5
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
