I think SonarQube suits your needs, We use it exactly the same way you want but with jenkins and for java-based code(supports multiple languages though, no need to worry).E.g. pushed a commit -> Jenkins builds and deploys -> updates SonarQube which gives online statistics. I imagine setting SonarQube with Travis wouldn't be too much trouble since
You can use splint with the alluse flag to check for unused functions but personally I would use doxygen to produce a call map - any functions that have no parents are probably unused - just look out for any functions that are in tables of functions that might not be directly called but things like state machines might invoke from the table index.
I've found SwiftLint and Tailor, which both enforce Swift style and convention best practices.
Both can be run from the command line as an external tool, or integrated with Xcode.
Both are well-maintained and Tailor is cross-platform. Both have customizable rules engines.
Tailor looks more "official," with a more stable dev team, but it's hard to say ...
From my answer to this question - two days ago HINT: you can search our site for questions similar to the one that you plan to ask.
I don’t think that you will get a better open source application than WinMerge (although it would do no harm to look at Kdiff3.
Neither of them will handle your int i; for (i ...) -> for (int i ...) example, but they are ...
In use Kaleidoscope ($69.99, also on the Mac App Store) for file comparison, mainly with Git. It's a native Mac application which runs super smooth. It's definitely not a cheap app, but the fact that it works so nice makes me happy each time when using it.
I only use the app for folder and text file comparison. However, it also supports image comparison and ...
Given that @user2284570 is in the comfortable situation of covering 100% of use cases via tests dynamic code analysis will provide the answer. In other cases removal of functions, their calls and conditions would require a thorough review.
Any code coverage tool will report function coverage in one form or the other. The main gripe seems to be reporting of ...
Solution Dependency Viewer by Microsoft for Visual Studio 2013.
Solution Dependency Viewer provides a graph layer to the solution with
projects represented as nodes and project references represented as
links between nodes.
It seems to fill at least half of your requirements:
It runs on at least Windows 7 - 10 (as does Visual Studio ...
Refactoring Essentials for Visual Studio and other IDEs is an open source tool that has features which include refactorings for C# and analyzers and code fixes for C#.
Refactoring Essentials comes in the following flavors:
VSIX: built for Visual Studio - supports analyzers and refactorings
Nuget: packaged for build servers / IDEs that support analyzers via ...
I use Google Chrome for all of my debugging, so if Firefox has equivalent features, I do not know about them.
You can accomplish most of your goals using Chrome's Elements panel (hit F12 from any webpage). Find the style element that you think might be part of the problem, uncheck the box next to it or modify the value and Chrome will render the page with ...
You want something like BlackDuck's products. As I understand it, BD's product check to see if your software includes code from open source contexts, mostly to help you understand what software license you have implicitly chosen by using that code. I have no explicit experience with BD, and I'm not more knowledgeable on the topic, so this hardly qualifies ...
See the redbook entry on hooks for more information and the config ...
In the book Your code as a crime scene (Amazon Germany), Adam Tornhill uses version control systems to find a lot of interesting facts and presents them in a "new" way. The cool thing is that the generated graphics are interactive. You can also find videos by Adam Tornhill on Youtube, but be warned that they appear a bit staged (they focus a bit too much on ...
I don't know that you'll find a tool that handles all of your requirements, but, the one I can recommend is StatSvn. We use it as part of our nightly Jenkins build process. It identifies LOC and churn for us.
As Ira Baxter pointed out in the comments, the source for RATS is still available at https://code.google.com/archive/p/rough-auditing-tool-for-security/downloads
A binary for Windows 32bit is available at the URL above.
The source code has received no maintenance since 2014, and now that Google Code is read-only the place to watch might be https://github....
The best bet is coverity.
Java, C/C++ or C# code
Runs on open source project for free
Integrates easily with GitHub and Travis
It is subject to a maximum number of builds per day/week, 3 per day and 12 per week. If less then 10k lines down to 2 per week for projects greater than 1M lines.
In gcc you have the following options:
-Wunused-result Warns if returned value is unused
-Wunused warn about a number of unused cases and
-Wall (my favorite) turns on a bunch of warnings including -Wunused-result
A full list of gcc warning options can be found here.
You can also use function atributes to set warn_unused_result so as to generate a warning ...
In the past, for old-school C/C++ code, I used PC-lint, a commercial software developed by Gimpel Software.
The company actually develops a couple of static analysis tools: PC-lint and FlexeLint.
Pc-lint is for Windows systems, while FlexeLint runs on almost all systems that support C including VMS, OS-9, and pretty much all Unix systems.
PC-lint and ...
There is gprof2dot is a python which can process such output, without the size limitations, to produce a dot file that can then be converted to a graph using graphviz it can process the output of:
Valgrind's callgrind tool
VTune Amplifier XE
Since it is ...
I’ve had some success using a tool called CppCheck via a Jenkins CI system. I don’t specifically track conditional branches, but, the amount of checks this tool provides is worth the look. In particular, check the Condition part which lists various checks for conditions that are always true/false (including value tracking, duplicate conditions, interval ...
[2 months and no responses. I'm providing a commercial answer since
no other answers seem forthcoming.]
Our Source Code Search Engine (SCSE) is used to search large repositories containing many (arguably dozens) languages for interesting code idioms. It is fast because it indexes the code base according to the lexical syntax of each of the languages; ...
Your "simplified view" would need to apply the C/C++ preprocessor, apply includes, and parse - at the very least. That's most of the front-end part of a compiler. It's really not a good idea to try writing something like that yourself. It is a good idea - if you want to do static analysis of code in a compiled language like C++ - to put yourself on top of an ...
For code static analysis you can use SonarQube:
it supports coverage and complexity metrics
it takes external tools results (pylint, jslint, etc)
supports Js and Python, not sure about Perl
provides dashboards and timelines
There is a JIRA plugin (https://docs.sonarqube.org/display/PLUG/JIRA+Plugin), but it seems to be deprecated.
Also in the marketplace, ...
The answer to your question is to use doxygen to parse your code and get it to produce, via GraphViz dot tool, any diagrams that you need.
Parse Multiple Layers of C++ - Yes
Multiple Code Languages - Yes C, C++, Python, Fortran, VHDL, PHO, Java
Include in the Build Process - Yes
Wizard for generating configs but then callable from the command line, (or ...
Yes, I have done tasks with large-scale analysis and modification of code, including C++. I build tools explicitly to handle this.
Our DMS Software Reengineering Toolkit with its C++ Front End might be of help.
(Since this is not a off-the-shelf solution to OPs problem, I can't make a recommendation here, only point out its existence. I will assert
it is ...
Semantic Designs' (my company) Source Code Search Engine (SCSE) provides this capability.
SCSE is mainly used to search large source code bases in many files in multiple programming languages efficiently. It provides a query language that lets one pose an interactive query in terms of the target language(s), and typically finds all the query matches in 1-...