草庐IT

gdb_objc_realized_classes

全部标签

c++ - 如何在 gdb 输出中隐藏类型信息

我正在调试繁重的模板化代码,并寻找一种在回溯和打印变量时隐藏类型信息的方法。如果您可以只隐藏模板参数,那就更好了,因为它们会使回溯很难阅读。感谢您的支持。 最佳答案 最好的方法是使用gdb插件。我不知道gdb中的native设置(帧过滤器除外)可以达到预期的结果。请查看https://github.com/tromey/gdb-helpers,更具体地说https://github.com/philtweir/gdb-pretty-frame-cpp.我使用了带有自定义模板重代码的gdb-pretty-frame。

c++ - 类(Class)友元和继承问题

我觉得我在这里遗漏了一些明显的东西,但我有一个类将另一个类声明为友元,但似乎无法访问其私有(private)成员。我已将问题最小化如下:Widget.hpp:templateclassFoo;templateclassWidgetBase{protected:T*ptr;public:WidgetBase(T*ptr):ptr{ptr}{}virtualvoidf()=0;};templateclassWidgetDerived:publicWidgetBase::Bar,T>{public:usingWidgetBase::Bar,T>::WidgetBase;usingWidget

c++ - 使用 GDB 在 Windows 下调试 DLL

我有一些项目由几个DLL组成,这些DLL是用MinGW编译的,带有调试信息,另一个项目的EXE目标使用这些DLL(也是用MinGW编译的)。问题是,我需要在那些DLL中的函数上放置断点,但是GDB虽然设置了断点,但只是在运行时默默地忽略了它们。进入它们(使用's'键)只是跳过它们(就像使用'n'键一样)。我怎样才能进入那些DLL?也许我应该为GDB指定一些选项?提前致谢。 最佳答案 确保使用gccoptimizationlevel进行编译标志设置为0(-O0)。 关于c++-使用GDB在

c++ - HTTP 流 : what realizations of Push Technology are available?

我目前正在寻找httpPushTechnology的可用实现.至少它必须支持channel订阅和channel发布。有哪些方便的C++(或C)实现可用? 最佳答案 唯一想到的(在C++中)支持服务器推送和自身包含httpd的是Wt.它实际上非常容易安装、编译程序和运行。我没有任何Qt背景。如果你这样做会让你更容易。 关于c++-HTTP流:whatrealizationsofPushTechnologyareavailable?,我们在StackOverflow上找到一个类似的问题:

c++ - 将类型解析为 class::typedef 的更短方法

我有几个类(class)。现在它们被一个符号隔开。其中很少包含type(typedef),也很少没有。structA{...public:typedefsomeclasstype;}structB{...};我想实现一个SFINAE以这样的方式上课,Resolve::typeo1;//shouldresolveto'A::type'Resolve::typeo2;//shouldresolveto'B'一种方法是使用上一个链接中所示的基本SFINAE,它检查T是否包含type,然后使用bool检查器.例如,templatestructhas_type{typedefcharyes[3]

c++ - 使用 GDB 进入模板类

我正致力于用C++实现平衡树,但作业的要求是我必须使用模板类。我想先用int做,然后再转换成模板,但是给我们的测试代码默认使用模板。当我使用g++class.htest.cxx-Wall-g-O0编译我的代码时,一切似乎都工作正常,直到我进入gdb,它不会进入模板实现。我的模板实现文件包含在头文件的末尾,gdb允许我在其中设置断点,但它从未真正进入函数。我一直在通过emacs使用gdb,但它也不能直接在gdb中工作。我希望当GDB到达在那里实现的函数时,该步骤会切换到模板文件,但它告诉我它认为它应该去的那一行并不真正存在。这是一个典型的session:(gdb)breakset.tem

c++ - 警告 : base class ‘A’ should be explicitly initialized in the copy constructor

我有以下类结构:classA{A(){}A(constA&src){}};classB:virtualA{B():A(){}B(constB&src):A(src){}};classC:virtualA{C():A(){}C(constC&src):A(src){}};classD:virtualB,virtualC{D():B(),C(){}D(constD&src):B(src),C(src){}};这给了我警告:Incopyconstructor‘D’:warning:baseclass‘A’shouldbeexplicitlyinitializedinthecopyconstr

c++ - vector.size() 的 GDB 错误值

一个简单的vector.push_back()导致我的代码出现一些错误:#includeusingnamespacestd;intmain(intargc,constchar*argv[]){vectorstack;stack.push_back(1);stack.push_back(1);//stack.size()becomes467369971afterthisstack.push_back(1);stack.push_back(1);...morepush_back()s...return0;}我正在使用GDB检查它的行为...奇怪的是stack.size()在第二个push_

c++ - 错误 : Undefined symbols for architecture x86_64 with classes

我是一名初学者,正在编写一个帮助我节食的有趣程序。该程序尚未完成,但在我编写时正在编译。我不断收到标题中提到的错误:Undefinedsymbolsforarchitecturex86_64withclasses我看过类似的问题,但它们都与模板和继承类有关,这与我的情况不同。我只是在宣布一个类(class),没什么特别的。我认为这与未正确定义类有关,但我无法弄清楚它是什么。这可能是我想念的愚蠢的东西,但我仍然被困住了。谢谢。#include#includeusingnamespacestd;classMeal{private:stringname;intprotein;intcarbs

c++ - 窗体头文件中的 "error C2653: System is not a class or a namespace name",Visual C++

我之前关于同一项目的问题:one和two.没有必要阅读它们;只知道我正在尝试在VisualC++项目中使用nativeC++SDK。这比我最初想象的要棘手得多,但是这个网站关于ExtendinganativeC++projectwithmanagedcode已经帮助了我很多。按照最后一个链接的说明,我已将一个表单添加到我的nativeC++项目中,该项目已自动将项目转换为CLR项目。只有MainForm.cpp和Interface.cpp(允许nativeC++代码创建和显示MainForm的文件)使用/clr编译旗虽然;其他文件保持原样。我现在遇到的问题是,VisualStudio似