Re: Refactoring and Dynamic Analysis
Richard <[email protected]> Mon, 25 Nov 2013 11:17:46 -0700
| Newsgroups | gmane.comp.programming.refactoring |
|---|---|
| Organization | multi-cellular, biological |
| Message-ID | <[email protected]> |
As archives of this list will show, I'm a strong advocate for
improving the state of refactoring tools for C++. I know everyone
always says "it's hard", but things are getting much, much easier with
clang's libtooling library and other aspects of the code base. Clang
does all the heavy lifting for you of doing the parsing of source
files into data structures and the underlying LLVM library can help
you with various forms of analysis of the resulting machine code.
Clang currently has 4 dynamic analysis tools:
- address sanitizer: a fast memory error detector
<http://clang.llvm.org/docs/AddressSanitizer.html>
- thread sanitizer: detects data races
<http://clang.llvm.org/docs/ThreadSanitizer.html>
- memory sanitizer: detects uninitialized reads
<http://clang.llvm.org/docs/MemorySanitizer.html>
- data flow sanitizer: generalized dynamic data flow analysis
<http://clang.llvm.org/docs/DataFlowSanitizer.html>
I would strongly suggest looking at these tools and leveraging them if
you can to create even better tools. Everything in clang is open
source and it has a very active community that can help answer your
questions and guide you with specific improvement suggestions.
clang home page: <http://clang.llvm.org/>
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Computer Graphics Museum <http://ComputerGraphicsMuseum.org>
The Terminals Wiki <http://terminals.classiccmp.org>
Legalize Adulthood! (my blog) <http://LegalizeAdulthood.wordpress.com>