Tag: 仪器

使用什么代替mudflap与gcc / llvm(用于检测内存访问错误)?

似乎 -fmudflap function 已从 GCC中删除 。 因此,我的问题是:使用什么来代替它来动态分析程序的超出读/写,未初始化的读取和此类问题? (也许作为一个附带问题:它为什么被删除了?) mudflap的方法(在编译器中使用工具化生成的代码)看起来非常优雅。 背景 其他工具在源代码级别(例如Insure)上对机器代码级别(例如Purify)进行工具化,或者在仿真CPU(例如Valgrind)期间进行工具化。 mudflap方法有可能找到valgrind或purify无法检测到的错误(例如,基于堆栈的arrays访问错误)。 它比其他方法更轻巧。 我正在寻找一个开源解决方案。

使用LLVM检测C / C ++代码

我想写一个LLVM传递来检测每个内存访问。 这是我想要做的。 给定任何C / C ++程序(如下面给出的那样),我试图在每次读取/写入/写入内存的指令之前和之后插入对某些函数的调用。 例如,考虑下面的C ++程序(Account.cpp) #include class Account { int balance; public: Account(int b) { balance = b; } ~Account(){ } int read() { int r; r = balance; return r; } void deposit(int n) { balance = balance + n; } void withdraw(int n) { int r = read(); balance = […]