Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогите с отладкой  (Прочитано 960 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн K_E_S_T

  • Автор темы
  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Помогите с отладкой
« : 31 Августа 2009, 13:57:54 »
Спаял себе индикатор загрузки ЦП. 7 светодиодов, подключенных к разным линиям LPT порта. Написал "сервис" который управляет самодельным девайсом.
Запускаю с правами рута, всё работает. только через некоторое (рандомное) время вылетает с ошибкой "Floating point exception". Помогите победить этот злой баг. Советы по общей оптимизации кода тоже принимаются :)

(Нажмите, чтобы показать/скрыть)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #1 : 31 Августа 2009, 14:05:03 »
деление на ноль в строчке
cpu =100* (ud + nd + sd)/tot;

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #2 : 31 Августа 2009, 14:08:16 »
проверить перед делением
if(!tot) return 1;

Оффлайн K_E_S_T

  • Автор темы
  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #3 : 31 Августа 2009, 15:04:19 »
спасибо. Даже предположить не мог что распределение процессорного времени может не изменяться. решил проблему проще - немного изменил формулу расчёта:
cpu =100* (ud + nd + sd)/(tot+1);
точность от этого, я думаю, не особо пострадает, а деления на ноль быть не сможет.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #4 : 31 Августа 2009, 15:08:54 »
Теоретически, может.
tot+1=0
tot=-1
 :coolsmiley:

Оффлайн K_E_S_T

  • Автор темы
  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #5 : 31 Августа 2009, 15:22:28 »
тот никогда не будет -1 :)  иначе загрузка была бы отрицательным числом :D

Пользователь решил продолжить мысль 31 Августа 2009, 15:24:37:
хотя теоретически, и вправду может. при использовании функций энергосбережения, например. когда количество тактов не постоянно...
« Последнее редактирование: 31 Августа 2009, 15:24:37 от K_E_S_T »

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #6 : 31 Августа 2009, 20:00:23 »
Сейчас работает? :)

Оффлайн K_E_S_T

  • Автор темы
  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #7 : 31 Августа 2009, 22:09:11 »
прекрасно работает :)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #8 : 01 Сентября 2009, 11:29:31 »
А что за странная конструкция
(Нажмите, чтобы показать/скрыть)
Почему не <sys/io.h> ?
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн K_E_S_T

  • Автор темы
  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: Помогите с отладкой
« Ответ #9 : 01 Сентября 2009, 18:40:52 »
копипаст :)   да и как то спокойней так :))))

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.