Ich habe oft die folgende Warnung von gdb gefunden:
warning: .dynamic section for XXX is not at the
expected address
wobei XXX der Name einer Bibliothek ist. Zuletzt habe ich es für libgobject-2.0.so bekommen. Meine App verwendet GTK. gdb hatte es bis gestern ohne Probleme gestartet, als ich den neuesten Code aus dem Repository synchronisierte und neu erstellte. Seitdem hat es sich über einen .dynamischen Abschnitt beschwert. Was sind die möglichen Gründe dafür? Und wie löse ich sie?
Einige gdb-Versionen sind mit dieser Warnung etwas hilfreicher. Sie geben etwas wie folgt aus:
Warnung: .dynamic Abschnitt für "libhello.so" ist nicht an der erwarteten Adresse (falsche Bibliothek oder Versionskonflikt?)
Stellen Sie sicher, dass GDB die Bibliothek findet, mit der Ihr Programm tatsächlich kompiliert wurde, und dass alle Debugsymbole in separaten Dateien für die Anwendung und die Bibliothek aktuell und konsistent mit den von Ihnen verwendeten Builds sind.
Ein Upgrade klingt wie ein guter Verdächtiger für eine Sache. Das Vorsehen von Bibliotheken führt möglicherweise auch dazu, dass diese Warnung angezeigt wird, obwohl ich denke, dass gdb mit diesem Fall umgehen kann.