This is a multi-part message in MIME format.
--080506050109020709090406
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Hi,
I get a segmentation fault in eval.c:
do_set (call=0x8ce166c, op=0x82b43b8, args=0x8ce1650, rho=0x8acf218)
at eval.c:1309
1309switch (NAMED(s)) {
The instruction is
0x080becf1 do_set+177:movzbl (%eax),%edx
and %eax contains a non-accessible address
(gdb) x/x $eax
0x4a5bf008: Cannot access memory at address 0x4a5bf008
in another try it was
(gdb) x/x $eax
0x59a5a008: Cannot access memory at address 0x59a5a008
This segmentation fault occurs reproducible in a long simulation script.
However, I don't know the place in the .R file. I would like to isolate
the bug but don't know how. I attached the gdb session. I use R 2.1.0 on
a Linux machine (Athlon64). Maybe a package that I wrote and use for the
simulation clobbers some memory (although I already added some sanity
checks). But please let me know when you hear about this bug another
time (or have an idea how to debug this or have a solution).
Thank you,
Andreas
--
Andreas Westfeld, 0432 01CC F511 9E2B 0B57 5993 0B22 98F8 4AD8 EEEA
[EMAIL PROTECTED] http://www.inf.tu-dresden.de/~aw4
TU Dresden Fakultät Informatik, Institut für Systemarchitektur
Datenschutz und Datensicherheit, Tel. +49-351-463-37918
--080506050109020709090406
Content-Type: text/plain;
name=debug.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename=debug.txt
source(ber3.R)
Program received signal SIGSEGV, Segmentation fault.
do_set (call=0x86c8770, op=0x82b43b8, args=0x86c878c, rho=0x8626404)
at eval.c:1309
1309switch (NAMED(s)) {
# PRIMVAL(op): is 1 (code = 1)
(gdb) p R_FunTab[op-u.primsxp.offset]
$14 = {name = 0x81d99e8 -, cfun = 0x80bec40 do_set, code = 1,
Rf_eval = 100, arity = -1, gram = {kind = PP_ASSIGN, precedence = PREC_LEFT,
rightassoc = 1}}
# isSymbol(CAR(args)):
(gdb) p Rf_isSymbol(CAR(args))
$16 = TRUE
# NAMED(s):
(gdb) p s-sxpinfo.named
$20 = 0
# (s =) eval(CADR(args), rho):
(gdb) p *Rf_eval(CADR(args), rho)
$27 = {sxpinfo = {type = 13, obj = 0, named = 0, gp = 0, mark = 0, debug = 0,
trace = 0, fin = 0, gcgen = 0, gccls = 7}, attrib = 0x82a5588,
gengc_next_node = 0x1ee60648, gengc_prev_node = 0x4b1cb008, u = {primsxp = {
offset = 985600}, symsxp = {pname = 0xf0a00, value = 0x0,
internal = 0x0}, listsxp = {carval = 0xf0a00, cdrval = 0x0,
tagval = 0x0}, envsxp = {frame = 0xf0a00, enclos = 0x0, hashtab = 0x0},
closxp = {formals = 0xf0a00, body = 0x0, env = 0x0}, promsxp = {
value = 0xf0a00, expr = 0x0, env = 0x0}}}
# s:
(gdb) p *s
$28 = {sxpinfo = {type = 7, obj = 0, named = 0, gp = 0, mark = 1, debug = 0,
trace = 0, fin = 0, gcgen = 1, gccls = 0}, attrib = 0x82a5588,
gengc_next_node = 0x85ba270, gengc_prev_node = 0x85bb5c8, u = {primsxp = {
offset = 25}, symsxp = {pname = 0x19, value = 0x82a5588,
internal = 0x82a5588}, listsxp = {carval = 0x19, cdrval = 0x82a5588,
tagval = 0x82a5588}, envsxp = {frame = 0x19, enclos = 0x82a5588,
hashtab = 0x82a5588}, closxp = {formals = 0x19, body = 0x82a5588,
env = 0x82a5588}, promsxp = {value = 0x19, expr = 0x82a5588,
env = 0x82a5588}}}
0x080becd6 do_set+150:call 0x815a720 Rf_isSymbol
---Type return to continue, or q return to quit---
0x080becdb do_set+155:test %eax,%eax
0x080becdd do_set+157:je 0x80bed36 do_set+246
0x080becdf do_set+159:mov%edi,0x4(%esp)
0x080bece3 do_set+163:mov0x14(%ebx),%eax
0x080bece6 do_set+166:mov0x10(%eax),%eax
0x080bece9 do_set+169:mov%eax,(%esp)
0x080becec do_set+172:call 0x80bc530 Rf_eval
# here the SIGSEGV occurs:
0x080becf1 do_set+177:movzbl (%eax),%edx
# %eax:
(gdb) x/x $eax
0x4a5bf008: Cannot access memory at address 0x4a5bf008
SECOND TRY:
Program received signal SIGSEGV, Segmentation fault.
do_set (call=0x8ce166c, op=0x82b43b8, args=0x8ce1650, rho=0x8acf218)
at eval.c:1309
1309switch (NAMED(s)) {
(gdb) x/x $eax
0x59a5a008: Cannot access memory at address 0x59a5a008
(gdb) p *s
$2 = {sxpinfo = {type = 7, obj = 0, named = 0, gp = 0, mark = 1, debug = 0,
trace = 0, fin = 0, gcgen = 1, gccls = 0}, attrib = 0x82a5588,
gengc_next_node = 0x85ba270, gengc_prev_node = 0x85bb5c8, u = {primsxp = {
offset = 25}, symsxp = {pname = 0x19, value = 0x82a5588,
internal = 0x82a5588}, listsxp = {carval = 0x19, cdrval = 0x82a5588,
tagval = 0x82a5588}, envsxp = {frame = 0x19, enclos = 0x82a5588,
hashtab = 0x82a5588}, closxp = {formals = 0x19, body = 0x82a5588,
env = 0x82a5588}, promsxp = {value = 0x19, expr = 0x82a5588,
env = 0x82a5588}}}
(gdb)
--080506050109020709090406--
__
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel