Использование gdb для отладки C ++ - PullRequest
0 голосов
/ 23 января 2012

Итак, я пытаюсь следовать этому руководству для отладки своего кода.Я приказываю gdb запустить исполняемый файл, и он запускается, и программа аварийно завершает работу, давая следующее:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
0x00007fff907b06e5 in std::string::_Rep::_M_dispose ()

Но я не вижу никаких полезных at main.cc:28 вещей, о которых говорится в руководстве.

Так что я все равно продолжаю и пытаюсь backtrace, что дает мне следующее:

(gdb) backtrace
#0  0x00007fff907b06e5 in std::string::_Rep::_M_dispose ()
#1  0x00007fff907b12ba in std::string::assign ()
#2  0x00000001000029e4 in Map::insert ()
#3  0x0000000100001ac5 in main ()

Все еще нет удобных номеров строк?Что мне делать?

(Если это имеет значение, я использую Mac OS 10.7 и установил набор инструментов C ++ по умолчанию с XCode)

1 Ответ

2 голосов
/ 23 января 2012

Вам необходимо включить дополнительную отладочную информацию в вашей сборке.В gcc вам нужен переключатель компилятора -g.

...