我找不到。在观察器窗口中,我可以手动输入内存地址,但我希望看到更大的内存块...如果这不存在,是否有任何其他适用于Mac的免费内存映射器(XCode和Eclipse除外)?谢谢,锐 最佳答案 QtCreator最新的Git版本(1.3.80)支持内存调试。当您检查本地变量和观察者菜单中的变量时,您会在调试器上下文菜单中找到一个条目。请注意,目前还没有QtCreatorMaster分支的快照,但它们应该会在几周后返回。如果不想等,可以自己编译Creator。如果您不想参与git,请从http://qt.gitorious.org/qt
我有一个程序,当从VisualStudio2010Express中运行时,它运行得非常好,但在构建和取出时,它有问题。我已经设置了与从VisualStudio中运行时相同的外部测试环境,所以这应该不是问题。我想将它附加到.exe以查看崩溃的位置,但我没有非Express版本。有什么建议吗?为什么一个程序在VSC++2010Express环境之外会崩溃,但在里面却运行良好。我会发布代码,但这是一个巨大的项目,而不是会导致错误的行。非常感谢您的宝贵时间。 最佳答案 在不知道崩溃是什么的情况下很难确定,但有几个常见问题可能会导致这种情况:
在VisualStudio2010(C++,非托管)中调试,信息unused???或unused0应该是什么意思?我附上了两个屏幕截图,child是现有窗口的HWND。我也对HWND有时显示为“未使用”,有时显示为“0”这一事实感到困惑。当有一个指向未分配内存的指针时,我会理解这种情况,但在我的特定情况下,窗口已经创建并且有效。 最佳答案 这可以追溯到九十年代初期,当时只有HANDLE作为一种类型来声明任何Windows对象的句柄。这是一个错误工厂,程序员可能会胡乱编写代码,例如,在需要窗口句柄的地方传递字体句柄。所以后来添加了ST
我有一种奇怪的感觉,好像这是最近才出现的问题,并且发生在两台不同的计算机上。当我调试并尝试查看来自STL的std::string的值时,它显示为值。它说它的大小是15,容量是一些乱码。数组值本身都显示CXX0030:错误:无法计算表达式。这非常令人沮丧,如果我在字符串上调用c_str并将其分配给char*或在需要时使用监视表达式,我仍然可以在调试时访问字符串值,但它非常乏味并且让生活变得非常艰难连续3天调试复杂问题。其他STL容器的内容显示得很好。这发生在两台不同计算机上的多个项目上,我很确定我已经为该项目设置了所有调试选项。没有优化,肯定会生成调试信息。
当使用connect连接到一个不存在的信号/槽时,我们会浪费很多时间,因为Qt只会在控制台日志记录的某个地方在运行时警告我们.除了进化到使用类型系统报告这些问题的Qt5,以及来自changingcode对于系统中的所有connect调用,是否有另一种方法来拥有Qt运行时,例如当建立错误的连接时抛出,或者只是崩溃,或者大声提醒我? 最佳答案 您可以在连接上使用一个包装器,它会在某些连接失败时停止程序:inlinevoidCHECKED_CONNECT(constQObject*sender,constchar*signal,const
当尝试使用程序运行gdb时,它会在读取符号时出现错误。当我运行时:gdb/home/user/path/to/program.exe我得到:GNUgdb(Ubuntu7.7-0ubuntu3.1)7.7Copyright(C)2014FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRANTY,totheextentpermittedbylaw.Type"showcopying"a
在我的DirectX应用程序结束时,我得到“Direct3D设备具有非零引用计数,这意味着某些对象未被释放。”。应用很大,又不是我写的,我该如何去调试哪些资源没有被释放? 最佳答案 第一步是使用DirectX调试DLL,viatheDirectXControlPanel.(IIRC,这些是安装DirectXSDK时的可选项目,所以你可能需要安装它们。)当您下次运行您的应用程序时,DirectX应该会为您提供有关泄漏内容的更多信息。具体来说,您需要查找如下一行:D3DX:SetHKLM\Software\Microsoft\Direc
我发现自己处于几乎没有任何调试工具的情况下不得不调试Qt应用程序的困难境地:应用程序似乎开始使用越来越多的CPU,因为它一次又一次地运行相同的操作;许多小时后CPU完全饱和。该应用程序在ARMLinux嵌入式设备上运行,其中gdb似乎无法工作,可能很难通过提供的工具链发现问题。strace似乎只报告计时器事件(这是一个OpenGL应用程序,所以这是预期的)。ltrace不可用,编译它导致了一项艰巨的任务,也许毫无用处。我没有编写应用程序,但源代码可用。我还能做些什么来发现应用程序在消耗那么多资源时忙于做什么吗?我必须以任何方式跟踪应用程序执行的所有方法调用吗?我可以使用任何其他技术来尝
我正在开发一个处理大量同步问题的多线程C++程序。我正在使用VisualStudio2008。当我使用断点调试程序时,程序的运行时行为(跨线程执行语句的顺序)似乎发生了变化。这可以解释吗?这里的概念是什么?我希望执行顺序保持不变。第二个问题-Thread1是否被等待函数调用阻塞。Thread2有等待执行的语句,处于就绪状态。是否存在程序会等待Thread1继续执行而不是将执行交给Thread2的情况?我已经删除了两个线程之间的所有依赖关系,并确保Thread2没有在等待任何资源。感谢回复。 最佳答案 Thisarticleonmul
我正在尝试在iOS上的Xcode4.5中调试C++代码,在连接的iPad2上运行该应用程序。我在我的代码上设置了一个常规断点,当我点击它时,我查看我的局部变量,单击一个变量并选择“Watchxxxxx”。lldb控制台显示:error:failedtocreatewatchpointform_step如果我尝试使用以下命令在控制台中手动设置它,结果相同:wsvxxxxx我得到:error:Wathpointcreationfailed(addr=0x.....size=4)error:sendinggdbwatchpointpacketfailed我正在使用LLDB使用调试配置运行。有