小编Bri*_*aro的帖子

Xerces-C问题; 对对象析构函数的调用时的段错误

我一直在玩Xerces-C XML库.

我有这个简单的例子,我正在玩.

我似乎无法在没有泄漏内存和没有segfaulting的情况下运行它.这是一个或另一个.

当我在"清理"下删除解析器对象时,总会发生段错误.

我尝试过同时使用2.8和2.7版本的库.

注意:我从代码中取出了所有异常检查,我得到了相同的结果,没有它.为了便于阅读和简化,我将其从下面的代码中删除.

任何精通Xerces的人都在乎提出一些建议吗?

我无法从后面的跟踪中得到很多信息,它只是跳进了超类析构函数并在那里进行了分类.

回溯:

(gdb) bt
#0  0x9618ae42 in __kill ()
#1  0x9618ae34 in kill$UNIX2003 ()
#2  0x961fd23a in raise ()
#3  0x96209679 in abort ()
#4  0x95c5c005 in __gnu_cxx::__verbose_terminate_handler ()
#5  0x95c5a10c in __gxx_personality_v0 ()
#6  0x95c5a14b in std::terminate ()
#7  0x95c5a6da in __cxa_pure_virtual ()
#8  0x003e923e in xercesc_2_8::AbstractDOMParser::cleanUp ()
#9  0x003ead2a in xercesc_2_8::AbstractDOMParser::~AbstractDOMParser ()
#10 0x0057022d in xercesc_2_8::XercesDOMParser::~XercesDOMParser ()
#11 0x000026c9 in main (argc=2, argv=0xbffff460) at test.C:77
Run Code Online (Sandbox Code Playgroud)

代码:

#include <string> …
Run Code Online (Sandbox Code Playgroud)

c++ xml segmentation-fault xerces-c

3
推荐指数
1
解决办法
3837
查看次数

如何使用mongoDB绑定haskell

我对Haskell很新,但我觉得我对所有人都有一个很好的理解.

我目前正在尝试使用haskell的非官方mongoDB绑定.

如果你看一下这里的代码:http://github.com/srp/mongoDB/blob/master/Database/MongoDB.hs

connect :: HostName -> [ConnectOpt] -> IO Connection
connect = flip connectOnPort (Network.PortNumber 27017)
Run Code Online (Sandbox Code Playgroud)

如您所见,此方法返回/解析为IO连接.

但是,实际上与数据库交互的所有方法都将一个简单的Connection作为参数.例如:

disconnect :: Connection -> IO ()
disconnect = conClose
Run Code Online (Sandbox Code Playgroud)

我认为这里有一些基本的东西我不理解,也许IO与IO Monad的一部分有关?我真的很无能为力,并且想知道是否有人有任何关于此事的光明.

如何在mongoDB绑定中同步到连接的IO连接?

感谢您提供的任何输入.

haskell mongodb

3
推荐指数
1
解决办法
2755
查看次数

结构大小优化

我有一个结构我想优化足迹.

typedef struct dbentry_s {
   struct dbentry_s* t_next;
   struct dbentry_s* a_next;
   char *t;
   char *a;
   unsigned char feild_m;
   unsigned char feild_s;
   unsigned char feild_other;
} dbentry;
Run Code Online (Sandbox Code Playgroud)

据我了解,编译器在您定义内存时会在内存中创建结构.因此应首先声明较大的类型,以便小类型可以填充对齐孔.

我已经阅读了有关数据结构一致性的WikiPedia文章以及有关该问题的其他文章. http://en.wikipedia.org/wiki/Data_structure_alignment

但我仍然不确定,我目前的订购是最优的还是我错过了什么?

注意:我的编译器不支持"#pragma pack"

c optimization cpu-architecture

2
推荐指数
1
解决办法
1429
查看次数

提升链接错误

所以,我正在尝试使用boost.process库.我从这个位置下载了包,复制包含从boost子目录到/ usr/include/boost,写了一个简单的代码:

    namespace bp = ::boost::process;
    std::string execApp = "make";
    std::vector<std::string> args;
    args.push_back("-C ../build");

    bp::context ctx;
    ctx.stdout_behavior = bp::silence_stream();

    bp::child buildProcess = bp::launch(execApp, args, ctx);
Run Code Online (Sandbox Code Playgroud)

它编译但链接器失败:

CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost/system/error_code.hpp:208: undefined reference to `boost::system::get_system_category()'
/usr/include/boost/system/error_code.hpp:209: undefined reference to `boost::system::get_generic_category()'
/usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::get_generic_category()'
/usr/include/boost/system/error_code.hpp:215: undefined reference to `boost::system::get_generic_category()'
/usr/include/boost/system/error_code.hpp:216: undefined reference to `boost::system::get_system_category()'
CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `boost::process::detail::file_handle::posix_remap(int)':
/usr/include/boost/process/detail/file_handle.hpp:264: undefined reference to `boost::system::get_system_category()'
/usr/include/boost/process/detail/file_handle.hpp:269: undefined reference to `boost::system::get_system_category()'
CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `boost::process::detail::file_handle::posix_dup(int, int)':
/usr/include/boost/process/detail/file_handle.hpp:295: undefined …
Run Code Online (Sandbox Code Playgroud)

c++ linker boost

2
推荐指数
1
解决办法
8061
查看次数