我在调试我的应用程序时遇到一些问题 - 当我尝试从 gdb shell 调用 parser::extractString(...) 时,它返回
名称空间“parser”中没有符号“extractString”。
当我执行时
信息函数 extractString
我有这个输出
与正则表达式“extractString”匹配的所有函数:
文件/home/dmitriy/Sources/transceiver/parser/json.cpp:
std::__cxx11::字符串
解析器::extractString[abi:cxx11](rapidjson::GenericValue,
解析器::MultithreadAllocator> const&);
非调试符号:0x0000000000506500
解析器::extractString[abi:cxx11](rapidjson::GenericValue,
解析器::多线程分配器> const&)@plt 0x00007ffff77e3640
解析器::extractString[abi:cxx11](rapidjson::GenericValue,
解析器::MultithreadAllocator> const&)@plt
调用这个函数有什么问题吗?在静态库中定义的函数 extractString 并从应用程序中调用,没有任何问题。
gdb 尚不支持 gcc 5 中引入的 C++11 ABI 标记。请参阅以下错误:
- https://sourceware.org/bugzilla/show_bug.cgi?id=19436
- https://sourceware.org/bugzilla/show_bug.cgi?id=18601
对您来说最简单的解决方法可能是通过定义宏来禁用新的 gcc ABI_GLIBCXX_USE_CXX11_ABI
到 0,参见https://gcc.gnu.org/gcc-5/changes.html#libstdcxx.
或者您可以尝试应用解决方法https://sourceware.org/bugzilla/show_bug.cgi?id=18601#c1虽然它们看起来有点奇怪。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)