LINUX.ORG.RU

QtCreator. Как дебажить fork()? (тред №2)

 , ,


0

1

Не люблю fork(). Вроде прост как валенок, а вечно что-то сразу не работает.

Как дебажить Си++ программы с форком? Брейкпоинт в зоне ответственности дочернего процесса просто не отрабатывает. Чистым gdb я не пользовался лет 20 и возвращаться к нему не хочу. Можно это как-то провернуть с помощью интерфейса из QtCreator?

Кода там немного, поэтому я смогу его заставить работать путём глубокомысленного созерцания, но всё же…


Ответ на: комментарий от eagleivg

Оно точно работает? Т.е. ты пробовал? Да, такой пункт есть. Да, после его выбора что-то(!) изменилось, но пользоваться в обычном смысле этим нельзя. Нет возможности продолжить выполнение, перескочить на следующую команду, т.п.

Очень странная штука. Может нужно перед дебагом форка совершить какие-то тенцевальные па? Я вон как-то запускал свой древний демон из-под системд (он тогда только-только вышел), так тот наотрез отказывался с моим демоном работать. Оказалось, что ему нужен был двойной форк, потому что там какая-то магия с pid.

Usruser
() автор топика

Как дебажить Си++ программы с форком?

Два дебагера позволяют не то что дочерние, а сервер одновременно с клиентом дебажить :) подключение к процессу так-то в любом дебагере есть, в т.ч. в gdb. Ну и логирование чо происходит в ветках после форка никто не отменял.

Чистым gdb я не пользовался лет 20 и возвращаться к нему не хочу. 

Попробуй... Джва qtcreator'a :)

slackwarrior ★★★★★
()