[R] Rgui.exe fix for "console not found" buffer overflow problem
Jesse Albert Canchola
jesse.canchola.b at bayer.com
Sun Oct 29 07:12:49 CET 2006
I'm using R on Windows XP Professional SP2.
I figured out the fix for my buffer overflow problem that did not allow me
to use Rgui.exe for about two weeks. I would keep getting "console not
found" and even when I uninstalled and re-installed got the same problem.
Here's how the problem started. In Rgui.exe, I attempted to get more
visible output in the buffer (I wanted to be able to scroll up the to the
top and see the variable names, etc.), so I put the max of all 9's in the
Rgui.exe
pull-down menus
Edit > Gui Preferences... > buffer bytes 9999999999999
and
> lines 9999999999999999999
not realizing this would effectively break the Rgui.exe and no matter what
you did to clean R out of your machine and re-install it, you would get
the same thing (with both v2.3.1 and v2.4.0). After a couple of weeks of
using Rterm.exe and meeting deadlines, I finally had time to wade through
the vague references online regarding where the problem might be.
Here's the fix.
Basically, you have to find the Rconsole file (no extension) outside of
the R installation directories (the installation directories will have at
least two copies but those will not be chosen first by the R environment.
What this means is that even if you delete every trace of the
installation, the Rconsole will linger unbenownst to you ready to strike
when you re-install. I found the errant copy in my "My Documents" folder
on my desktop. The way I did it was to put in the following (in its
entirety) in the Rterm.exe window (found at the bottom of ?Rconsole help
file within Rterm.exe):
#### BEGIN R CODE ####
ruser <- Sys.getenv("R_USER")
cat("\n\nLocation for personal configuration files is\n R_USER = ",
ruser, "\n\n", sep="")
## see if there are personal configuration files
sapply(c("Rconsole", "Rdevga"), function(x)
file.exists(file.path(ruser, x)))
## show the configuration files used
showConfig <- function(file)
{
ruser <- Sys.getenv("R_USER")
path <- file.path(ruser, file)
if(!file.exists(path)) path <- file.path(R.home(), "etc", file)
file.show(path, header=path)
}
showConfig("Rconsole")
##### END CODE ####
This will bring up the Rconsole file wherever it exists. Simply open up
the file (if not already open) in the free within-Windows Wordpad.exe
(Start > Run > Open Wordpad.exe) and change the values back to some
smaller number. For me I changed the problematic "bufbytes" and
"buflines" below:
### BEGIN Rconsole Code Portion ###
# memory limits for the console scrolling buffer, in bytes and lines
bufbytes = 9999999999999
buflines = 9999999999999999999
###
to something small like
### BEGIN Rconsole Code Portion ###
# memory limits for the console scrolling buffer, in bytes and lines
bufbytes = 25000
buflines = 50000
###
And voila! my Rgui.exe worked like a charm. It was fun using the
Rterm.exe while it lasted -- forces you to learn code you usually take for
granted in the windows environment. ;O)
Regards,
Jesse A. Canchola
Biostatistician III
Bayer Healthcare, Diagnostics Division
Berkeley, California USA
_______________________________________________________________________________________________
The information contained in this e-mail is for the exclusive use of the intended recipient(s) and may be confidential, proprietary, and/or legally privileged. Inadvertent disclosure of this message does not constitute a waiver of any privilege. If you receive this message in error, please do not directly or indirectly use, print, copy, forward, or disclose any part of this message. Please also delete this e-mail and all copies and notify the sender. Thank you.
For alternate languages please go to http://bayerdisclaimer.bayerweb.com
More information about the R-help
mailing list