ltrace может сделать именно это.
Если это теперь достаточно мощно, вы можете скомбинировать что-то вместе, таким образом: предполагая, что у вас есть отладочная сборка с доступными символами, вы можете извлечь эти символы и написать скрипт, который вставляет точки останова в gdb на основе этого, запускает его и итеративно извлечь местоположение и продолжить.
Или вы могли бы пойти и использовать ptrace .