Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Does anyone know of a tool to analyze/navigate VB6 source code like the tool from scitools?
http://www.scitools.com/products/understand/
Maybe Project Analyzer is an alternative?
Also you could take a look at codesmart 2009 for VB6
Project Analyzer
The free MZTools plug-in for the VB6 IDE has some nice features, like listing all callers to the current procedure, and a much-improved search tool. Get this, even if you decide you need another tool for analysing.
FKCoder mentions in another question that Microsoft's free Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Tool creates a call graph in HTML for a single VBP project.
If you have Visio, you probably have the Unified Modeling Language (UML) Reverse Engineering add-in for VB6 that will create UML diagrams from your code.
EDIT: +1 to kb for CodeSMART for VB6
VBDepend is now available,it's NDepend like for vb6.
Our SD Source Code Search Engine is a language sensitive tool for search across large bodies of source in VB6 (and it understands many other langauges, e.g, C, C++, C#, Java, COBOL, PHP, ... at the same time!).
It understands the structure of the langauge (identifiers, numbers, keywords, strings, operators, comments, whitespace) and lets you formulate queries for code constructs in terms of those entities. Because it understands langauge structure, it is isn't fooled by whitespace changes or line breaks, and this significantly reduces the number of false positive hits.
The Source Code Search Engine preindexes your source code base to provide extremely fast searches even over millions of lines of code. The Graphical UI shows hits on queries; from there, a single mouse click can show you the source code for hit. From the souce code, you can go directly into most editors.
As a side effect of indexing the code base, the SCSE also computes various metrics per file: SLOC, NCSLOC, McCabe and Halstead complexity numbers, etc.
A unique kind of analysis the we offer for VB6 that is different than SciTools is duplicate code detection.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I'm refactoring old code and I want to find all functions that bigger than N lines to refactor it. It would be cool if there was the same tool for finding big classes.
The project has a lot of files so it is not so easy to find large methods manually.
I couldn't find this tool on the Internet, so, maybe you guys know a tool that can help me?
Thanks in advance!
You can find IDE plugins and external tools which will compute cyclomatic complexities of each of your methods to achieve your needs. You can find some tools in this subject
In the PVS-Studio analyzer there is the V553 diagnostic that reports that the size of the function or class exceeds 2000 lines. However, it's not the best idea to rely on the function size. It is because in addition to the length one should also take the function complexity into account. In this case, search for functions with large Cyclomatic complexity may help. For this, there is another V2008 diagnostic in PVS-Studio (note that it's disabled by default).
The tool NDepend can help finding large and complex classes and methods. There are several default rules for that:
Avoid types too big
Avoid methods too big, too complex
Avoid making large methods even larger
Avoid making complex methods even more complex
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 7 years ago.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Improve this question
I love using Google for quick back-of-the-envelope calculations. For instance, if I want to know the approximate weight of a carbon-12 ion with charge state 4, I search for
12 u -4*electron mass in u
and get the answer 11.9978057 atomic mass units. More complex things, such as the cyclotron frequency of this ion in some magnetic field, are just as easy:
1/(2*pi)*4* (elementary charge)/(12 u - 4*(electron mass)) * 5.1125 Tesla
This returns the correct answer 26.174171 MHz. The fact that I can enter 12u - 4*(electron mass) and Google converts the units on the fly, is really helpful to me. WolframAlpha can do even more, but Google is a lot quicker and does not ask for a subscription after my nth query.
As an offline solution, I used a Matlab script in which I had most constants defined, but Matlab takes 30 sec to 1 min to start up, which is frustrating. Mathematica is not much faster to start up, either. Also, for technical reasons I have to use network licenses, so these programs are not offline solutions anymore. I switched to Excel (which loads quite fast), where I have a sheet that used named ranges. This is semi-convenient, but it just feels wrong.
Is there any lightweight Windows program that provides this functionality offline?
You can use the Units program that was originally developed for UNIX. There is a native Windows port that is based on version 1.87 (2008). The current version of the UNIX tool is 2.01 (2012).
Units was originally designed to do simple unit conversion, but it also supports evaluating mathematical expressions. It requires you to specify the unit of the output and gives you two lines as a result: The result that you want is the first line, the second line is the inverse of the result.
This program has three major shortcomings when compared to the Google math expression evaluation:
You have to know the unit that you want to get in advance. (I don't always know it, and sometimes I just don't care. Often this unit is "1", as for the result of the calculation sin(pi).)
It does not tell you how it interpreted the units that you entered. Google always returns a parsed version of the input string, so that you can see where Google misunderstood you.
It is quite strict when it comes to variable names. Multi-word names are not permitted, so electron mass is called electronmass (m_e also works).
The installer.exe is easy enough to use, but on my Windows XP machine it did not set the path variables of the command line correctly. I set up a simple shortcut on my Desktop that points to: C:\Programs\GnuWin32\bin\units.exe.
Overall, Units is a nice and quick calculator that starts up a few thousand times faster than Matlab or Mathematica - but the user interface has some shortcomings.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I'm looking for a (preferably free) tool that can produce "proper" disassembly listing from a (non-.NET) windows PE file (*.exe or *.dll).
Important requirement: it should be possible to run the listing through a windows assembler (nasm, masm or whatever) and get working exe again (not necessarily identical to original one, but it should behave in the same way).
Intended usage is adding new subroutines into existing code, when source is not available.
Ideally, tool should be able to detect function/segment boundaries, API calls, and generate proper labels for jumps (I can live without labels for loops/jumps, though, but function boundary detection would be nice), and keep program resources/segments in place.
I'm already aware of IdaPRO(not free), OllyDBG (useful for in-place hacking, doesn't generate disassembly listing, AFAIK), ndisasm (output isn't suitable for assembler), dumpbin (useful, but AFAIK, output isn't suitable for assembler) and "proxy dll" technique.
Ideas? Or maybe there is a book/tutorial that explains some kind of alternative approach?
Also,check out Oilly. It's a pretty neat application and very intuitive too. You can disassemble and hex edit. Ideal for small to medium size projects.
You say you're aware of IdaPRO, but are you also aware of IdaFree?
I'm not positive it does exactly what you want but have you tried PEiD?
Take a look at free PEBrowse Professional:
http://www.smidgeonsoft.prohosting.com/pebrowse-pro-file-viewer.html
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm going to need to write a program that takes a list of persons and connects them together in a directed-graph-like manner. The GUI aspect of the whole project is very important. The graph must allow a lot of interaction. Such as selecting several people and hiding the others, moving them around.
Additionally, the software will need to be able to provide other kind of GUI-features such as several tabs, text boxes etc.
The application must be quite efficient. As in, it must be able to handle hundreds if not thousands of widgets.
Hence, I would like to know which open source libraries (at this point the programming language they are written in does not matter - I just want an overview of everything good that is out there) would allow me to develop such piece of software? What would you recommend?
Edit: Could you please also link to tutorials explaining how I could program a GUI that can interact with the generated graph? For example mouse events.
How about JGraphT in combination with JGraph.
Check here for a simple demo with basic interaction
Take a look at Graphviz, especially its lefty component. It should satisfy your needs.
http://en.wikipedia.org/wiki/Graphviz
Depending on your actual goal and needs, you might consider taking a look at processing.org. The site has many demos and like many other libraries, it is free. Using Processing does not require you to learn much. It is similar to Java and written in Java, but allows you to ignore much of the Java structure and code and just do what you want.
Since you mentioned that you would want to use x or y to code in, it sounds like you have not made a language decision, so this might be worth your time. Spend 15 minutes there and look at the demos to see if it provides what you are looking for. If speed to a single solution is one of your criteria, this might do it.
You might want to have a look to Dynagraph.
EDIT: An article presenting Graphviz and Dynagraph is available here.
My first thought was ILOG Views (for Java, .Net, C++), now owned by IBM, but their pricing is rather steep. My second thought would be yFiles (for Java or .NET), perhaps in conjunction with yEd (Java only).
If that still doesn't cut it, have a look at the alternatives on this list (rather unsorted, some tools are not open source, others won't suit you for other reasons).
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have a large code base and there is lots of repeated, or nearly repeated code all over the place, it's about as unDRY as code can get, but tracking the "duplicates" is hard, so I was wondering if there are any tools for finding potential DRYable code, something like a diff tool or a Hamming distance analizer, don't need language specific knowledge or anything like that.
So any clues as too a tool like this?
Clone Detective for Visual Studio
If you're working in ruby, then you can try this.
Duplo (open source) works in C, C++, Java, C# and
VB.Net. I tried it once, and it found enough duplicated code to keep me employed for a long time.
I've heard of Simian (commercial) but have not tried it.
I use Simian in VS. It's pretty good, not great.
Clone Dr from Semantic Designs is a commercial product that finds duplicate code in a large number of different programming languages. http://www.semdesigns.com/Products/Clone/index.html
Large companies can afford this product. Individuals ... not so much. I wish there were some open source projects out there like this. Might be a fun project to work on. If we only knew of a community of programmers with some time on their hands ...
Semantic Designs' CloneDR find exact and near-miss duplicate clones based on the langauge structure, so it isn't fooled by whitespace changes or line breaks, inserted/changed comments, or even modified variable names.
It leverages production parser front ends to work with C, C++, C#, Java, COBOL, PHP, Python, Fortran, Ada, ...
There are a number of example Clone analysis reports at the web site for various languages.