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]

Re: GDB crashing because of Python


On Thu, Aug 23, 2012 at 8:52 PM, Tom Tromey <tromey@redhat.com> wrote:
>
> Kevin> I'm on Fedora 17, x86_64, Python seems to be at version 2.7.3, gdb is
> Kevin> up to date against the trunk (7.5.50.20120823-cvs)
>
> I installed F17 in a mock chroot and ran the latest gdb there.
> This isn't an identical scenario due to possible kernel differences, but
> I wouldn't expect those to matter.
>
> >> Fatal Python error: GC object already tracked
>
> Kevin> this one appears when I start the inferior execution, and start it again
>
> I couldn't make it crash.
> What happens if you run under valgrind?
> When I do that, I see some output, but nothing that looks too serious
> and/or new.
>
> Tom


Hello,

so based on `git bisect`, it looks like the errors were introduced by
this commit:

--> SystemError:
/builddir/build/BUILD/Python-2.7.3/Objects/listobject.c:178: bad
argument to internal function
--> Fatal Python error: GC object already tracked
# http://sourceware.org/ml/gdb-patches/2012-08/msg00434.html
> commit 97143778fc8aceaca6895de13b93c88811402441
> Author: Tom Tromey <tromey@redhat.com>
> Date:   Wed Aug 15 14:21:57 2012 +0000
>       PR python/14387:


I'm not sure about what relevant information I can provide with
valgrind, so here is the complete log:

==29717== Memcheck, a memory error detector
==29717== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==29717== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==29717== Command: gdb-master --pid 26304 -ex quit
==29717==
GNU gdb (GDB) 7.5.50.20120815-cvs
[... gdb starts ...]
Attaching to process 26304
Reading symbols from /home/kevin/travail/i386/gdb-trunk.build/gdb/gdb...done.
==29719==
==29719== HEAP SUMMARY:
==29719==     in use at exit: 18,910,812 bytes in 38,905 blocks
==29719==   total heap usage: 174,966 allocs, 136,061 frees,
132,543,220 bytes allocated
==29719==
==29719== LEAK SUMMARY:
==29719==    definitely lost: 5,598 bytes in 33 blocks
==29719==    indirectly lost: 24 bytes in 1 blocks
==29719==      possibly lost: 1,819,580 bytes in 10,752 blocks
==29719==    still reachable: 17,085,610 bytes in 28,119 blocks
==29719==         suppressed: 0 bytes in 0 blocks
==29719== Rerun with --leak-check=full to see details of leaked memory
==29719==
==29719== For counts of detected and suppressed errors, rerun with: -v
==29719== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
Reading symbols from /lib64/libdl.so.2...Reading symbols from
/usr/lib/debug/lib64/libdl-2.15.so.debug...
[... symbols loading ...]
==29717== Invalid read of size 8
==29717==    at 0x501076: objfpy_get_printers (py-objfile.c:88)
==29717==    by 0x502ACD: find_pretty_printer_from_objfiles
(py-prettyprint.c:114)
==29717==    by 0x502D75: find_pretty_printer (py-prettyprint.c:190)
==29717==    by 0x503EEE: apply_val_pretty_printer (py-prettyprint.c:719)
==29717==    by 0x5819E8: val_print (valprint.c:727)
==29717==    by 0x581CAD: common_val_print (valprint.c:806)
==29717==    by 0x5C33DA: print_frame_arg (stack.c:282)
==29717==    by 0x5C3F5D: print_frame_args (stack.c:647)
==29717==    by 0x5C4E72: print_frame (stack.c:1171)
==29717==    by 0x5C44A9: print_frame_info (stack.c:826)
==29717==    by 0x5C2F4E: print_stack_frame (stack.c:165)
==29717==    by 0x5BCB09: normal_stop (infrun.c:6053)
==29717==  Address 0xbf8d638 is 24 bytes inside a block of size 240 free'd
==29717==    at 0x4A079AE: free (vg_replace_malloc.c:427)
==29717==    by 0x6F9D9C: xfree (common-utils.c:107)
==29717==    by 0x5CAFAD: catcher_pop (exceptions.c:123)
==29717==    by 0x5CB03D: exceptions_state_mc (exceptions.c:149)
==29717==    by 0x5CB1C8: exceptions_state_mc_action_iter (exceptions.c:210)
==29717==    by 0x6CEE1B: get_frame_pc_if_available (frame.c:1990)
==29717==    by 0x6CEBD2: get_prev_frame (frame.c:1891)
==29717==    by 0x6594F2: value_of_dwarf_reg_entry (dwarf2loc.c:1238)
==29717==    by 0x65969B: value_of_dwarf_block_entry (dwarf2loc.c:1300)
==29717==    by 0x65F125: loclist_read_variable_at_entry (dwarf2loc.c:4009)
==29717==    by 0x5C3632: read_frame_arg (stack.c:335)
==29717==    by 0x5C3F3F: print_frame_args (stack.c:644)
==29717==
==29717==
==29717== Process terminating with default action of signal 11 (SIGSEGV)
==29717==  Bad permissions for mapped region at address 0x456EF0
==29717==    at 0x501081: objfpy_get_printers (py-objfile.c:88)
==29717==    by 0x502ACD: find_pretty_printer_from_objfiles
(py-prettyprint.c:114)
==29717==    by 0x502D75: find_pretty_printer (py-prettyprint.c:190)
==29717==    by 0x503EEE: apply_val_pretty_printer (py-prettyprint.c:719)
==29717==    by 0x5819E8: val_print (valprint.c:727)
==29717==    by 0x581CAD: common_val_print (valprint.c:806)
==29717==    by 0x5C33DA: print_frame_arg (stack.c:282)
==29717==    by 0x5C3F5D: print_frame_args (stack.c:647)
==29717==    by 0x5C4E72: print_frame (stack.c:1171)
==29717==    by 0x5C44A9: print_frame_info (stack.c:826)
==29717==    by 0x5C2F4E: print_stack_frame (stack.c:165)
==29717==    by 0x5BCB09: normal_stop (infrun.c:6053)
0x0000003f190e8b84 in __GI___poll (==29717==
==29717== HEAP SUMMARY:
==29717==     in use at exit: 37,857,799 bytes in 42,044 blocks
==29717==   total heap usage: 849,325 allocs, 807,281 frees,
807,618,669 bytes allocated
==29717==
==29717== LEAK SUMMARY:
==29717==    definitely lost: 5,598 bytes in 33 blocks
==29717==    indirectly lost: 24 bytes in 1 blocks
==29717==      possibly lost: 1,839,074 bytes in 10,983 blocks
==29717==    still reachable: 36,013,103 bytes in 31,027 blocks
==29717==         suppressed: 0 bytes in 0 blocks
==29717== Rerun with --leak-check=full to see details of leaked memory
==29717==
==29717== For counts of detected and suppressed errors, rerun with: -v
==29717== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 2 from 2)
[1]    29717 segmentation fault  valgrind gdb-master --pid 26304 -ex quit


Thanks for your help,

Kevin


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