草庐IT

as调试SystemUI

全部标签

c++ - 使用 libpcl_surface 在 boost::math::lanczos 中调试段错误

仅当我在使用调试标志编译的代码上使用gdb进行调试时,才会出现以下错误ProgramreceivedsignalSIGSEGV,Segmentationfault.0x00007fffc79a7ff0inboost::math::lanczos::lanczos_initializer::init::init()()from/usr/lib/libpcl_surface.so.1.7操作系统:unbutu14.04我有最新的pcl库(1.7Sprikelhof)和boost库(1.54)请注意,在gdb外部运行时不会出现段错误。 最佳答案

c++ - 使用 gdb 调试 C++ 模板

当我在带有模板的函数内部调试时,我如何知道当前函数正在使用哪种模板类型?我试过了pT.它说gdb无法打印类型。如何中断特定模板类型?假设函数foo(...)有2种可能的形式,foo(...)和foo(...).如何设置断点以便gdb仅在第一个使用int的断点处暂停,但不是第二个使用long的?编辑:如果断点可以按行号设置就好了。这有很多很好的理由,例如。函数的初始部分可能需要很长时间才能运行,我希望调试的地方可能在if中声明等 最佳答案 要为所有实例设置断点,请使用:gdb>rbreakFoo只在已知实例上设置断点gdb>break

c++ - 哪个 Clang 警告等同于 GCC 的 Wzero-as-null-pointer-constant?

我们的项目使用C++11/14,我们希望使用nullptr而不是0或NULL指针,即使0(作为整数文字)是允许的。我有以下代码:intmain(){int*ptr1=nullptr;//#1int*ptr2=0;//#2}如果我使用GCC(5.3.0)和标记-Wzero-as-null-pointer-constant进行编译,它会在#2中发出警告,但我可以'在Clang中找不到类似的标志。如果我使用Clang(3.7.1)和标志-Weverything编译代码,我不会收到任何关于#2的警告。那么,有什么办法可以在Clang中得到类似的警告吗? 最佳答案

C++ 调试窗口显示“<incomplete type> for string variable

据我所知,我正在以一种相当正常的方式初始化一个字符串,当我调试时,我的IDE(CLion)中的变量窗口将其值显示为.我有一些简单的代码导致字符串变量Bob出现问题.#includeintmain(){std::stringBob="thisdoesn'tshowupinthevariableswindow";std::cout我不知道它有什么影响,但我会包含CMakeLists文件,它似乎是我可以使用的最简单的文件。cmake_minimum_required(VERSION3.8)project(testing123)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_F

c++ - VS Code 上的简单 GDB C++ 调试失败并出现 NullReferenceException

我的源代码file.cpp:#includeusingnamespacestd;intmain(){intx=1;inty=2;cout我使用g++-gfile.cpp编译它,然后我的launch.json文件是这样的:{"version":"0.2.0","configurations":[{"name":"(gdb)Launch","type":"cppdbg","request":"launch","program":"${workspaceFolder}/a.out","args":[],"stopAtEntry":false,"cwd":"${workspaceFolder}

c++ - OpenCV cvLoadImage() 不在 visual studio 调试器中加载图像?

我正在尝试为OpenCV设计一个简单的helloworld,但我想不出为什么它不起作用。当我编译并运行这段代码时:#include#includeintmain(intargc,char*argv[]){IplImage*img=cvLoadImage("myjpeg.jpg");cvNamedWindow("MyJPG",CV_WINDOW_AUTOSIZE);cvShowImage("MyJPG",img);cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow("MyJPG");return0;}我得到一个大约200x200的灰色框,而

c++ - 线程相关问题及调试

这是我对上一篇关于内存管理问题的帖子的跟进。以下是我知道的问题。1)数据竞争(原子性违规和数据损坏)2)排序问题3)滥用锁导致死锁4)海森堡多线程还有其他问题吗?如何解决? 最佳答案 Eric列出的四个问题非常准确。但是调试这些问题很困难。对于死锁,我一直偏爱“水平锁”。本质上,您为每种类型的锁指定了一个级别编号。然后要求线程获取单调的锁。要进行水平锁定,您可以声明这样的结构:typedefstruct{os_mutexactual_lock;intlevel;my_lock*prev_lock_in_thread;}my_lock

c++ - SIMD : Why is the SSE RGB to YUV color conversion about the same speed as the c++ implementation?

我刚刚尝试优化RGB到YUV420转换器。使用查找表可以提高速度,就像使用定点算法一样。然而,我期待使用SSE指令获得真正的yield。我的第一次尝试导致代码变慢,并且在链接所有操作之后,它的速度与原始代码大致相同。我的实现是否有问题,或者SSE说明是否不适合手头的任务?部分原始代码如下:#defineRRGB24YUVCI2_000.299#defineRRGB24YUVCI2_010.587#defineRRGB24YUVCI2_020.114#defineRRGB24YUVCI2_10-0.147#defineRRGB24YUVCI2_11-0.289#defineRRGB24Y

c++ - 使用 Google Test 调试 C++ 项目时禁用异常处理

我有我的(nativeC++)DLL项目和基于GoogleTest的相应测试EXE项目。通过此EXE调试我的DLL时,GoogleTest会自动处理异常。因此,如果我的DLL在调试期间抛出未处理的异常,我希望看到来自VisualStudio的错误消息,其中调试session在代码导致异常后暂停。相反,我在gtest.cc中触发了断点。如果我禁用--gtest_break_on_failure标志,我将不会收到任何中断。我在Google测试文档中找不到这样的选项。我错过了吗?我不想在调试设置中检查不同异常的“抛出时中断”标志,因为我只对未处理的异常感兴趣。 最

c++ - 在 Windbg 中,如何在调试时列出枚举的值?

通常,enum值是简单的编译器增量值或直接设置为整型文字,因此可以通过查看源文件轻松推导出或直接看到这些值。但是,有时enum值用于将类内常量设置为等于在别处定义的值或不容易复制的编译时表达式的结果。有没有办法让Windbg向我显示每个enum成员在那些更棘手的情况下的实际值? 最佳答案 考虑这个小结构:structfoo{enumenum1{enum1_val1_=5,enum1_val2_,};enumenum2{enum2_val1_=0x0001,enum2_val2_=0x0010,};enum{//assumethese