# New Ticket Created by Jarkko Hietaniemi
# Please include the string: [perl #30997]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=30997 >
The PDB labels are somehow b0rked in tru64/alpha:
(make pdb)
kosh:/tmp/jhi/parrot ; ./parrot -o foo.pbc t/op/basic_1.pasm
kosh:/tmp/jhi/parrot ; ./pdb foo.pbc
Parrot Debugger 0.0.2
(pdb) l
1 zsh: 437293 segmentation fault (core dumped) ./pdb foo.pbc
kosh:/tmp/jhi/parrot ; dbx ./pdb core.pdb.kosh.0
dbx version 5.1
Type 'help' for help.
Core file created by program "pdb"
thread 0xf signal Segmentation fault at >*[__nxm_thread_kill,
0x3ff805c1ac8] ret zero, (ra), 1
(dbx) where
> 0 __nxm_thread_kill(0xb, 0x3ffc01b6000, 0x3ff805ba108, 0x3ffc01b6000,
0x3ffc01b6000) [0x3ff805c1ac8]
1 pthread_kill(0x0, 0x11fffb438, 0x0, 0x11fffc010, 0x3ff00000001)
[0x3ff805ba120]
2 (unknown)() [0x3ff805c62a8]
3 (unknown)() [0x3ff80633994]
4 exc_raise_signal_exception(0xb0ffe0003, 0x86, 0x0, 0x1200d04a4,
0x1) [0x3ff80633d80]
5 PDB_list(interpreter = 0x1400c4e00, command = 0x1403cb5c1 = "")
["src/debug.c":1973, 0x1200d04a4]
6 PDB_run_command(interpreter = 0x1400c4e00, command = 0x1403cb5c1 =
"") ["src/debug.c":348, 0x1200cc370]
7 Parrot_debug(interpreter = 0x1400c4e00, argc = 1, argv =
0x11fffc020) ["src/embed.c":766, 0x1200c9c10]
8 main(argc = 2, argv = 0x11fffc018) ["src/pdb.c":158, 0x1200c8850]
(dbx) up
(dbx)
up
(dbx)
up
(dbx)
up
(dbx)
up
PDB_list:1973 PIO_eprintf(interpreter, "L%li:\t",line->label->number);
(dbx) p *line
struct {
opcode = 0x822120
source_offset = 0
number = 1
label = 0x6d73
next = 0x14039f7f0
}
(dbx) l
1970 PIO_eprintf(interpreter, "%li ",pdb->file->list_line + i);
1971 /* If it has a label print it */
1972 if (line->label)
> 1973 PIO_eprintf(interpreter, "L%li:\t",line->label->number);
1974 c = pdb->file->source + line->source_offset;
1975 while (*c != '\n')
1976 PIO_eprintf(interpreter, "%c",*(c++));
1977 PIO_eprintf(interpreter, "\n");
1978 line = line->next;
1979 if (i++ == n)
1980 break;
1981 }
1982
1983 if (--i != n)
1984 pdb->file->list_line = 0;
1985 else
1986 pdb->file->list_line += n;
1987 }
1988
1989 /*
(dbx)
The line->label is an impossible pointer, so deferencing causes promptly
a bus error.
--
Jarkko Hietaniemi <[EMAIL PROTECTED]> http://www.iki.fi/jhi/ "There is this special
biologist word we use for 'stable'. It is 'dead'." -- Jack Cohen