The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как найти ошибку?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как найти ошибку?"  
Сообщение от Gor email(ok) on 06-Мрт-07, 21:59 
Всем привет!

У меня такой вопрос: Я получил программу, написанную в С и исходники, которая должна работатъ в embedded Linux na embedded Server.
Однако программа имеет ошибку и не работает как надо.

Сейчас пытаюсъ найти ошибку, просматривая программу и исходники, но ошибку найти не могу. (Я совсем не спец. в программировании, - толъко учусь...)

Посоветуйте мне пожалуйста методу, которая мне могла бы помочь.

Немного о программе: тест-программа, посылающая актуальное время на один CAN-bus и принимающая их обратно с другого.(CAN-bus соединены между собой)

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

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как найти ошибку?"  
Сообщение от NuINu (??) on 07-Мрт-07, 10:24 
>Всем привет!
>
>У меня такой вопрос: Я получил программу, написанную в С и исходники,
>которая должна работатъ в embedded Linux na embedded Server.
>Однако программа имеет ошибку и не работает как надо.
>
>Сейчас пытаюсъ найти ошибку, просматривая программу и исходники, но ошибку найти не
>могу. (Я совсем не спец. в программировании, - толъко учусь...)
>
>Посоветуйте мне пожалуйста методу, которая мне могла бы помочь.
Печатай все!!! освой в программировании одну функцию:
printf

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

2. "Как найти ошибку?"  
Сообщение от Gor email(ok) on 13-Мрт-07, 00:00 
>Печатай все!!! освой в программировании одну функцию:
>printf

спасибо большое за совет, я смог точнее определить, где программа "виснет".
Но почему и как это исправить, пока не нашёл...

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

3. "Как найти ошибку?"  
Сообщение от Michelnok (ok) on 13-Мрт-07, 00:35 
>Но почему и как это исправить, пока не нашёл...

Печатай не только место, но и значения переменных, которые могут в этом месте на что-то влиять.

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

4. "Как найти ошибку?"  
Сообщение от Artem_Korneev email on 15-Мрт-07, 03:40 
Что значит виснет? Не отвечает или падает?
Можешь воспользоваться отладкой. Либо напрямую, через gdb, либо через вызов gdb из vim/emacs/kdevelop/ddd/что-то ещё.

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

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

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


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

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

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

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

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

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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