Possible regression on gdb.gdb/complaints.exp

Sergio Durigan Junior sergiodj@redhat.com
Mon Jun 4 23:29:00 GMT 2018


On Monday, June 04 2018, Tom Tromey wrote:

>>>>>> "Sergio" == Sergio Durigan Junior <sergiodj@redhat.com> writes:
>
> Sergio>   (gdb) PASS: gdb.gdb/complaints.exp: run until breakpoint at captured_command_loop
> Sergio>   set stop_whining = 2
> Sergio>   (gdb) PASS: gdb.gdb/complaints.exp: set stop_whining = 2
> Sergio>   set var $cstr = "Register a complaint"
> Sergio>   (gdb) PASS: gdb.gdb/complaints.exp: set var $cstr = "Register a complaint"
> Sergio>   call complaint_internal ($cstr)
> Sergio>   free(): invalid pointer
>
> This seems fishy.  I wonder if debugging gdb running under valgrind
> would show anything interesting.

I did try that this weekend, but it hasn't gotten me very far.  What I
did was to start a valgrind gdbserver debugging ./gdb/gdb, and then
attach a GDB to it (also debugging ./gdb/gdb).  When the abort happens,
valgrind doesn't report something useful:

  ==6539== TO DEBUG THIS PROCESS USING GDB: start GDB like this                                  
  ==6539==   /path/to/gdb ./gdb/gdb              
  ==6539== and then give GDB the following command                                               
  ==6539==   target remote | /usr/lib64/valgrind/../../bin/vgdb --pid=6539                       
  ==6539== --pid is optional if only one valgrind process is running                             
  ==6539==                                       
  ==6539== Jump to the invalid address stated on the next line                                   
  ==6539==    at 0x0: ???                        
  ==6539==  Address 0x0 is not stack'd, malloc'd or (recently) free'd                            

Strangely enough, I also tried doing some printf-debugging on
complaint_internal, but nothing is printed.

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/



More information about the Gdb-patches mailing list