相关疑难解决方法(0)

如何检测/避免(非托管)代码中的内存泄漏?

在非托管C/C++代码中,检测内存泄漏的最佳实践是什么?和编码指南,以避免?(好像就这么简单;)

过去我们使用了一些愚蠢的方法:每次内存分配调用都有一个计数器增量,而在释放时减少.在程序结束时,计数器值应为零.

我知道这不是一个很好的方式,有一些捕获.(例如,如果释放由平台API调用分配的内存,则分配计数将与您的释放计数不完全匹配.当然,我们在调用分配内存的API调用时递增计数器.)

我期待您的经验,建议和一些简化此工具的工具参考.

c c++ memory-leaks

123
推荐指数
9
解决办法
16万
查看次数

什么C/C++函数最常使用不正确,可能导致缓冲区溢出?

我被要求维护一个充满内存泄漏的大型C++代码库.在探索时,我发现我们有很多缓冲区溢出导致泄漏(它如何变坏,我不想知道).

我决定先从危险函数开始删除缓冲区溢出.哪些C/C++函数最常使用不正确并可能导致缓冲区溢出?

对于用于帮助查找缓冲区溢出的编译器和/或工具,我创建了另一个处理此问题的问题

c c++ buffer-overflow buffer-overrun

16
推荐指数
3
解决办法
6208
查看次数

如何找到缓冲区溢出和内存损坏的地方?

valgrind找不到任何有用的东西.我糊涂了.

Symptomes:

  1. 我的数据被malloc()调用破坏了
  2. 我的函数的返回地址被错误的替换

PS:代码不会出现段错误

目前我通过mmap()+ 替换所有malloc()取得了一些进展mprotect()

c valgrind buffer-overflow memory-corruption

6
推荐指数
2
解决办法
1万
查看次数

如果调试运行良好,但发布崩溃该怎么办

我有一个在调试版本中运行良好的应用程序,但是当我在发布版本中启动它时,我得到了一个

unhandled Exception at 0x0043b134 in myapp.exe: 0xC0000005:
Access violation while reading at position 0x004bd96c
Run Code Online (Sandbox Code Playgroud)

如果我点击"break",它会告诉我没有加载符号,并且无法显示源代码.

在这种情况下我能做些什么来追查问题?

c++ crash debugging release

5
推荐指数
2
解决办法
2万
查看次数