草庐IT

符号表

全部标签

c++ - 嵌套的命名空间和不明确的符号

我有一个涉及嵌套命名空间和模板类的问题。我还能够创建测试用例,它会产生与实际代码相同的错误,但更具可读性。使用VS2012和2010平台工具集编译以下代码会导致错误:namespaceA{namespaceB{namespaceC1{structSMeasResult{};}namespaceC2{structSMeasResult{};}}}namespaceC1Test{usingnamespaceA::B::C1;templateclassFook{public:voidYu(){SMeasResultField;}};}namespaceC2Test{usingnamespac

c++ - 为什么 std::count_if 返回有符号值而不是无符号值?

这个问题在这里已经有了答案:WhydoestheC++standardalgorithm"count"returnadifference_typeinsteadofsize_t?(7个答案)关闭7年前。刚刚意识到std::count_ifreturnsasignedvalue.为什么要这样设计?在我看来,这是没有意义的(结果只能是自然数,即非负整数),因为它不允许做一些简单的事情,比如将这个结果与容器的size()没有得到警告或使用显式类型转换。我真的认为返回类型应该有size_type。我错过了什么吗?

c++ - 使用 cmake 时未创建调试符号

我在github.com/RainerKuemmerle/g2o编译了c++代码库添加后使用cmakeset(CMAKE_BUILD_TYPEDebug)以便能够调试应用程序。然后它创建了一个名为“g2o”的构建文件。但是当我尝试使用gdb进行调试时,这是我得到的输出。user2@arm_machine:~/g2o/trunk/bin$gdbg2oGNUgdb(Ubuntu/Linaro7.4-2012.04-0ubuntu2.1)7.4-2012.04Copyright(C)2012FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLvers

c++ - 如何使用 ifstream 从文件中正确读取无符号整型变量?

我的代码从文本文件Input_File_Name中读取无符号整型变量。unsignedintColumn_Count;//ColsunsignedintRow_Count;//Rowstry{ifstreaminput_stream;input_stream.open(Input_File_Name,ios_base::in);if(input_stream){//iffileisopenedinput_stream.exceptions(ios::badbit|ios::failbit);input_stream>>Row_Count;input_stream>>Column_Cou

c++ - visual studio 2010 c++调试符号已加载但找不到源代码

我在2010年内指定了符号(pdb)文件,以便正确加载它,但我得到了Nosourceavailable错误并且BrowsetoFindSourceCode是变灰了。有谁知道我如何指定源代码目录或查看pdb内部以找出它在哪里?编辑:我的DLL正在被外部程序调用。错误发生在我的DLL中,所以我有源代码。发生错误时,我单击“调试”,加载了pdb符号,但未加载源代码。 最佳答案 如果您将DLL从其构建目录中移出,则调试器不太可能自行找到源代码文件。您可以做的第一件事是在“解决方案资源管理器”窗口中右键单击“解决方案根节点”,“属性”、“通用

c++ - Solaris 进程如何读取自己的符号表?

我有一个Solaris进程,它是一个C++应用程序,由ld和一些.so库加载。此应用程序有一个函数,它在调用函数中获取返回地址,然后尝试确定所述调用函数的名称。如果我为此使用dladdr(3),它并不总是将我期望看到的内容放入Dl_info::dli_sname。看起来它返回的函数名称不在指针值下方或指针值处。如果我获取指针值并查看nm的输出,我可以将该值与我期望的确切函数相匹配。我想知道是否有一种方法可以检索进程的符号映射并让它在不使用dladdr(3)的情况下搜索函数名称。我特别感兴趣的是不仅为可执行文件本身而且为它加载的所有.so库获取符号映射。我在Solaris10/SPARC

c++ - 无符号位域的溢出是否保证回绕?

详情referenceforbitfieldsatcppreference给出以下示例:#includestructS{//three-bitunsignedfield,//allowedvaluesare0...7unsignedintb:3;};intmain(){Ss={7};++s.b;//unsignedoverflow(guaranteedwrap-around)std::cout强调有保证的环绕评论。然而,WG21CWGIssue1816描述一些可能存在的位字段值规范不明确的问题,以及[expr.post.incr]/1在最新的标准草案状态:Thevalueofapost

c++ - 重新定义为另一种符号

我正在我的xcodeios项目中创建一个简单的C++头文件,但出现错误“将‘foo’重新定义为另一种符号”。这是代码classfoo{public:char*getLabel(char*params);}; 最佳答案 好吧,错误消息是不言自明的,foo已经在同一个命名空间中定义,而您正在尝试重新定义它。“作为一种不同类型的符号”部分表明现有的foo是其他东西而不是类定义。更改名称很可能会解决您的问题。另一种方法是将foo的定义放入另一个命名空间。无论如何,我不建议您在真实项目中将某些东西命名为foo,无论它有多小;)

c++ - 处理 <file.exe> 时 VS 2012 调试意外的符号读取器错误

我在VisualStudio2012中调试程序时遇到问题-当我尝试通过插入一些断点来调试代码时,它们似乎不起作用-当我将鼠标悬停在它们上面时会弹出一条消息Thebreakpointwillnotcurrentlybehit.Unexpectedsymbolreadererrorwhileprocessing我尝试在互联网上搜索类似的问题,但没有找到任何解决方案我将不胜感激任何帮助,谢谢! 最佳答案 [VS2012]好的,我得到了解决这个问题的答案,所以我会把它贴在这里,这样人们以后就不会遇到这样的问题了。解决办法是改变Debug->

c++ - nm 符号值的偏移量?

只是为了给您一些背景信息,以下是我正在努力实现的目标:我在共享对象文件中嵌入了一个constchar*,以便在.so文件本身中有一个版本字符串。我正在做数据分析,这个字符串使我能够让数据知道是哪个版本的软件产生的。这一切都很好。我遇到的问题是当我尝试直接从.so库中读取字符串时。我试着用nmlibSMPselection.so|grep_version_info得到000000000003d968D__SMPselection_version_info一切正常,符合预期(char*称为_SMPselection_version_info)。然而,我原本希望现在能够打开文件,查找0x3d