Próbuję wygenerować wykres wywołania, za pomocą którego można znaleźć wszystkie możliwe ścieżki wykonania, które trafiają w konkretną funkcję (tak, że nie muszę wymyślać wszystkich ścieżek ręcznie, jak istnieje wiele ścieżek, które prowadzą do tej funkcji). Na przykład:Generowanie wywoływania wykresu dla kodu C++
path 1: A -> B -> C -> D
path 2: A -> B -> X -> Y -> D
path 3: A -> G -> M -> N -> O -> P -> S -> D
...
path n: ...
Próbowałem Codeviz i Doxygen, jakoś oba wyniki pokazują jedynie callees funkcji docelowej, D. W moim przypadku, D jest funkcja składowa klasy, której obiekt zostanie owinięty w ciągu inteligentny wskaźnik. Klienci zawsze otrzymają obiekt inteligentnego wskaźnika przez fabrykę, aby wywołać D.
Czy ktoś wie, jak to osiągnąć?
Czy zrobić to na multi projektu pliku? wygląda bardzo fajnie jako narzędzie – dirvine
Czy istnieje sposób, aby to zrobić, aby funkcje, które nie są lokalne dla pliku/plików, jak wszystkie funkcje std, które się nawzajem nie wywołują, nie są wywoływane? – soandos
+1 Z jakiegoś powodu musiałem przekazać opcję -n do C++ filt dla nazw, które mają zostać usunięte. Pomyślałem, że wspomnę o tym tutaj na wypadek, gdyby ktoś inny stanął przed tym samym problemem. – Aky