How to keep track of source code call stack - c++

I'm trying to re-implement a C++ code in Go. Specifically, I'm focused on meshToVolume tool of OpenVDB library.
As shown by a manually-prepared code flow screenshot, even a rough call stack map is pretty perplexing.
I'm looking for a tool to help me keep track of call stack and the code flow. So far:
I've looked at this post and tried out BOUML, but it didn't help
Also, OpenVDB has a Doxygen, but I couldn't get much help regarding keeping track of code flow and call stack
Can anybody suggest a helpful tool/method?

Using Doxygen, I could finally visualize call graph!
Approach
Downloaded and installed Doxygen. Then ran Doxywizard i.e. Doxygen GUI front-end. OpenVDB has a doc directory which is set as the working directory from which Doxygen will run.
Without selecting these options, call graphs didn't get generated for me:
I have Graphviz DOT language installed on my machine. There I can use it to generate call graphs:
Finally, Doxygen generates the output HTML accessible at:
file:///C:/Users/m3/repos/doxygen-output/html/index.html
Dependency graph sample:

Related

Creating a Testing level

Im trying to build my first testing level in Cryengine.
Im really new to coding and c++ (basically a baby).
I have modelled the island in Cryengine.
I want to make a Server for my friend to log in to test If we would be able to run it-
I cannot find root/system.cfg to set parameters there I have looked everywhere for it. it is just hiding or I am doing something wrong?
I need to specify parameters: Set net_dedicatedServerArbitratorPort= in system.cfg to a sensible value.
Any help would be great :)
Thank you. Wish me luck.
I have tried looking in Visual Studio, Tried Cmake, Looked in every folder in the Directory of the testing island.
I really dont have and idea how to run it, im just trying to follow the Cryengine Manual.

Doxygen Comments check for differences

I am using qtcreator on linux and am searching for a way to update the Doxygen comments in the c++ code I am working with.
I like to be notified if somebody changed a signature when the documentation is not matching anymore whats in the code. What tool is able to automatically check for differences between signature and doxycomments, and preferable is able of adding empty /param for every missing parameter?

AXIS2C WSDL2C codegen

I feel helpless especially without proper documentation for WSDL2C codegen tool. Here is the question with little background:
I was able to download the WSO2-WSF-C-SRC (C source) and able to compile and get the SOAP server running. Also created a wsdl file and generated server skeleton code using WSDL2C codegen tool. The codegen code is way bigger than the code that appears in the Samples provided in the download. Unfortunately, there isn't much literature for the code generated by the WSDL2C tool. Can someone help as to how the start my business logic coding? How to set some default values to all the output parameters? I was able to figure out the location to start. I wish there is a sample code somewhere with the business logic code as well. Can someone help?
Thanks in advance.
Well, I cracked the code. Obviously, one has to go through the code to understand the basic structure, which I did, finally.
Best Wishes.

Tool for generating a call flow graph [C C++ solaris linux]

I'm quite fond of IDA, but I'm working in Solaris on this project. I do have a linux machine, and if nothing is in the same league as IDA then I'll convince management to purchase a license for it.
Barring that, I'm looking for alternative suggestions. Some of the other features in IDA would be handy, but the main thing I need at the moment is a call flow graph generator not based on source code. If it needs extra output from the build step, that's fine, but some of the libraries I need to look at I don't have source for.
So far, it looks like my best choices are Valgrind's Callgrind, lida, and gprof. Any further suggestions are welcome.
re: gprof, the GNU compiler set provided to us by Windriver is missing some libraries that would normally be supplied with a GNU compiler to provide (among other things) facilities for profiling. It's a good solution to the more general problem, but for now I'm opting to try other solutions first.
edit Some of the Rational tools (Purify, Quantify, etc) might also work well for this. I'm in the same boat as with IDA with that, but I figure someone googling might find the suggestion helpful.
edit2 Valgrind hasn't been ported to solaris/sparc ;p
Take a look at the ERESI Project. It's a reverse engineering framework and it has a tool, called ELFsh, with capabilities of generating CFG from machine code. It doesn't have a stable/final yet, but it's worth a shot.
If you want to try it:
download and install (apt-get on Ubuntu)
run elfsh32. You'll enter a shell.
load your binary: load /bin/bash
analyse it: analyse
generate the graph: graph
You'll get a graph in .dot format and a rendered PNG (this one was too large to post here).
You can generate a call graph with Gprof. It can be visualized with Kprof.
Very late answer but can still be useful.. On Solaris you can use collect.
collect your_program your_args...
It will generate a directory like test.1.er
You can then visualize the call graph on the console with er_print -calltree test.1.er
Or on X-Window with analyser

C/C++ Code Examples with HTK (Hidden Markov Toolkit)

I am trying to get started with HTK, I grabbed a copy, compiled it, grabbed the book, and all went more or less fine, little troubles here and there but nothing serious.
Now after reading the book and googling quite a while, I do not see any documentation for the essential part for me: HTKLib. Everything is described into the smallest detail for all HTK tool programs (scriptable command line interface tools) but I cannot find a single example or tutorial how to actually call the lib.
Could anyone point me into a direction?
The source code for the respective tools is included, but it would be rather cumbersome to have to extract the information for a reputable library by reading the source code... I would have expected a little more documentation , but maybe I simply overlooked it?
Any help is deeply appreciated,
Tom
edit:
I was trying to use HTK for computer vision purposes, not for NLP, and for that I required that I could link against it, and call it from within my code. Thanks for your replies.
Maybe ATK is more suitable for you. Here is the explantation from the ATK site:
"ATK is an API designed to facilitate building experimental applications for HTK. It consists of a C++ layer sitting on top of the standard HTK libraries."
In addition Microsoft Research has another research tool here for training acoustic models. This includes a set visual project for HTKlib and a set of C++ HTK wrappers, but it may only include a subset of the HTK functionality and has licence restrictions.
I have not used it but use I the language modeling toolkit. I think the main intention is to use the command line tools provided. I imagine they are very flexible tools that will enable you to build and test models. Why do you want to use the code?
Also what are you trying to do?