草庐IT

bug调试

全部标签

Docker内部的调试限制是什么?

我正在调试一个编译的(C++)Python模块,该模块在Docker容器中神秘地坠毁。当我在里面运行python3时gdb,然后导入,然后尝试打印回溯,我只得到#gdb/usr/bin/pyton3GNUgdb(Ubuntu7.11.1-0ubuntu1~16.04)7.11....(gdb)run-c'importmyModule'warning:Errordisablingaddressspacerandomization:OperationnotpermittedDuringstartupprogramterminatedwithsignalSIGSEGV,Segmentationfau

c++ - 为什么在调试中禁用增量链接?

在MSVisualC++2008中,是否有任何理由在调试版本中禁用增量链接?根据我有限的阅读,启用增量构建让我可以更快地链接和编辑并继续。我不知道您为什么要禁用这个很棒的功能。缺点是什么?它是片状的吗?编辑:我正在使用一个包含多个项目的解决方案(少数dll链接到几个exe),并且大多数(但不是全部)在调试中禁用了增量链接。 最佳答案 问题从何而来?您刚刚看到该选项并决定询问?一般来说,它应该工作得很好,除非它不能-没有理由禁用它。但有时依赖项无法正常工作,您需要手动重建所有。如果这种情况在您的项目中经常发生-那么您应该禁用它。在具有

c++ - 使用 IPython 调试 C/C++ 代码

假设我在IPython(例如在newQTconsole上),并且我调用了我从中编写的C++库(例如使用SWIG或Boost.Python)。我想在我的C++代码中设置一个断点,并能够使用IPython与我的C++工作区(即我遇到断点时的变量)进行交互(例如绘制我的C++变量等).换句话说,我想从IPython调试我的C++代码。这是可能吗?我可以为此使用哪些工具? 最佳答案 (假设您使用的是Linux)你只需要gdb。首先通过将此添加到$HOME/.gdbinit来设置告诉gdb你的源文件在哪里的配置:目录绝对路径到源现在启动gdb

c++ - 在调试过程中如何查看 Qt 对象 QByteArray 的内容?

我的程序使用一些QByteArray类型的变量来包含数据(字节)。这些字节可能是特殊字符,如'\0'、1、...所以我在调试时看不到特殊字符后的所有元素。如果我使用std::vector,我可以看到所有元素。我必须使用QByteArray但在调试时我看不到这个变量的所有元素。请帮助我!谢谢!例子:QByteArraybytes(4,'\0');现在,如果调试,我只看到“”。但我想看到“'\0'、'\0'、'\0'、'\0'”或类似这样的内容。我对QDateTime也有同样的问题。但我通过这个帮助解决了:http://www.qtcentre.org/threads/32336-View

c++ - 在 codelite 中调试 C++

我在intx旁边设置了一个断点,并将ide设置为Debug模式,但是当我开始调试时,调试窗口中没有任何内容???我应该做更多的事情吗?#includeintmain(){usingstd::cin;usingstd::cout;usingstd::endl;intx;cout>x;cout 最佳答案 codelite不停止的原因可能有多种:1)您是否在启用调试信息的情况下构建项目?确保选择“调试”配置,这确保-g传递给gcc/g++2)尝试从以下位置启用调试器日志:设置->调试器设置->GNUgdb调试器->杂项->启用调试器完整日

c++ - 在 malloc_error_break 中设置断点以在 C++ 中进行调试

我正在编写一个接受2个命令行参数的程序:a和b分别。只要a都好尽快a>17.5程序抛出以下错误:释放对象的校验和不正确-对象可能在释放后被修改我已将问题缩小到以下代码:for(inta=0;aviTmp(iK-i);fill(viTmp.begin(),viTmp.end(),2);for(intb=0;b删除后一段代码,消除了错误。我也在使用valgrind来调试内存,但我还没有找到任何解决方案。这是valgrind报告的拷贝:Reporthostedinpastebin编辑我用调试标志编译了程序:g++-g-O0-fno-inlineprogram.cpp然后使用valgrind运

c++ - Visual Studio 调试器将 "true"显示为 "0"

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。一个非常奇怪的案例刚刚发生在我身上——在使用调试器时,它告诉我一些bool变量的值为true,但是当我打印它(或用它做任何其他操作),它表现为0(即false)。我该怎么做才能修复这个错误?恐怕这是环境错误,因此发布代码示例将毫无意义。(一个隐藏的、烦人的内存管理错误不可能是原因,对吧?),在这种情况下,我想指出,发现我的环境配置不当会让我感到惊讶(我在

HarmonyOS 横屏调试与真机横屏运行

我们有些程序需要横屏才能执行出效果我们在预览器上点击如下图指向出就进入一个横屏调试了但我们真机运行依旧是竖着的我们如下图找到module.json5在abilities下面第一个对象最下面加上"orientation":"landscape"然后我们再真机运行就横屏了

python - 如何调试 python - C++ 程序

我有一个相当复杂的分布式编程框架,其中有:一个Controller,BC,用Python编写成一个twisted插件,在某些机器上运行;N守护进程,BM,用Python编写,但将C++核心包装为共享库,方式如下:导入小程序handle=imp.load_dynamic('mylib','../libmy.so')然后每个BM通过jsonrpc交互与BC对话,但我们不关心这个。我要做的是调试,可能以步入/跨过/逐步调试的方式但不限于,BM进程,在前端显示为单个终端中的同构字符流。我对C++部分非常感兴趣,考虑到Python代码几乎最终发布并且运行良好。由于这种语言混合,我对哪种类型的工具

c++ - 使用大线程池调试多线程 C++ 应用程序

我有一个在VS2014SP2下运行的nativeC++应用程序,它使用我自己的线程池类使用大量多线程。通常,应用程序在任何时候都会有超过32个线程在运行,其中大部分时间大部分时间都处于空闲状态。调试器中是否有任何方法可以查看线程View中的哪些线程处于空闲状态(即在sleep函数中),目前,如果我中断执行,调试器通常会将我带回非事件线程的sleep部分;UINT_cdeclMyThreadFunc(LPVOIDpParam){CMyThreadSlot*pThreadInfo=(CMyThreadSlot*)pParam;while(pThreadInfo->m_pManager->m