2010-08-01 48 views
3

我使用R 2.11.1和XML包3.1-0,當我遇到一個段錯誤時,我正在通過一個來自R2GoogleMaps的示例。htmlParse()R XML包中的segfault錯誤:'內存未映射'

#library(RJSONIO) 
library(R2GoogleMaps) 
library(XML) 
#library(RCurl) 

load("b.rda") # find in the sampleDocs folder in source file of R2GoogleMaps 

center = c(mean(range(b$lat)), mean(range(b$long))) 
code = addOverlay(gpolyline(b)) 

d = googleMapsDoc(code, center, zoom = 11, dim = c(750, 700), file = "simplePolyline.html") 

下面是一個容易複製代碼,得到了同樣的錯誤:

> library(XML) 
> a <- htmlParse("http://bm2.genes.nig.ac.jp/RGM2/R_current/library/XML/man/xmlTreeParse.html") 
> a 

*** caught segfault *** 
address 0x55aa44, cause 'memory not mapped' 

Traceback: 
1: .Call("RS_XML_dumpHTMLDoc", doc, as.integer(indent), as.character(encoding),  as.logical(indent), PACKAGE = "XML") 
2: saveXML(from) 
3: saveXML(from) 
4: asMethod(object) 
5: as(x, "character") 
6: cat(as(x, "character"), "\n") 
7: print.XMLInternalDocument(<pointer: 0x1016363f0>) 
8: print(<pointer: 0x1016363f0>) 

Possible actions: 
1: abort (with core dump, if enabled) 
2: normal R exit 
3: exit R without saving workspace 
4: exit R saving workspace 
Selection: 1 
aborting ... 

Process R segmentation fault at Sat Jul 31 22:07:02 2010 

的問題似乎也對htmlParse()文件是做了saveXML()

當我編寫使用htmlParse()的另一個代碼時,我不記得曾經遇到過這個問題(儘管我不記得是否明確地調用了htmlParse()對象)。所以我不完全確定這是否是最近的問題。當時和現在(我記得)之間的唯一區別是我已經從源碼安裝了許多OmegaHat packages

我很好奇,如果有人得到這個錯誤。爲了探究我的筆記本電腦是否存在問題,我已經重新啓動並升級了我的操作系統作爲基本步驟。可能是什麼問題?謝謝。

編輯:只是參考:

> sessionInfo() 
R version 2.11.1 (2010-05-31) 
x86_64-apple-darwin9.8.0 

locale: 
[1] C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets grid  methods 
[8] base  

other attached packages: 
[1] XML_3.1-0  digest_0.4.2 reshape_0.8.3 plyr_0.1.9 proto_0.3-8 

loaded via a namespace (and not attached): 
[1] ggplot2_0.8.7 

回答

1

我認爲,幾乎可以肯定分段錯誤構成的錯誤。 你的例子適用於我(見下文)。我會(a)確保你有最新版本的XML,並且錯誤 仍然存在; (二)聯繫XML包的維護者(嘗試

maintainer("XML") ) and provide your example and the results of sessionInfo()

好運

=============

library(XML) a <- htmlParse(" http://bm2.genes.nig.ac.jp/RGM2/R_current/library/XML/man/xmlTreeParse.html ")

sessionInfo() R version 2.11.1 (2010-05-31) i486-pc-linux-gnu

區域: [ 1] LC_CTYPE =的en_US.UTF-8 LC_NUMERIC = C
[3] = LC_TIME的en_US.UTF-8 LC_COLLATE =的en_US.UTF-8
[5] LC_MONETARY = C = LC_MESSAGES的en_US.UTF-8
[7 ] LC_PA PER =的en_US.UTF-8 LC_NAME = C
[9] LC_ADDRESS = C LC_TELEPHONE = C
[11] = LC_MEASUREMENT的en_US.UTF-8 LC_IDENTIFICATION = C

附基礎包: [1]統計圖形grDevices utils的數據集電網方法
[8]基礎

其他附軟件包: [1] XML_3.1-0 reshape_0.8.3 plyr_1.0.3 proto_0.3-8經由一個命名空間加載

(而不是附件): [1] ggplot2_0.8.8

+0

糟糕,我看到你確實指定了你的XML版本(這似乎是最新的 ) – 2010-08-02 14:11:42

+0

謝謝你。聯繫軟件包創建者可能是最好的選擇。 – apeescape 2010-08-03 22:41:33

+0

從源重新安裝,現在它可以工作。 – apeescape 2010-08-04 06:52:48