A dynamic control flow graph (CFG) reconstruction tool for valgrind

Andrei Alvares <[email protected]>
Newsgroups gmane.comp.debugging.valgrind.devel,gmane.comp.debugging.valgrind
Message-ID <CAEWmf+_ue_Vii7x_5jMSNn+uUz7Q69JuLUFL-r-rH3pUvasPYQ@mail.gmail.com>
Hi all,

  We would like to present a reconstructor of control flow graphs using
valgrind's infrastructure. The code is based on callgrind and it is
available at https://github.com/rimsa/CFGgrind.

  Our reconstructor profiles the program and adds execution count on every
control flow edges on the CFG. The CFG contains phantom nodes to model
branches not taken during the execution, and a special halt node to model
flows that terminate program execution. We support successive refinements
of the control flow graphs by using the outputs produced in a previous run
into the next.

  We were able to run our reconstructor in the complete cBench and SPEC
CPU2017 suites and we compared against other valgrind tools. For cBench, we
are 9% faster than callgrind and 5.5 times slower than nulgrind. For SPEC
CPU2017, we are 13% faster than callgrind and 4 times slower than nulgrind.

  We hope this tool is of interest of the community. Let us know what you
think, and if further details are required. Feedback is mostly appreciated.

    []z, Andrei

_______________________________________________
Valgrind-developers mailing list
Valgrind-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/valgrind-developers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.