每次构建后,Visual Studio 2012都会从"解决方案资源管理器"切换到"代码分析"选项卡,通常使用黄色"未检测到代码分析问题".(也可以说"TA DA!").
是否可以选择关闭选项卡切换(将其保留在解决方案资源管理器中)?[因为我无法在解决方案或选项中找到它].
谢谢!
我编写的大多数代码都是在Ruby中,每隔一段时间,我会做一些错字,只会在一段时间后被捕获.当我的脚本运行很长的任务时,这很烦人,并返回发现我有一个错字.
是否有一个积极开发的Ruby工具lint工具可以帮助我克服这个问题?是否可以在一个使用大量源文件的系统中使用它,其中一些是动态加载的?
以此片段为例:
a = 20
b = 30
puts c
Run Code Online (Sandbox Code Playgroud)
要获得赏金,请告诉我一个工具,它将检测c变量为未创建/未定义.
我正在为嵌入式系统编写启动代码 - 在跳转到main()函数之前加载初始堆栈指针的代码 - 我需要告诉它我的应用程序将使用多少字节的堆栈(或更大的,保守估计).
我被告知gcc编译器现在有一个-fstack-usage选项和-fcallgraph-info选项,它可以以某种方式用于静态计算我的"最大堆栈使用率".(" Botcazou,Comar和Hainque的编译时堆栈需求分析与GCC").
奈杰尔琼斯说,递归在嵌入式系统中是一个非常糟糕的主意("计算你的堆栈大小"2009),所以我一直小心不要在这段代码中做任何相互递归的函数.
另外,我确保我的中断处理程序都没有重新启用中断,直到它们最终从中断返回指令,所以我不需要担心重入中断处理程序.
如果没有递归或重入中断处理程序,则应该可以静态地确定最大堆栈使用情况.(所以大多数答案如何确定最大堆栈使用量?不适用).我的理解是我(或者最好是我的PC上的一些代码在每次重建可执行文件时自动运行)首先找到每个中断处理程序的最大堆栈深度,当它没有被更高优先级的中断中断时,最大值当main()函数没有被中断时,它的堆栈深度.然后我将它们全部添加到找到总(最坏情况)最大堆栈深度.当main()后台任务在被最低优先级中断中断时处于最大深度时发生(在我的嵌入式系统中),并且当中断被下一个最低优先级中断时,该中断处于其最大深度中断,等等.
我正在使用YAGARTO和gcc 4.6.0来编译LM3S1968 ARM Cortex-M3的代码.
那么如何使用-fstack-usage选项和-fcallgraph-info选项与gcc一起计算最大堆栈深度?或者是否有更好的方法来确定最大堆栈使用量?
(有关针对Keil编译器的几乎相同问题,请参阅如何确定嵌入式系统中的最大堆栈使用情况?)
我有一些代码会触发代码分析警告CA1063:
CA1063:Microsoft.Design:从"功能"实现的接口列表中删除IDisposable,并覆盖基类Dispose实现.
但是,我不确定我需要做些什么才能修复此警告.
简而言之,我有一个IFunctionality源自的界面IDisposable.类Functionality实现IFunctionality但是从类派生Reusable以便能够重用som代码.类Reusable也来源于IDisposable.
public class Reusable : IDisposable {
~Reusable() {
Dispose(false);
}
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(Boolean disposing) {
// ...
}
public void DoSomething() {
// ...
}
}
public interface IFunctionality : IDisposable {
void DoSomething();
void DoSomethingElse();
}
public class Functionality : Reusable, IFunctionality {
public void DoSomethingElse() {
// ...
}
#if WORK_AROUND_CA1063
// …Run Code Online (Sandbox Code Playgroud) 我真正想念Java的一件事是工具支持.FindBugs,Checkstyle和PMD可实现三位一体的代码质量指标和自动错误检查.
是否有任何东西可以检查Ruby代码的简单错误和/或样式违规?如果我可以为Rails这样的框架调整它以便遵守Rails习语,则可以获得奖励积分.
没有在StyleCop帮助手册中找到它,在SO和Google上,所以这里是;)
在StyleCop使用期间,我有一个警告:
SA1121 - UseBuiltInTypeAlias - 可读性规则
代码使用其中一种基本C#类型,但不使用该类型的内置别名.
不应使用类型名称或完全限定类型名称,应始终使用这些类型的内置别名:bool,byte,char,decimal,double,short,int,long,object,sbyte,float,string ,ushort,uint,ulong.
所以String.Empty是错的(取决于上述规则)并且string.Empty是好的.
为什么使用内置别名更好?可以String. Int32,Int64(等)在特殊情况下的代码中复杂化吗?
为了分发我编写的函数,它依赖于我编写的其他函数,它们有自己的依赖关系等等而不分发我写过的每个m文件,我需要弄清楚依赖项的完整列表是什么对于给定的m文件.是否有内置/可免费下载的方式来做到这一点?
具体来说,我对MATLAB 7.4.0(R2007a)的解决方案感兴趣,但如果在旧版本中有不同的方法,请务必在此处添加.
我有下面显示的方法生成CA1822代码分析警告.CA1822说:
"The 'this parameter (or 'Me' in Visual Basic) of 'ImportForm.ProcessFile(StreamReader)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this/Me' in the method body or at least one property accessor, if appropriate."
任何人都可以告诉我为什么我收到此警告,因为"读者"参数实际上正在使用?
private void ProcessFile(StreamReader reader)
{
string[] lines;
lines = reader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
ParseFile.IVAFile(lines);
}
Run Code Online (Sandbox Code Playgroud) 我受到了C/C++问题的启发,用于代码流可视化工具.
Java servlet或应用程序有这样的东西吗?
code-analysis ×10
c# ×3
ruby ×2
actionscript ×1
dependencies ×1
embedded ×1
function ×1
gcc ×1
idisposable ×1
java ×1
lint ×1
matlab ×1
rules ×1
stylecop ×1