[Rd] segmentation violation when closing the data entry window (PR#1453)
eglen@pcg.wustl.edu
eglen@pcg.wustl.edu
Thu, 11 Apr 2002 20:55:01 +0200 (MET DST)
[This is on Redhat Linux 7.1, using sawfish window manager under gnome:
Version:
platform = i686-pc-linux-gnu
arch = i686
os = linux-gnu
system = i686, linux-gnu
status = Under development (unstable)
major = 1
minor = 5.0
year = 2002
month = 04
day = 11
language = R
Search Path:
.GlobalEnv, package:ctest, Autoloads, package:base
]
If I close the data.entry() window using the Window manager, I get
SIGSEGV. When debugging, the routine closewin() gets closed twice -
on the first time, the window closes, the second time I get the error.
This is with r-devel as of today, with "CFLAGS -g". I edited
closewin() in dataentry.c to show me when it is called:
void closewin(void)
{
printf("In routine closewin\n");
XFreeGC(iodisplay, iogc);
XDestroyWindow(iodisplay, iowindow);
XCloseDisplay(iodisplay);
}
% bin/R
> x <- edit(data.frame())
The data frame pops up. I just click on the Window manager close
button (not the "Quit" button):
In routine closewin
In routine closewin
Program received signal SIGSEGV, Segmentation fault.
0x08bd62d2 in ?? ()
When I step through in gdb (below), I see the data frame window
disappears after the first call to closewin; the segmentation fault
happens within the second call.
% bin/R -d gdb
(gdb) run
[R starts up] Ctrl-c to get back to debugger:
(gdb) break closewin
Breakpoint 1 at 0x402195ff: file dataentry.c, line 1315.
(gdb) cont
Continuing.
> x <- edit(data.frame())
At this point, I click the "close" button provided by the window
manager, control returns to gdb. If I then single-step through gdb, I
see the error in the second call to closewin (from line 313 of
dataentry.c)
Breakpoint 1, closewin () at dataentry.c:1315
1315 printf("In routine closewin\n");
(gdb) n
In routine closewin
1316 XFreeGC(iodisplay, iogc);
(gdb)
1317 XDestroyWindow(iodisplay, iowindow);
(gdb)
1318 XCloseDisplay(iodisplay);
(gdb)
1319 }
(gdb)
eventloop () at dataentry.c:1155
1155 done = 1;
(gdb)
1157 break;
(gdb)
1161 }
(gdb)
RX11_dataentry (call=0x850b7c0, op=0x8270afc, args=0x8bd4e84, rho=0x8bcd998)
at dataentry.c:312
312 endcontext(&cntxt);
(gdb)
313 closewin();
(gdb)
Breakpoint 1, closewin () at dataentry.c:1315
1315 printf("In routine closewin\n");
(gdb)
In routine closewin
1316 XFreeGC(iodisplay, iogc);
(gdb)
Program received signal SIGSEGV, Segmentation fault.
0x08bd750a in ?? ()
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._