Вот ещё вспомнил: gdb и TRACE - ваши друзья, которые помогут понять, в каком порядке выполняется ваша программа и что в ней выполняется, а что нет. Адреса процедур указаны как раз в логе линкера, и можно с точностью до процедуры по машинному коду ориентироваться. TRACE отличается от gdb тем, что может включаться не сразу, и до настройки его вызовы будут просто проигнорированы и Вам покажется, что код не исполняется. Поэтому одного TRACE недостаточно.