This is the mail archive of the gdb-prs@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]

[Bug breakpoints/12217] New: gdb segfaults while using stracecommand with no arguments


http://sourceware.org/bugzilla/show_bug.cgi?id=12217

           Summary: gdb segfaults while using strace command with no
                    arguments
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: breakpoints
        AssignedTo: unassigned@sourceware.org
        ReportedBy: dennisfrancis.in@gmail.com


Created attachment 5120
  --> http://sourceware.org/bugzilla/attachment.cgi?id=5120
Screen dump of debug procedure; Backtrace of gdb using gdb

Steps to reproduce
------------------
1. Start gdb
2. Load and start any arbitrary binary.
3. Issue the command 'strace' without any args
---> gdb segfaults !

As per GDB's internal doc
"""
(gdb) help strace
Set a static tracepoint at specified line, function or marker.

strace [LOCATION] [if CONDITION]
.....
.....
With no LOCATION, uses current execution address of
the selected stack frame
"""

Debug gdb using gdb
--------------------
1. Created a simple binary "trivial"
2. Started gdb 
3. load and run gdb
   3.1.  Load and start "trivial"
   3.2.  issue 'strace' command
       ....<segfaults>
4. run bt

[See the attachment for the complete screen dump]

Backtrace generated in the parent gdb after the segfault
---------------------------------------------------------

#0  0xb7cca90d in strncmp () from /lib/libc.so.6
#1  0x08109ebd in create_breakpoint (gdbarch=0x8542578, arg=0x0,
cond_string=0x0, thread=0, parse_condition_and_thread=1, tempflag=0, 
    type_wanted=bp_static_tracepoint, ignore_count=0,
pending_break_support=AUTO_BOOLEAN_AUTO, ops=0x0, from_tty=1, enabled=1) at
breakpoint.c:7475
#2  0x0810f7cf in strace_command (arg=0x0, from_tty=1) at breakpoint.c:10908
#3  0x080c4beb in do_cfunc (c=0x8452368, args=0x0, from_tty=1) at
./cli/cli-decode.c:67
#4  0x080c72cb in cmd_func (cmd=0x8452368, args=0x0, from_tty=1) at
./cli/cli-decode.c:1771
#5  0x080578dd in execute_command (p=0x84309d6 "", from_tty=1) at top.c:422
#6  0x0816f27a in command_handler (command=0x84309d0 "strace") at
event-top.c:498
#7  0x0816f7de in command_line_handler (rl=0x8511b48 "\300\241X\b(\033Q\b") at
event-top.c:702
#8  0x0825992b in rl_callback_read_char () at callback.c:205
#9  0x0816e9e7 in rl_callback_read_char_wrapper (client_data=0x0) at
event-top.c:178
#10 0x0816f172 in stdin_event_handler (error=0, client_data=0x0) at
event-top.c:433
#11 0x0816deaa in handle_file_event (data=...) at event-loop.c:817
#12 0x0816d6ed in process_event () at event-loop.c:399
#13 0x0816d7b2 in gdb_do_one_event (data=0x0) at event-loop.c:464
#14 0x0816864a in catch_errors (func=0x816d6fb <gdb_do_one_event>,
func_args=0x0, errstring=0x832968b "", mask=6) at exceptions.c:518
#15 0x080d9f48 in tui_command_loop (data=0x0) at ./tui/tui-interp.c:171
#16 0x08168d16 in current_interp_command_loop () at interps.c:291
#17 0x0804ebee in captured_command_loop (data=0x0) at ./main.c:227
#18 0x0816864a in catch_errors (func=0x804ebe3 <captured_command_loop>,
func_args=0x0, errstring=0x830ac06 "", mask=6) at exceptions.c:518
#19 0x0804fa7e in captured_main (data=0xbffff480) at ./main.c:910
#20 0x0816864a in catch_errors (func=0x804ec24 <captured_main>,
func_args=0xbffff480, errstring=0x830ac06 "", mask=6) at exceptions.c:518
#21 0x0804fab4 in gdb_main (args=0xbffff480) at ./main.c:919
#22 0x0804e973 in main (argc=1, argv=0xbffff544) at gdb.c:34

Looks like strncpy() dereferences the null pointer arg

I haven't tried any previous versions for the same issue.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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