# New Ticket Created by Mark Glines # Please include the string: [perl #60042] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=60042 >
This GDB was configured as "i686-pc-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) break src/headers.c:110 if buffer == 0x80f9e30 No source file named src/headers.c. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (src/headers.c:110 if buffer == 0x80f9e30) pending. (gdb) run examples/library/pcre.pir asdf as Starting program: /home/infinoid/parrot/parrot examples/library/pcre.pir asdf as [Thread debugging using libthread_db enabled] [New Thread 0xb723e900 (LWP 25750)] Breakpoint 2 at 0xb7b44255: file src/headers.c, line 110. Pending breakpoint "src/headers.c:110 if buffer == 0x80f9e30" resolved asdf =~ /as/ [Switching to Thread 0xb723e900 (LWP 25750)] Breakpoint 2, get_free_buffer (interp=0x8050040, pool=0x8070b60) at src/headers.c:110 110 return buffer; (gdb) print *buffer $1 = {cache = {_b = {_bufstart = 0x0, _buflen = 0}, _ptrs = {_struct_val = 0x0, _pmc_val = 0x0}, _i = {_int_val = 0, _int_val2 = 0}, _num_val = 0, _string_val = 0x0}, flags = 0} (gdb) print buffer->cache._b._bufstart $2 = (void *) 0x0 (gdb) watch *(void**)0x80f9e30 Hardware watchpoint 3: *(void **) 135241264 (gdb) cont Continuing. Hardware watchpoint 3: *(void **) 135241264 Old value = (void *) 0x0 New value = (void *) 0xb7212904 Parrot_allocate_string (interp=0x8050040, str=0x80f9e30, size=500) at src/gc/resources.c:914 914 PObj_buflen(str) = new_size - sizeof (void*); (gdb) bt #0 Parrot_allocate_string (interp=0x8050040, str=0x80f9e30, size=500) at src/gc/resources.c:914 #1 0xb7ac4ee6 in string_make_direct (interp=0x8050040, buffer=0x0, len=500, encoding=0x8070d88, charset=0x8072328, flags=0) at src/string.c:750 #2 0xb7ac5481 in string_repeat (interp=0x8050040, s=0x812e8dc, num=500, d=0x0) at src/string.c:1050 #3 0xb7aeaa04 in Parrot_repeat_s_sc_i (cur_opcode=0x81326e8, interp=0x8050040) at src/ops/string.ops:142 #4 0xb7b8d67c in runops_slow_core (interp=0x8050040, pc=0x81326e8) at src/runops_cores.c:222 #5 0xb7b4d079 in runops_int (interp=0x8050040, offset=263) at src/interpreter.c:937 #6 0xb7b4d91f in runops (interp=0x8050040, offs=263) at src/inter_run.c:101 #7 0xb7b4dbc4 in runops_args (interp=0x8050040, sub=0x80dd63c, obj=0x80b8e28, meth_unused=0x0, sig=0xb7e2ba27 "vP", ap=0xbfa7f6cc " \r\b\b") at src/inter_run.c:236 #8 0xb7b4dcfc in Parrot_runops_fromc_args (interp=0x8050040, sub=0x80dd63c, sig=0xb7e2ba27 "vP") at src/inter_run.c:300 #9 0xb7b33a67 in Parrot_runcode (interp=0x8050040, argc=3, argv=0xbfa7f838) at src/embed.c:959 #10 0xb7e05454 in imcc_run_pbc (interp=0x8050040, obj_file=0, output_file=0x0, argc=3, argv=0xbfa7f838) at compilers/imcc/main.c:791 #11 0xb7e05f02 in imcc_run (interp=0x8050040, sourcefile=0xbfa7ff47 "examples/library/pcre.pir", argc=3, argv=0xbfa7f838) at compilers/imcc/main.c:1079 #12 0x080489c8 in main (argc=3, argv=0xbfa7f838) at src/main.c:61 (gdb) cont Continuing. Hardware watchpoint 3: *(void **) 135241264 Old value = (void *) 0xb7212904 New value = (void *) 0x0 0xb784859e in pcre_compile2 () from /usr/lib/libpcre.so.0 (gdb) bt #0 0xb784859e in pcre_compile2 () from /usr/lib/libpcre.so.0 #1 0xb7848e4f in pcre_compile () from /usr/lib/libpcre.so.0 #2 0xb7b5f2b5 in pcf_p_tiB3P (interp=0x8050040, self=0x80e0480) at src/nci.c:3002 #3 0xb7cf1ca2 in Parrot_NCI_invoke (interp=0x8050040, pmc=0x80e0480, next=0x8132738) at ./src/pmc/nci.pmc:308 #4 0xb7ac9196 in Parrot_invokecc_p (cur_opcode=0x8132730, interp=0x8050040) at src/ops/core.ops:463 #5 0xb7b8d67c in runops_slow_core (interp=0x8050040, pc=0x8132730) at src/runops_cores.c:222 #6 0xb7b4d079 in runops_int (interp=0x8050040, offset=263) at src/interpreter.c:937 #7 0xb7b4d91f in runops (interp=0x8050040, offs=263) at src/inter_run.c:101 #8 0xb7b4dbc4 in runops_args (interp=0x8050040, sub=0x80dd63c, obj=0x80b8e28, meth_unused=0x0, sig=0xb7e2ba27 "vP", ap=0xbfa7f6cc " \r\b\b") at src/inter_run.c:236 #9 0xb7b4dcfc in Parrot_runops_fromc_args (interp=0x8050040, sub=0x80dd63c, sig=0xb7e2ba27 "vP") at src/inter_run.c:300 #10 0xb7b33a67 in Parrot_runcode (interp=0x8050040, argc=3, argv=0xbfa7f838) at src/embed.c:959 #11 0xb7e05454 in imcc_run_pbc (interp=0x8050040, obj_file=0, output_file=0x0, argc=3, argv=0xbfa7f838) at compilers/imcc/main.c:791 #12 0xb7e05f02 in imcc_run (interp=0x8050040, sourcefile=0xbfa7ff47 "examples/library/pcre.pir", argc=3, argv=0xbfa7f838) at compilers/imcc/main.c:1079 #13 0x080489c8 in main (argc=3, argv=0xbfa7f838) at src/main.c:61 (gdb) cont Continuing. 1 match(es): Program received signal SIGSEGV, Segmentation fault. 0xb7c9c6bb in compact_pool (interp=0x8050040, pool=0x8050a40) at src/gc/resources.c:475 475 memcpy(cur_spot, PObj_bufstart(b), PObj_buflen(b)); (gdb) bt #0 0xb7c9c6bb in compact_pool (interp=0x8050040, pool=0x8050a40) at src/gc/resources.c:475 #1 0xb7c9c91d in Parrot_go_collect (interp=0x8050040) at src/gc/resources.c:566 #2 0xb7b3f864 in Parrot_dod_ms_run (interp=0x8050040, flags=1) at src/gc/dod.c:1136 #3 0xb7b3f97a in Parrot_do_dod_run (interp=0x8050040, flags=1) at src/gc/dod.c:1189 #4 0xb7b413d8 in more_traceable_objects (interp=0x8050040, pool=0x8070b60) at src/gc/smallobject.c:163 #5 0xb7b414ba in gc_ms_get_free_object (interp=0x8050040, pool=0x8070b60) at src/gc/smallobject.c:245 #6 0xb7b4421c in get_free_buffer (interp=0x8050040, pool=0x8070b60) at src/headers.c:101 #7 0xb7b4485e in new_string_header (interp=0x8050040, flags=459008) at src/headers.c:444 #8 0xb7ac3e67 in Parrot_make_COW_reference (interp=0x8050040, s=0x812e900) at src/string.c:141 #9 0xb7ac5364 in string_copy (interp=0x8050040, s=0x812e900) at src/string.c:975 #10 0xb7ae6db1 in Parrot_set_s_sc (cur_opcode=0x8132858, interp=0x8050040) at src/ops/set.ops:156 #11 0xb7b8d67c in runops_slow_core (interp=0x8050040, pc=0x8132858) at src/runops_cores.c:222 #12 0xb7b4d079 in runops_int (interp=0x8050040, offset=263) at src/interpreter.c:937 #13 0xb7b4d91f in runops (interp=0x8050040, offs=263) at src/inter_run.c:101 #14 0xb7b4dbc4 in runops_args (interp=0x8050040, sub=0x80dd63c, obj=0x80b8e28, meth_unused=0x0, sig=0xb7e2ba27 "vP", ap=0xbfa7f6cc " \r\b\b") at src/inter_run.c:236 #15 0xb7b4dcfc in Parrot_runops_fromc_args (interp=0x8050040, sub=0x80dd63c, sig=0xb7e2ba27 "vP") at src/inter_run.c:300 #16 0xb7b33a67 in Parrot_runcode (interp=0x8050040, argc=3, argv=0xbfa7f838) at src/embed.c:959 #17 0xb7e05454 in imcc_run_pbc (interp=0x8050040, obj_file=0, output_file=0x0, argc=3, argv=0xbfa7f838) at compilers/imcc/main.c:791 #18 0xb7e05f02 in imcc_run (interp=0x8050040, sourcefile=0xbfa7ff47 "examples/library/pcre.pir", argc=3, argv=0xbfa7f838) at compilers/imcc/main.c:1079 #19 0x080489c8 in main (argc=3, argv=0xbfa7f838) at src/main.c:61 (gdb) print *b $3 = {cache = {_b = {_bufstart = 0x0, _buflen = 500}, _ptrs = {_struct_val = 0x0, _pmc_val = 0x1f4}, _i = {_int_val = 0, _int_val2 = 500}, _num_val = 1.0609978954826362e-311, _string_val = 0x0}, flags = 393472} (gdb)