使用 Electric Fence 检测内存越界操作
此文《使用 mcheck 检测堆(Heap)一致性》介绍用 mcheck 检测内存的一致性,但它无法检测越过内存块上下边界进行读写之类的违规操作。它只能在违规操作导致堆管理器维护的内存块信息被破坏之后才能检测出来,而且即使能检测出来,也无法精确的...
此文《使用 mcheck 检测堆(Heap)一致性》介绍用 mcheck 检测内存的一致性,但它无法检测越过内存块上下边界进行读写之类的违规操作。它只能在违规操作导致堆管理器维护的内存块信息被破坏之后才能检测出来,而且即使能检测出来,也无法精确的...
堆被破坏通常很难检测到,除非发生很明显的违规操作,比如多次释放,释放不正确的内存块等。堆不仅包含分配给应用程序的内存块,还包含了堆管理器维护的已分配或者未分配的内存块的信息,如果这些信息无意的被修改,会导致程序异常崩溃,而且很难检测,因为它通常还...
常在河边走,哪能不湿鞋。C 和 C++ 都需要手动管理指针,一不小心就忘记释放而泄漏了。可以使用 mtrace 简单的进行内存泄漏检测,它 hook malloc(), realloc(), memalign(),calloc() 和 free(...
glibc 自带了一个 libmemusage 的库,用于收集应用程序运行时的内存使用情况。使用起来很简单,只要在编译的时候添加 -lmemusage 即可。它使用 api hook 技术对 malloc,realloc,calloc和free ...
最近写个小程序,需要解析命令好选项,找了好多 option Parser,对比getopt,gflags, anyoption,option-parser, optionparser-cpp,ArgvParser,TCLAP,最终选择了TCLAP...
今天遇到一个奇怪的问题,在与其他子系统交互的 Session 中,在发送某个类型的 Message 之后,发送线程超时返回了,接收线程也没有收到任 何Message 。子系统的Session 是这样实现的,我们的子系统 A 作为服务器端,上电后等...
编辑器之神
偶然间发现这个 StringSwitch 类( 位于 llvm 项目的 lib/ADT/StringSwitch.h ),感觉特新颖,而且它的实现用到了模板类的一下高级特性。不得不感叹 C++ 语法的自由与复杂。使用这个类可以避免一大串的 if ...
前段时间买了个 Raspberry Pi,它很适合用来做小白鼠。;) 用它来做一下小实验还是很不错的,总是在虚拟机里跑越来越觉得不方便。我装的是Pedora,但是直接在板上编译大一点的程序是不科学的,所以建立一个交叉编译环境是必须的。现在工作大多...
bumblebee 是何方神圣?