The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Как найти ошибку?"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Как найти ошибку?" +/
Сообщение от Goremail (ok), 15-Мрт-07, 23:09 
>Что значит виснет? Не отвечает или падает?
>Можешь воспользоваться отладкой. Либо напрямую, через gdb, либо через вызов gdb из
>vim/emacs/kdevelop/ddd/что-то ещё.
>
>А общий метод тебе подсказали -- локализуй место, в котором происходит зависание
>и выводи значения всех переменных, которые могут вызвать проблемы.


Программа запускалась, бус А начинал отсылать телеграммы, в момент когда я включал бус Б на получение телеграмм, происходило терминирование программмы с сигналом на выход не помню сейчас что именно killed.

Дебаггивание осложнялось тем, что на embedded Linux практически ничего нет. Я нашел программу правда, которую можно на нём запустить и параллельно с Ноутбука с помошью gdb дебаггить.

Параллельно я кажется нашёл проблему. В программе были использованы threads, которые должны были параллельно работать. В этом случае нужно, как я понял из одной книги, использовать mutex или semafor.

После этого я сделал из этой программы две без сложных для меня пока наворотов с вариациями threads,- одна запускающая один бус на отсылку, другая другой бус на приём. Так для меня даже лучше, так как в конечном итоге программы должны были работать на двух разных машинах.
И всё заработало! Сейчас надо ещё детали доделать, но в принципе программы работают!

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Как найти ошибку?, Gor, 06-Мрт-07, 21:59  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру