W jaki sposób tworzyłeś pliki symboli do binarek? Przygotowałeś pliki .c ze strukturami i skompilikowałeś do obiektu, czy jest jakiś inny sposób na generowanie takich DWARFów/PDB bez oryginalnej wersji?
Kopiowałem budowę struktur z kodu źródłowego silnika AGS do osobnego pliku C. Potem budowałem to do samego obiektu (plik *.o). Potem w w samym GDB ładowałem to poleceniem add-symbol-file.
Fajna sztuczka. Ciekawe czy zadziałałoby to w C++. Tutaj trzeba by pewnie trafić z flagami kompilatora, żeby layout klas był taki sam.
Nawiasem mówiąc, w C++ kolejność składowych klasy w wygenerowanej binarce jest gwarantowana tylko w obrębie tego samego poziomu dostępu (public/protected/private). Tak więc teoretycznie robiąc strukturę trzeba by deklarować pewnie wszystie pola/metody publiczne. W praktyce wątpię, czy który kolwiek kompilator to przestawia.
W jaki sposób tworzyłeś pliki symboli do binarek? Przygotowałeś pliki .c ze strukturami i skompilikowałeś do obiektu, czy jest jakiś inny sposób na generowanie takich DWARFów/PDB bez oryginalnej wersji?
Kopiowałem budowę struktur z kodu źródłowego silnika AGS do osobnego pliku C. Potem budowałem to do samego obiektu (plik *.o). Potem w w samym GDB ładowałem to poleceniem add-symbol-file.
Fajna sztuczka. Ciekawe czy zadziałałoby to w C++. Tutaj trzeba by pewnie trafić z flagami kompilatora, żeby layout klas był taki sam.
Nawiasem mówiąc, w C++ kolejność składowych klasy w wygenerowanej binarce jest gwarantowana tylko w obrębie tego samego poziomu dostępu (public/protected/private). Tak więc teoretycznie robiąc strukturę trzeba by deklarować pewnie wszystie pola/metody publiczne. W praktyce wątpię, czy który kolwiek kompilator to przestawia.