r26053 produces the segfault shown below, which looks like another
case of trying to compare the HLL name "lisp" to something corrupted
from the HLL name-to-ID hash.  (FWIW, it was still broken as of r26165.)

   However, if I revert the src/pmc/string.pmc change, it works again,
and also in r26175.

   The failure happens about 2/3 of the way through loading bytecode
files at Kea-CL startup time, so I could create a test case if you
wanted to poke at it yourself, but it would be pretty big.  WDYT?

                                        -- Bob Rogers
                                           http://rgrjr.dyndns.org/

------------------------------------------------------------------------
(gdb) r kea.pbc
The program being debugged has been started already.
Start it from the beginning? (y or n) y
`/usr/src/parrot/parrot' has changed; re-reading symbols.
Starting program: /usr/src/parrot/parrot kea.pbc
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1226398000 (LWP 20012)]
warning: Lowest section in /usr/lib/libicudata.so.34 is .hash at 000000b4

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1226398000 (LWP 20012)]
0xb7df2382 in ascii_compare (interp=0x8050008, lhs=0x82c8bf4, rhs=0xb6dbffc8) 
at src/charset/ascii.c:474
(gdb) p lhs
$1 = (const STRING *) 0x82c8bf4
(gdb) p rhs
$2 = (const STRING *) 0xb6dbffc8
(gdb) p rhs->strstart
$3 = 0xb6c2ed80 <Address 0xb6c2ed80 out of bounds>
(gdb) p lhs->strstart
$4 = 0xb6b1d0f0 "lisp"
(gdb) bt
#0  0xb7df2382 in ascii_compare (interp=0x8050008, lhs=0x82c8bf4, 
rhs=0xb6dbffc8) at src/charset/ascii.c:474
#1  0xb7c42862 in string_equal (interp=0x8050008, s1=0x82c8bf4, s2=0xb6dbffc8) 
at src/string.c:1433
#2  0xb7cb32db in STRING_compare (interp=0x8050008, search_key=0x82c8bf4, 
bucket_key=0xb6dbffc8) at src/hash.c:157
#3  0xb7cb418d in parrot_hash_get_bucket (interp=0x8050008, hash=0x8094d78, 
key=0x82c8bf4) at src/hash.c:978
#4  0xb7e669d3 in Parrot_OrderedHash_exists_keyed_str (interp=0x8050008, 
pmc=0x8094d58, key=0x82c8bf4) at ./src/pmc/orderedhash.pmc:400
#5  0xb7cb5d9a in Parrot_get_HLL_id (interp=0x8050008, hll_name=0x82c8bf4) at 
src/hll.c:264
#6  0xb7e254b3 in Parrot_Sub_thaw (interp=0x8050008, pmc=0x82ec5d8, 
info=0xbfb96688) at ./src/pmc/sub.pmc:528
#7  0xb7ceeac9 in do_thaw (interp=0x8050008, pmc=0x82ec5d8, info=0xbfb96688) at 
src/pmc_freeze.c:1228
#8  0xb7cef2bf in visit_todo_list_thaw (interp=0x8050008, old=0x0, 
info=0xbfb96688) at src/pmc_freeze.c:1487
#9  0xb7cef479 in visit_loop_todo_list (interp=0x8050008, current=0x0, 
info=0xbfb96688) at src/pmc_freeze.c:1551
#10 0xb7cef806 in run_thaw (interp=0x8050008, image=0x82c8d38, 
what=VISIT_THAW_NORMAL) at src/pmc_freeze.c:1688
#11 0xb7cefa80 in Parrot_thaw (interp=0x8050008, image=0x82c8d38) at 
src/pmc_freeze.c:1808
#12 0xb7cea260 in PackFile_Constant_unpack_pmc (interp=0x8050008, 
constt=0x8444ae0, self=0x8489e58, cursor=0xb6c7dbb8) at src/packfile.c:3485
#13 0xb7cea1b8 in PackFile_Constant_unpack (interp=0x8050008, constt=0x8444ae0, 
self=0x8489e58, cursor=0xb6c7db0c) at src/packfile.c:3439
#14 0xb7ce9e8c in PackFile_ConstTable_unpack (interp=0x8050008, seg=0x8444ae0, 
cursor=0xb6c7db08) at src/packfile.c:3235
#15 0xb7ce752a in PackFile_Segment_unpack (interp=0x8050008, self=0x8444ae0, 
cursor=0xb6c7b240) at src/packfile.c:1552
#16 0xb7ce7a4e in directory_unpack (interp=0x8050008, segp=0x8478650, 
cursor=0xb6c7b230) at src/packfile.c:1728
#17 0xb7ce752a in PackFile_Segment_unpack (interp=0x8050008, self=0x8478650, 
cursor=0xb6c6c040) at src/packfile.c:1552
#18 0xb7ce643a in PackFile_unpack (interp=0x8050008, self=0x8478650, 
packed=0xb6c6c000, packed_size=129232) at src/packfile.c:859
#19 0xb7ca5017 in Parrot_readbc (interp=0x8050008, fullname=0x84ab490 
"defmacro.pbc") at src/embed.c:492
#20 0xb7cea624 in PackFile_append_pbc (interp=0x8050008, filename=0x84ab490 
"defmacro.pbc") at src/packfile.c:3615
#21 0xb7cea807 in Parrot_load_bytecode (interp=0x8050008, file_str=0x82873b0) 
at src/packfile.c:3672
#22 0xb7c44de7 in Parrot_load_bytecode_s (cur_opcode=0xb7b58ca0, 
interp=0x8050008) at src/ops/core.ops:153
#23 0xb7cf0bc4 in runops_slow_core (interp=0x8050008, pc=0xb7b58ca0) at 
src/runops_cores.c:213
#24 0xb7cbca46 in runops_int (interp=0x8050008, offset=4080) at 
src/interpreter.c:878
#25 0xb7cbd387 in runops (interp=0x8050008, offs=4080) at src/inter_run.c:104
#26 0xb7cbd62c in runops_args (interp=0x8050008, sub=0x81d6250, obj=0x80947b8, 
meth_unused=0x0, sig=0xb7f15577 "vP", ap=0xbfb96b6c " 
b\035\b\xA8k洪`–契\xDD\035\b b\035\bPb\035\b捃祈\xA8k洪2\xFF邨\b") at 
src/inter_run.c:230
#27 0xb7cbd76c in Parrot_runops_fromc_args (interp=0x8050008, sub=0x81d6250, 
sig=0xb7f15577 "vP") at src/inter_run.c:299
#28 0xb7ca5ab7 in Parrot_runcode (interp=0x8050008, argc=1, argv=0xbfb96cd8) at 
src/embed.c:914
#29 0xb7eeff32 in imcc_run_pbc (interp=0x8050008, obj_file=0, output_file=0x0, 
argc=1, argv=0xbfb96cd8) at compilers/imcc/main.c:794
#30 0xb7ef09e2 in imcc_run (interp=0x8050008, sourcefile=0xbfb9737b "kea.pbc", 
argc=1, argv=0xbfb96cd8) at compilers/imcc/main.c:1076
#31 0x080488f2 in main (argc=1, argv=0xbfb96cd8) at src/main.c:56
(gdb) 

Reply via email to