Другие иногда имеют только один кадр стека с "??" быть единственным символом!
Для этого может быть много причин, в том числе:
- кадр стека был уничтожен (перезаписан)
- EBP / RBP (на x86 / x64) в настоящее время не имеет никакого значимого значения - это может произойти, например, в единицах, скомпилированных с
-fomit-frame-pointer
или единицах asm, которые это делают
Обратите внимание, что вторая точка может возникнуть просто, например, путем компиляции glibc таким способом. Наличие отладочной информации для таких системных библиотек может смягчить это (что-то вроде того, что пакеты glibc-debug {info, source} находятся в openSUSE).
GDB имеет больший контроль над программой, чем glibc, поэтому вызов backtrace
glibc, естественно, не сможет распечатать обратную трассировку, если GDB не может сделать это тоже.
Но доставка источника будет намного проще: -)