是否有任何Clang Static Analyzer检查器用于sqlite问题?

时间:2014-01-21 05:03:30

标签: objective-c xcode sqlite

Xcode使用的Clang Static Analyzer使用检查程序识别源代码中的警告和错误。我想使用检查程序检测何时使用sqlite并调用sqlite3_prepare_v2而不调用sqlite3_finalize

以下是现有检查器的列表。

http://clang-analyzer.llvm.org/available_checks.html

以下是潜在的跳棋清单。

http://clang-analyzer.llvm.org/potential_checkers.html

是否有任何特定于sqlite的检查器可以解决此问题?还有另一种自动检测丢失/不平衡呼叫的方法吗?

2 个答案:

答案 0 :(得分:0)

不幸的是没办法。

只有你可以这样做,确保你已在sqlite3_finalize块内写了sqlite3_prepare而不是写在外面。这将处理sqlite3_prepare失败问题。

if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK)
{
   int res=sqlite3_step(statement);
   result=res;
   sqlite3_finalize(statement);
}

如果您在sqlite3_finalize块之外的sqlite3_prepare,则会在sqlite3_prepare语句失败时导致问题。

请查看此示例:Accessing a SQLite Database with C++

答案 1 :(得分:0)

有一个Clang Static Analyzer,您可以在https://github.com/XSecurity/XSecurity

中找到它