我在我的 ubuntu 桌面上运行 jenkins。在推送我的 C++ 代码之前,我需要一份静态代码分析报告。我发现保险的成本很高。我正在寻找免费的分析工具。除了 Coverity 还有其他选择吗?
使用静态代码分析而不是调试,我想输入一个开始函数和一个结束函数。输出应该是函数或堆栈跟踪的路径,可以让我从开始函数到结束函数。
有什么想法如何做到这一点或现有的工具可以做到这一点吗?
我有以下 C# 代码,该代码从 Checkmarx 收到“高”错误。我看不出有什么问题。
var dataDirectoryPath = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
var json = File.ReadAllText($"{dataDirectoryPath}{Path.DirectorySeparatorChar}somefile.json");
var settings = new
JsonSerializerSettings{TypeNameHandling=TypeNameHandling.None};
var targetPathSettings = JsonConvert.DeserializeObject<List<TargetPathSetting>>(json, settings);
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
文件yyy中的xxx中处理的序列化对象ReadAllText被文件zzz中的DeserializeObject反序列化
C#代码如下:
public class TargetPathSetting
{
public string PathSettingName { get; set; }
public PathSetting PathSetting { get; set; }
}
public class PathSetting
{
public string BaseUrl { get; set; }
public string ApplicationIdUri { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我看不出文件中的任何内容都会导致任何问题,尤其是使用 TypeNameHandling.None 设置。
刚刚切换到VS2019我\xe2\x80\x99m探索是否使用代码分析。在项目属性\xe2\x80\x9c代码分析\xe2\x80\x9d选项卡中,有许多内置的Microsoft规则集,当我的代码违反这些规则之一时,我可以看到编辑器出现波形曲线。我可以自定义这些规则集并将 \xe2\x80\x9csave 为 \xe2\x80\x9d 来创建我自己的规则集。
\n\n我还看到了代码分析器 NuGet 包,例如 \xe2\x80\x9cRoslynator\xe2\x80\x9d 和 \xe2\x80\x9cStyleCop.Analyzers\xe2\x80\x9d。这些和内置的 MS 规则有什么区别?真的只是因为更全面的规则/更多的选择吗?
\n\n如果我想坚持使用内置的 MS 规则,有什么限制吗?例如,它们是否仍会在 TFS/Azure DevOps 构建期间运行并被报告?
\nstylecop static-code-analysis roslyn-code-analysis roslynator visual-studio-2019
我知道无符号整数是臭名昭著的,C++ 开发人员通常会避免使用无符号整数。我有一个包含两个int不应包含负值的成员变量的类:
.
.
.
private:
int m_Y_AxisLen;
int m_X_AxisLen;
.
.
.
Run Code Online (Sandbox Code Playgroud)
我以防止输入任何负数的方式设计了成员函数的逻辑。所以我确保这两个成员不会被分配负值。但是当我使用PVS-Studio
时,这也会带来一些警告。例如这里:
for ( int row = 0; row < getY_AxisLen( ); ++row )
{
for ( int column = 0; column < getX_AxisLen( ) - 1; ++column )
{
if ( m_characterMatrix[ row ][ column ] == getFillCharacter( ) )
{
m_characterMatrix[ row ][ column ] = fillCharacter;
}
}
}
Run Code Online (Sandbox Code Playgroud)
PVS-Studio 责怪我的索引row和类型column不正确memsize。这可能意味着我应该使用std::size_t row …
如何在不实际创建实例的情况下检查是否可以使用给定参数成功实例化对象?
实际上我只是检查(没有测试过这段代码,但应该工作正常...)所需参数的数量,忽略类型:
// Filter definition and arguments as per configuration
$filter = $container->getDefinition($serviceId);
$args = $activeFilters[$filterName];
// Check number of required arguments vs arguments in config
$constructor = $reflector->getConstructor();
$numRequired = $constructor->getNumberOfRequiredParameters();
$numSpecified = is_array($args) ? count($args) : 1;
if($numRequired < $numSpecified) {
throw new InvalidFilterDefinitionException(
$serviceId,
$numRequired,
$numSpecified
);
}
Run Code Online (Sandbox Code Playgroud)
编辑:$constructor可以null......
我在GitHub中托管了我的源代码库.我现在希望我的Sonar实例(部署在Amazon EC2上)定期从git存储库中提取以分析代码库.该项目是一个简单的JavaScript项目,我不想让ANT,Maven或Jenkins参与其中,但只需Sonar定期提取代码.
这可能吗?
javascript code-analysis static-code-analysis sonar-runner sonarqube
我正在为我的Java Android项目使用在线SonarQube.com免费操作系统服务.
我遇到了几个错误,我用==而不是.equals()检查了字符串的相等性.
我发现sonarqube有一个好的规则来找到这些错误:对象应该与"equals()"进行比较.不幸的是,在默认的Java Sonarway质量配置文件中禁用了此规则.
我的问题是,由于我没有公共SonarQube.com服务器的管理员权限,有没有办法为我的项目激活此规则?
我为嵌入式系统编写了一个 C 代码,当我使用 SonarQube 和 CppCheck 插件执行代码分析时,我得到了这个错误:
条件是多余的,或者可能存在空指针取消引用:指针。
这是有错误的代码:
ReturnCode_e SocketTcpSecureWrite( SocketHandle_t socketHandle,
char* dataBuffer,
uint16_t dataBufferLen, uint16_t* byteTransmitted )
{
uint32_t bytes = 0;
ReturnCode_e opResult = SSL_WRITE_ERROR;
*byteTransmitted = 0;
if( dataBuffer == NULL || byteTransmitted == NULL )
{
return WRONG_PARAMETER;
}
if( SEND_SOCKET( socketHandle, dataBuffer, dataBufferLen, 0, &bytes ) == SUCCESS )
{
*byteTransmitted = bytes;
opResult = SUCCESS;
}
return opResult;
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么指针一致性检查会显示为错误。我想在执行函数之前验证指针不为NULL,否则返回错误。
这是检查指针一致性的正确方法吗?
如何使用Dart的分析器 API获取字段的初始值表达式的类型?
class MyClass {
var prop = <initial value expression>;
}
Run Code Online (Sandbox Code Playgroud)
例如'text',如果初始值表达式,我想得到String.如果是函数调用,我想获得函数的返回类型.
sonarqube ×3
c++ ×2
android ×1
arrays ×1
c ×1
c# ×1
checkmarx ×1
cppcheck ×1
dart ×1
java ×1
javascript ×1
php ×1
pointers ×1
pvs-studio ×1
reflection ×1
roslynator ×1
sonar-runner ×1
stylecop ×1