Wszystkie debuggery muszą być w stanie dokonać mapowania pomiędzy adresami w programie a numerami linii w kodzie źródłowym. Pozwala to programiście na ustawianie punktów kontrolnych.
Mapowanie takie nie jest trudne do przeprowadzenia poza jednym wyjątkiem. Problemy pojawiają się gdy kompilator stosuje optymalizację (zmianę kolejności w kodzie wynikowym, niezgodną z kodem źródłowym). Rozwiązanie (w formacie DWARF) polega na mapowaniu każdego bajtu z kodu wynikowego na numer linii w kodzie źródłowym, co oczywiście powoduje duże zużycie pamięci. Inne formaty po prostu generują przybliżone numery linii.
Informacje o symbolach i zmiennych
Informacja o symbolach jest przechowywana w postaci drzewa. W korzeniu znajduje się lista typów, zmiennych i funkcji zdefiniowanych na najwyższym poziomie, w poddrzewach są trzymane pola struktur czy też zmienne zdefiniowane w funkcjach.
Kompilatory UNIX-owe posiadają dwa różne formaty wspomagające debuggowanie: stab (symbol table) używany głównie w a.out, COFF i plikach ELF nie związanych z Systemem V, oraz drugi format DWARF, zaprojektowany dla plików ELF Systemu V. Microsoft zdefiniował własny format CV4 (najnowsza wersja) dla swojego debuggera Codeview.