My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions
Issue 1: core dumped
1 person starred this issue and may be notified of changes. Back to list
Status:  Fixed
Owner:  yuanyel...@gmail.com
Closed:  Mar 2009


 
Project Member Reported by yuanyel...@gmail.com, Mar 22, 2009
运行multi-client-server的例子会出现段错误。

$ ./cs 10 1024 10 
段错误 (core dumped) 

在下面的环境中重新编译过。 
libicu     3.8.1 
libxercesc 2.8.0 
libxqilla  2.0.0 
libboost   1.37 
 
调试发现出问题的似乎是xmlParser::getParamAmount中的这一句: 
        const DOMXPathExpression *expression_ =
document_->createExpression(XMLString::transcode(exp), 0); 

有什么想法么? 

Mar 22, 2009
Project Member #1 yuanyel...@gmail.com
(No comment was entered for this change.)
burrow.xml
229 bytes   View   Download
peonmap.xml
880 bytes   View   Download
Mar 22, 2009
Project Member #2 xuwenhao...@gmail.com
这个问题是由于你要启动10个peon,而burrow.xml中只写了3个peon,所以读的时候出现了段错误;
注意:要启动几个peon,在burrow.xml中就要写几个peon
Status: Verified
Mar 22, 2009
Project Member #3 yuanyel...@gmail.com
我疏忽了,不过不是这个的问题。是下面的代码产生的错误:

              xmlParser parser("burrow.xml");
              //............
              std::string base = "/config/peon";
              int num = parser.getParamAmount(base.c_str());

把10个peon都加到burrow.xml中依然core dumped

burrow.xml
403 bytes   View   Download
Mar 22, 2009
Project Member #4 yuanyel...@gmail.com
(No comment was entered for this change.)
Status: Accepted
Mar 22, 2009
Project Member #5 zhangk1...@gmail.com
我这里试了一下,单纯的读xml,然后getParamAmount是没有错误的

你看看是不是对bug的定位有问题?
Mar 22, 2009
Project Member #6 zhangk1...@gmail.com
一般如果是xml解析有问题,会输出exception的,你看看有没有。如果没有,那可能不一定是
xmlparser的问题
Mar 22, 2009
Project Member #7 xuwenhao...@gmail.com
burrow.xml是不是和cs的可执行文件放到一个目录下了?
Mar 23, 2009
Project Member #8 yuanyel...@gmail.com
放到一个目录下了,否则会提示xml Document not found
我怀疑会不会是xercesc或者xqilla的不同版本的问题?
libicu     3.8.1 
libxercesc 2.8.0 
libxqilla  2.0.0 
libboost   1.37 

附件里有简单的测试程序,读xml后调用getParamAmount,会core dumped
包括编译好的二进制文件,请帮忙看一眼


testxmlparser.gz
7.9 KB   Download
Mar 23, 2009
Project Member #9 yuanyel...@gmail.com
(gdb) run
Starting program: /home/yuanyelele/workspace/horde/common/testxmlparser/testxmlparser 
[Thread debugging using libthread_db enabled]
warning: Lowest section in /usr/lib/libicudata.so.38 is .hash at 000000d4
[New Thread 0xb689b6d0 (LWP 23669)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb689b6d0 (LWP 23669)]
0x70b7c140 in ?? ()

Mar 23, 2009
Project Member #10 zhangk1...@gmail.com
我的xqilla的版本是2.1.3
不知道是不是这个问题
Mar 24, 2009
Project Member #11 yuanyel...@gmail.com
已解决:
ubuntu软件仓库中的xerces-c++库使用icu转码器,出现core dumped可能是ICU和libicu38和
libxerces-c28两个包编译时使用了不兼容的编译参数。
从源代码编译xerces-c++ 2.8和xqilla 2.1.3,禁用icu选项,问题解决
注意:
Makefile中需要指定-L/usr/local/lib,优先链接local中的库
Status: Fixed

Powered by Google Project Hosting