LINUX.ORG.RU

Как дебужить C-шные (или C++-ные, тут непонятно какая она) программы в Linux ?

 ,


0

1

Здравствуйте, я выполняю действия, описанные в статье
https://habrahabr.ru/sandbox/80147/
однако у меня возникает ошибка во время выполнения.
(что-то там про Unicode Conversion в функции g_utf8_to_utf16 из GLib)

Как мне её продебужить? Хотелось бы из IDE, по шагам, с edit & continue, variable watches и expression evaluator.

UPD: нашел ссылку
https://sourceware.org/gdb/wiki/GDB Front Ends
из комента
Посоветуйте годный Front-End к gdb. (комментарий)

strace и valgrind например

anonymous ()

gdb --args /path/to/binary <args...> и вперёд. Фронтенд по вкусу, я и сам не прочь услышать какие-нибудь рекомендации по этому поводу.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от anonymous

я итак знаю, вызов какой функции приводит к фиаско, и утечек памяти нет. Как эти две утилиты мне помогут?

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

Это база для IDE. Поставь расширение для крестов официальное и будет тебе IDE для крестов с дебаггингом.

Unicode4all ★★★★ ()
Ответ на: комментарий от Unicode4all

а как называется пакет, которым я буду ставить «расширение для крестов официальное» ?

Einstok_Fair ★★ ()

Сам работаю напрямую с gdb, но слышал что Kdevelop, QtCreator и Eclipse умеют визуальную отладку.

slapin ★★★★★ ()
Ответ на: комментарий от slapin

а Gnome Builder не готов? (это я только потому спрашиваю, что ошибка в GLib, наверное он её должен лучше понимать)

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

ну как знаешь, я под линукс в нем отлаживаю.

waker ★★★★★ ()
Ответ на: комментарий от Einstok_Fair

а как называется пакет, которым я буду ставить «расширение для крестов официальное» ?

оу.. хоть бы предупредил что ты неадекват. я бы не тратил время пытаясь помогать. зафрендил.

waker ★★★★★ ()

Внезапно monodevelop

anonymous ()
Ответ на: комментарий от anonymous

при помощи monodevelop не получается, при возникновении ошибки отладчик не останавливается и не показывает всё красиво, а вместо этого программа просто прекращает работать (завершается). Пишет segmentation fault.

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

Хм. Поменял стандартный hello world вот так:

cout << *(int*)0 << endl;

Останавливается на этой строке.

У тебя всё что нужно для дебага стоит? md ни на что не жалуется при запуске?

anonymous ()

Я предпочитаю QtCreator.

Он ещё и в ptrace умеет, так что бы можно было поймать запуск програмки из скрипта со сложным окружением например.

pon4ik ★★★★★ ()
Ответ на: комментарий от Einstok_Fair

Не знаю. Я больше адепт командной строки. IDE редко пользуюсь.

slapin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.