Если вы используете gcc, флаг волшебного компилятора будет -g. Скомпилируйте с символами отладки, запустите программу под GDB и сгенерируйте трассировки стека. Вы также можете использовать ptrace, но, вероятно, намного проще просто использовать gdb.
Левая рекурсия:
Expression = Expression '|' Sequence
| Sequence
;
Sequence = Sequence Repetition
| <empty>
;
Правая рекурсия:
Expression = Sequence '|' Expression
| Sequence
;
Sequence = Repetition Sequence
| <empty>
;
Неоднозначная форма:
Expression = Expression '|' Expression
| Sequence
;
Sequence = Sequence Sequence
| Repetition
| <empty>
;
Статья в Википедии о Left Recursion дает довольно хорошую информацию о том, как это осуществить.