基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

CSDN 2024-06-26 14:33:03 阅读 58

目录

1、WebRTC简介

2、问题现象描述

3、将Windbg附加到目标进程上分析

3.1、Windbg没有附加到主程序进程上,没有感知到异常或中断

3.2、Windbg感知到了中断,中断在DebugBreak函数调用上

3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分

4、用户态内存不足问题分析虚拟

4.1、判断是内存不足导致了malloc申请内存失败

4.2、为啥会中断在DebugBreak函数调用处呢?

5、占用程序进程的虚拟内存的因素有哪些?

5.1、二进制文件

5.2、线程的栈空间

5.3、程序中申请的堆内存

6、当前用户态虚拟内存占用高的解决办法

6.1、修改WebRTC编译选项,减少内存占用

6.2、将程序做成64位的

6.3、使用Visual Studio的链接选项,将用户态虚拟内存从2GB扩充到3GB

6.4、使用多进程模式

7、最后


VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)

icon-default.png?t=N7T8

https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。