LINUX.ORG.RU

Как просто у добно отладить программу, созданную не мной?

 ,


0

1

Есть одна программа, написанная не мною, выдающая ошибку про какой-то там MIT-MAGIC-COOKIE, и после этого вылетающая с сегфолтом. Знаю, что можно запустить gdb имяпрограммы, перед этим настроив всякие там символы и все такое, но gdb это ужасная непонятная консольная штука. Неужели нет чего попроще и попонятнее?

gdb тебе тут особо не поможет, разве что тебе хватит адреса посыпавшейся подпрограммы в памяти.

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

И что мне с этим делать? Я уже почитал всякие советы типа удалить .Xauthority из домашней папки - да у меня ничего такого нет, и все остальные программы отлично работают.

hlebushek ★★
() автор топика

Короче, так как это программа, собирающаяся через qmake, я ее открыл в кьют криэйторе, и там дебаг работает прямо из коробки - показывает хороший стек трейс, и можно даже наводить курсор на переменные и смотреть их значения. Так вот, в моей этой программе проблема в том, что вызывается

XOpenDisplay(":0.0");

а оно не удается и возвращает указатель, равный нулю, а другие функции пытаются с ним что-то делать и вылетают с SIGSEGV. Кстати, у меня например мой единственный дисплей имеет номер :1, как выдает echo $DISPLAY. Видимо, автор - мудак, что захардкодил :0.0 там, и поэтому у меня программа не работает.

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

Там изменю и пересоберу.

Попробуй XOpenDisplay(NULL);, говорят тогда будет брать display name из DISPLAY, т.е. — правильный.

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

Уже так изменил и даже сделал пулл реквест автору.

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

Видимо, автор - мудак, что захардкодил :0.0 там, и поэтому у меня программа не работает.

И не только поэтому, а ещё и потому, что не проверяет результат вызова функции.

Pythagoras ★★
()

про какой-то там MIT-MAGIC-COOKIE

Ох лол, когда уже люди прекратят велосипедить под голые иксы, и использовать нормальные графические библиотеки? Вот ещё не одного «чисто иксового» проекта не видел, который вменяемо построен был бы.

gdb это ужасная непонятная консольная штука. Неужели нет чего попроще и попонятнее?

Есть всякие фронтенды к gdb, древнющий ddd, например.

cherry-pick
()

Как просто у добно отладить программу, созданную не мной?

заплатить тому кто её создал чтоб он её и правил.

Deleted
()
Ответ на: комментарий от cherry-pick

Есть всякие фронтенды к gdb, древнющий ddd, например.

На мой взгляд ddd настолько же ужасен, как и gdb, или может даже еще хуже.

hlebushek ★★
() автор топика
Ответ на: комментарий от cherry-pick

Есть всякие фронтенды к gdb, древнющий ddd, например.

ddd ещё более ужасен чем сам gdb, хоть и не консольный. Да и через гуёвыны нельзя заюзать все полезные фичи в gdb.

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