Bug 505943
| Summary: | future breakpoint on pie executable crashes gdb | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Mark Wielaard <mjw> |
| Component: | gdb | Assignee: | Jan Kratochvil <jan.kratochvil> |
| Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | low | ||
| Version: | 11 | CC: | dvlasenk, jan.kratochvil |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | 6.8.50.20090302-27.fc11 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2009-06-18 11:43:15 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
gdb-6.8.50.20090302-27.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/gdb-6.8.50.20090302-27.fc11 gdb-6.8-32.fc10 has been submitted as an update for Fedora 10. http://admin.fedoraproject.org/updates/gdb-6.8-32.fc10 gdb-6.8-32.fc10 has been pushed to the Fedora 10 stable repository. If problems still persist, please make note of it in this bug report. gdb-6.8.50.20090302-27.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report. |
Description of problem: Putting a future breakpoint on a library in a pie executable crashes gdb when library is loaded. Version-Release number of selected component (if applicable): GNU gdb (GDB) Fedora (6.8.50.20090302-23.fc11) How reproducible: Always Steps to Reproduce: 1. cat main.c #include <stdio.h> // function from our library int func (void); int main (int argc, char *argv[], char *envp[]) { printf("main\n"); func (); return 0; } 2. cat library.c #include <stdio.h> static void lib_func () { printf("lib_func\n"); } void func () { printf("func\n"); } 3. gcc library.c -g -O0 -fPIC -shared -o liblibrary.so 4. gcc main.c -fPIE -pie -g -O0 -L. -llibrary -Wl,-rpath,. -o main 5. gdb main (gdb) break lib_func Function "lib_func" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (lib_func) pending. (gdb) run Starting program: /home/mark/src/tests/main Segmentation fault If the executable isn't compile -pie future breakpoint works as expected. Additional info: Running gdb under gdb shows a segfault: Program received signal SIGSEGV, Segmentation fault. 0x00000000004c63dd in disable_breakpoints_at_startup (silent=1) at ../../gdb/breakpoint.c:5026 5026 !b->loc->duplicate) (gdb) bt #0 0x00000000004c63dd in disable_breakpoints_at_startup (silent=1) at ../../gdb/breakpoint.c:5026 #1 0x00000000005069c7 in post_create_inferior (target=0xa0e380, from_tty=0) at ../../gdb/infcmd.c:423 #2 0x0000000000507249 in run_command_1 (args=0x0, from_tty=1, tbreak_at_main=<value optimized out>) at ../../gdb/infcmd.c:569 #3 0x0000000000451969 in execute_command (p=0xe0c103 "", from_tty=1) at ../../gdb/top.c:450 #4 0x000000000051c325 in command_handler (command=0xe0c100 "") at ../../gdb/event-top.c:519 #5 0x000000000051cfec in command_line_handler (rl=<value optimized out>) at ../../gdb/event-top.c:744 #6 0x000000389ce27e2c in rl_callback_read_char () at ../callback.c:205 #7 0x000000000051c469 in rl_callback_read_char_wrapper (client_data=0x0) at ../../gdb/event-top.c:179 #8 0x000000000051adc8 in process_event () at ../../gdb/event-loop.c:394 #9 0x000000000051bfba in gdb_do_one_event (data=<value optimized out>) at ../../gdb/event-loop.c:459 #10 0x00000000005160eb in catch_errors (func=<value optimized out>, func_args=<value optimized out>, errstring=<value optimized out>, mask=<value optimized out>) at ../../gdb/exceptions.c:516 #11 0x00000000004a6d28 in tui_command_loop (data=<value optimized out>) at ../../gdb/tui/tui-interp.c:156 #12 0x00000000004449c9 in captured_command_loop (data=0x0) at ../../gdb/main.c:183 #13 0x00000000005160eb in catch_errors (func=<value optimized out>, func_args=<value optimized out>, errstring=<value optimized out>, mask=<value optimized out>) at ../../gdb/exceptions.c:516 #14 0x000000000044533e in captured_main (data=<value optimized out>) at ../../gdb/main.c:989 #15 0x00000000005160eb in catch_errors (func=<value optimized out>, func_args=<value optimized out>, errstring=<value optimized out>, mask=<value optimized out>) at ../../gdb/exceptions.c:516 #16 0x00000000004449b4 in gdb_main (args=0x0) at ../../gdb/main.c:999 #17 0x0000000000444989 in main (argc=<value optimized out>, argv=0x0) at ../../gdb/gdb.c:47