腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
3
回答
在我的CSocket应用程序中创建抛出异常
、
、
我让我的应用程序(VC MFC)在启用了Pageheap的情况下使用gflag运行,以跟踪页面堆损坏。 现在应用程序已经崩溃,并显示此错误,我无法解释这些行(除了有一种资源不可用的感觉) 谁能解释一下到底是什么原因导致了这款应用的崩溃? (信息:应用程序是一个在多处理器机器上运行的大约500个线程的多线程应用程序) kernel32!RaiseException+53 msvcrt!_CxxThrowException+36 mfc42u!AfxThrowResourceException+19 mfc42u!AfxRegisterWndClass+ab mfc42u!CAsyncSo
浏览 4
提问于2009-07-18
得票数 1
2
回答
来自tcmalloc的意外行为
、
、
、
我在一个大型项目中使用tcmalloc已经有几个月了,到目前为止,我必须说我对它相当满意,最重要的是它的HeapProfiling特性,它允许跟踪内存泄漏并删除它们。 然而,在过去的几周里,我们的应用程序经历了随机崩溃,我们找不到随机崩溃的来源。在一种非常特殊的情况下,当应用程序崩溃时,我们发现其中一个应用程序线程的堆栈完全损坏。有几次我发现tcmalloc::PageHeap::AllocLarge()中的线程被卡住了,但是因为我没有链接tcmalloc的调试符号,所以我不能理解是什么问题。 经过近一周的调查,今天我尝试了最简单的方法:将tcmalloc从链接中删除,以避免使用它,只是为了看
浏览 4
提问于2013-05-16
得票数 0
1
回答
GFlags -命令行
、
、
我想启动一个包含命令行的进程。在每次启动过程时,我希望使用g阻击来启用页面堆,并允许windbg附加到进程。 如何将命令行参数添加到g阻隔UI中?
浏览 16
提问于2016-02-04
得票数 2
回答已采纳
1
回答
在windbg中,如何从!heap -l结果中获取堆头地址?
我正在玩弄windbg的!heap命令,特别是检测内存泄漏的"-l“开关。 当-l确实检测到泄漏时,我在从其结果导航到泄漏来源的堆栈跟踪时遇到了问题。 下面是!heap -l的结果片段。格式已更改,以使输出更具可读性。 0:066>!堆-l在内存中搜索潜在的无法访问的繁忙块。 入门级用户堆分段 0324b500 0324b508 01580000 03230000 0324b520 0324b528 01580000 03230000 (为简单起见,省略了Size、PrevSize、Unused和Flags列。) Windbg的!heap文档告诉我,使用dds作为头地址,然后使用
浏览 3
提问于2010-03-24
得票数 1
回答已采纳
1
回答
为什么与tcmalloc的链接将我的内存使用量减少了500 my?
、
、
在我的程序中,我创建了5个向量,每个向量有100万个元素。当我用O3优化编译我的程序时,运行时大约需要2GB。但是,如果我使用O3阿片化编译并链接到google提供的tcmalloc库,那么它只需要1.5GB的最大驻留集大小。谁能给我解释一下为什么会发生这种事?链接到tcmalloc总是比链接到glibc malloc更好吗?
浏览 3
提问于2015-07-22
得票数 2
回答已采纳
9
回答
如何获得使用malloc()分配的内存块的大小?
、
、
、
可能的重复: 我从C样式函数中得到一个指向分配内存块的指针。现在,对于调试目的来说,了解这个指针点的分配内存块有多大是非常有趣的。 还有什么比盲目超越边界来挑起一个例外更优雅的吗? 事先谢谢,安德烈亚斯 编辑: 我在Windows上使用VC++2005,在Linux上使用GCC 4.3 EDIT2: 我的_msize在VC++2005下,不幸的是,它在调试模式下导致异常. EDIT3: 井。我已经尝试了我上面描述的方式,除了例外,而且它是有效的。至少在调试和确保对库的调用结束后立即运行缓冲区边界时是如此。就像一种魅力。 它只是不优雅,在生产代码中根本无法使用。
浏览 25
提问于2009-07-30
得票数 11
回答已采纳
2
回答
调试可视化C++内存分配问题
、
、
我正在调试一个软件,该软件最终崩溃,并显示以下消息之一: 1. DAMAGE: after normal block (#24729280) at 0x00D710E0 2. Debug Assertion Failed Program: D:\Soft\Test.exe File: dbgheap.c Line: 1017 Expression: _BLOCK_TYPE_IS_VALID(phead->nBlockUse) 这个软件真的很旧,但现在不能更改它。它是在Visual C++ 6.0上编写的。我们猜测这是某种类型的缓冲区溢出,因此我们正在尝试找到检测
浏览 1
提问于2009-04-23
得票数 0
回答已采纳
1
回答
使用依赖项遍历进行性能分析时,应用程序不会崩溃
、
我有一个运行在Azure云服务中的控制台应用程序,它随机崩溃,因此我开始使用dependency walker分析它,看看是否可以获得更多信息。 这是一个托管代码控制台应用程序,但它加载了第三方非托管代码,这是崩溃的部分,它只是在没有任何原因的情况下关闭控制台。 当我使用dependency walker运行它时,我不能让它崩溃,在dependency walker中作为一个分析过的应用程序运行和只是运行它的上下文中的控制台应用程序有什么不同? 更新 我在事件查看器中找到了一些信息。 Faulting application name: runner.exe, version: 1.0.0.0
浏览 5
提问于2014-06-17
得票数 0
2
回答
tcmalloc/jemalloc和内存池之间(以及选择的原因)有什么不同?
、
、
、
、
tcmalloc/jemalloc是改进的内存分配器,为了更好地分配内存,还引入了内存池。那么,它们之间有什么区别,以及如何在我的应用程序中选择它们呢?
浏览 11
提问于2012-03-26
得票数 76
2
回答
如果我有一些符号警告,我可以使用windbg分析的结果吗?
、
、
、
、
我是windbg和windows中内存分析的新手。我尝试分析内存转储(崩溃转储),它是x64系统。 加载所有符号(my和microsoft)后,我输入!analyze -v 这是输出的一部分: ...... FAULTING_SOURCE_CODE: <some code here> SYMBOL_STACK_INDEX: 6 SYMBOL_NAME: rtplogic!CSRTPStack::Finalize+19d FOLLOWUP_NAME: MachineOwner MODULE_NAME: RTPLogic IMAGE_NAME: RTPLogic.d
浏览 28
提问于2017-01-26
得票数 0
回答已采纳
3
回答
如何检测错误写入
、
、
在我的代码中,我有一个对象,它的内容完全是垃圾。我猜在代码的其他部分发生了错误的写入,幸运的是它写入了我提到的对象的地址。 我想知道是否有什么工具可以告诉我内存地址接收到的每个写操作,这样我就可以追踪这个bug的来源。
浏览 4
提问于2012-04-06
得票数 1
回答已采纳
2
回答
在类构造函数中将此指针传递给CreateThread在线程过程中行为怪异。
、
、
、
、
在我的一个类的构造函数中,我将CreateThread函数称为最后一个操作。该线程被创建为立即执行,并且我将类的这个指针传递为lpParameter。 在线程过程中,我将传递回类指针的参数进行强制转换,并将其命名为pThis。 我可以看到,pThis指向的内存位置与调用CreateThread时传递的this指针相同。但是,如果我查看pThis->...访问的成员变量,它们都有错误的值。 我期望在这个指针所属的类中使用的this->member_variable值与在线程的过程中编写pThis->member_variable时得到的值相同。 如果我在另一个成员函数中调用Cr
浏览 1
提问于2012-07-25
得票数 3
5
回答
在网络URL上调用函数cvCreateFileCapture时,有时会发生分段错误
、
当函数cvCreateFileCapture有时使用网络URL作为参数调用时会发生分段错误,例如:rtsp:// is地址:Port/Path. int main(int argc, char *argv[]) { QApplication a(argc, argv); ... CvCapture* capture = cvCreateFileCapture("rtsp://..."); ... return a.exec(); } 如果参数是磁盘上的文件,则不会发生错误。 我在调试模式下构建源代码,当发生分段错误时,列出以下堆栈
浏览 15
提问于2014-04-10
得票数 2
3
回答
如何获得间歇性崩溃的devenv.com的调用堆栈?
、
、
我有一个每晚构建DOS批处理脚本,它调用devenv.exe来构建解决方案文件。我间歇性地观察到一次devenv.com崩溃。我得到一个DW20.exe“分享你的痛苦”对话框。 1)如果按下“调试”按钮,就不会出现通常的“选择调试器”窗口。相反,它什么也做不了。 2)如果我启动Visual并尝试附加到devenv.com,它会显示应用程序似乎处于僵局或等待操作完成。(我想因为它是由DW20.exe调试的) 你建议我怎么做才能得到一个像样的电话堆栈? 编辑 我成功地让WinDBG附加了。执行k命令。下面的内容看起来像是可以传递给编译器团队的有意义的东西吗?有什么方法来看待当前的异常吗? (e90
浏览 1
提问于2009-05-07
得票数 0
回答已采纳
3
回答
释放在返回指向该内存的指针的函数中分配的内存(C++)
当我试图删除"z“时,会出现堆损坏错误。我假设z指向分配的内存,所以我不明白为什么delete[]会创建一个错误。 char* cpytoheap(const char* y) { char* x = new char; for (int i=0; *(y+i); i++) { *(x+i) = *(y+i); *(x+i+1) = '\0'; } return x; } int main() { char* z = "asdf"; z = cpytoheap(z
浏览 0
提问于2014-02-28
得票数 0
回答已采纳
9
回答
调试器到底是做什么的?
、
、
我偶然发现了一个非常有趣的问题,我的应用程序中的函数(必须处理Windows剪贴板)只有在函数内部命中断点时才能正常工作。这让我想知道,当调试器命中断点时,它到底会做什么(VS2008、C++)?
浏览 0
提问于2009-08-17
得票数 2
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
查询性能显著提升,Apache Doris 向量化版本在小米A/B实验场景的调优实践
golang学习之路--内存分配器
打破数据孤岛,Apache Doris 助力纵腾集团快速构建流批一体数仓架构
腾讯云 MongoDB 智能诊断及性能优化实践
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云直播
活动推荐
运营活动
广告
关闭
领券