Używam kompilatora gcc(mingw) do kompilacji programów napisanych w C++ oraz gdb jako debuggera.
Chciałbym zrozumieć jak dokładnie działa debugger. Czy każda binarka skompilowana z symbolami dla debuggera może
być zdebugowana przez gdb czy to zależy od kompilatora? Jeżeli mam plik wykonywalny z informacjami dla debuggera to każdy
debugger zrozumie te symbole ? Jest jakiś standard? Próbowałem wziąć binarkę z VS 2010 c++ w trybie debug i przetestować
gdb i on nie przeczytał tych symboli, z tego co wiem w VS opiera się to na plikach .pdb i pewnie debugowac można tylko w ich srodowisku.
- Rejestracja:około 11 lat
- Ostatnio:około miesiąc
- Lokalizacja:Gdańsk
Spróbuj tego:
http://www.ollydbg.de/version2.html

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
jezeli masz symbole gdb to mozesz zdebugowac tylko debugerem ktory wygenerowal ten plik.
- Rejestracja:około 11 lat
- Ostatnio:około miesiąc
- Lokalizacja:Gdańsk
fasadin napisał(a):
jezeli masz symbole gdb to mozesz zdebugowac tylko debugerem ktory wygenerowal ten plik.
Czyli jak kompiluje w trybie do debugowania to już na tym etapie kompilacji debugger jest potrzebny? Wydawało mi się, że jak
kompiluję z symbolami dla debuggera to tym zajmuje się tylko kompilator i taką binarkę każdy debugger zdebuguje później.

- Rejestracja:ponad 11 lat
- Ostatnio:ponad rok
- Postów:607
Jeżeli kompilujesz w trybie debugowania np. gcc z symbloami dla gdb to gcc wie jakie symbole mają być dla gdb i je dodaje. Jeżeli kompilujesz w debugu w VS to kompilator VS wie co potrzebuje debugger i to dodaje. Debugger przy kompilacji jest niepotrzebny.

- Rejestracja:ponad 11 lat
- Ostatnio:ponad rok
- Postów:607

- Rejestracja:ponad 21 lat
- Ostatnio:minuta
Jeżeli mam plik wykonywalny z informacjami dla debuggera to każdy
debugger zrozumie te symbole ? Jest jakiś standard?
Nie ma standardu. GCC dokleja symbole na końcu pliku EXE, przez co plik staje się większy.
Visual C++ generuje osobny plik z rozszerzeniem PDB zawierającym symbole.
Te formaty nie są kompatybilne.
Microsoft wreszcie opublikował specyfikację PDB, więc może GDB kiedyś będzie rozumiał ten format.

- Rejestracja:około 9 lat
- Ostatnio:prawie 2 lata
- Postów:1039
Azarien napisał(a):
Jeżeli mam plik wykonywalny z informacjami dla debuggera to każdy
debugger zrozumie te symbole ? Jest jakiś standard?Nie ma standardu. GCC dokleja symbole na końcu pliku EXE, przez co plik staje się większy.
Visual C++ generuje osobny plik z rozszerzeniem PDB zawierającym symbole.
Te formaty nie są kompatybilne.Microsoft wreszcie opublikował specyfikację PDB, więc może GDB kiedyś będzie rozumiał ten format.
Nie ma standardu zdefiniowanego przez komisje standaryzacyjną C++. Gcc używa DWARF http://dwarfstd.org/ , który jest jak najbardziej standardem
fasadin