Java有一些非常好的开源静态分析工具,如FindBugs,Checkstyle和PMD.这些工具易于使用,非常有用,可在多个操作系统上运行并且免费.
可以使用商业C++静态分析产品.虽然拥有这样的产品很棒,但是学生的成本太高,而且通常很难获得试用版.
另一种方法是找到可在多个平台(Windows和Unix)上运行的开源C++静态分析工具.通过使用开源工具,可以对其进行修改以满足特定需求.寻找工具并非易事.
下面是其他人发现或建议的C++静态分析工具的简短列表.
-Weffc++GNU g ++ 选项(来自答案)什么是其他任何人都知道并可以推荐的便携式开源C++静态分析工具?
一些相关链接.
有哪些方法可用于确定嵌入式/内存受限系统的最佳堆栈大小?如果它太大那么浪费的内存可以在其他地方使用.但是,如果它太小,那么我们得到这个网站的同名......
为了尝试快速启动:Jack Ganssle在"嵌入式系统设计的艺术"中指出,"凭借经验,人们可以学习标准的,科学的方法来计算堆栈的正确尺寸:随机选择尺寸并希望." 任何人都可以做得更好吗?
要求提供更具体的例子.那么,在没有操作系统的情况下使用IAR Embedded Workbench工具链,针对具有2 kB RAM 的MSP430 MCU的C程序怎么样?使用JTAG调试器时,此IDE可以显示堆栈内容和使用情况.
有没有一种标准的方法来查看您的应用程序有多少堆栈空间以及运行期间堆栈使用的最高水印?
另外在可怕的情况下实际溢出会发生什么?
它会崩溃,触发异常还是发出信号?是否有标准或在所有系统和编译器上有所不同?
我正在寻找专门针对Windows,Linux和Macintosh的.
我正在构建一个小型软件引擎,我想使用堆栈来快速迭代大量集合.但后来我发现这可能是一个坏主意,因为堆栈不像堆那么大的内存存储.但我被堆栈的速度和缺乏动态分配编码实践所吸引.
有没有办法找出我可以在给定平台上推送堆栈的程度?我主要关注移动设备,但问题可能出现在任何平台上.
我正在使用多线程嵌入式应用程序.每个线程根据其功能分配堆栈大小.最近我们发现其中一个线程通过定义一个超过堆栈大小的局部变量数组来破坏堆栈.操作系统是uItron.
我的解决方案,我注册了一个10 mS的计时器,这个计时器将检查堆栈损坏.
堆栈损坏检查方法,1.用一些独特的模式初始化堆栈内存(我使用0x5A5A5A5A)2.从时间检查堆栈内存的顶部是否仍为0x5A5A5A5A
我的问题,
有没有更好的方法来检查这种类型的腐败
忘记添加,立即添加:操作系统:Itron,处理器:ARM9.编译器:不是GCC(特定于ARM9由处理器供应商提供)......并且没有内置支持堆栈检查......
我正在尝试使用以下程序创建堆栈溢出运行时异常:
void f(int a) {
cout << a << ", ";
f(++a);
}
int main () {
f(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行此程序时,我的计算机运行大约261824 call stack然后command terminated发生运行时错误.现在我想知道:
command terminated会出现错误?try,catch堆栈溢出异常?call stack?