Извлечение системных команд без чтения источников

Иногда мне интересно, как Linux-программы достигают определенных результатов, зная, что они внутренне используют системные вызовы ( system() или exec() в программах на C). Учитывая рабочий двоичный файл, мне интересно, можно ли легко узнать, какие команды выполняются. В конкретном примере я использую gramps инструмент gramps для создания генеалогического древа. Я предполагаю, что он генерирует определенные графики с помощью graphviz (используя инструменты командной строки, а не библиотеки). Теперь я хочу воспроизвести то же самое вручную в командной строке. Эта задача была бы упрощена, если бы я знал команды, используемые gramps . Я мог бы скачать и посмотреть источники, чтобы узнать, но мне интересно, могу ли я легче получить эту информацию с помощью инструментов отладки, таких как strace , что-то вроде strace gramps 2>/dev/stdout | grep system strace gramps 2>/dev/stdout | grep system . Обратите внимание: я не хотел бы искать двоичный файл с помощью шестнадцатеричного редактора, если это не может быть автоматизировано. В этом случае смотреть на источники напрямую должно быть проще.

Linux и Unix - лучшая ОС в мире.