HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > вопрос программистам, кодерам: как вы ищите ошибки?
Страницы (4): « 1 [2] 3 4 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
то этот r1 изредка почти лежит на границе и пересечение не детектируется

Либо где-то стоит ">" вместо ">=", либо снижена точность математики.
Ты во флоатах или в даблах считаешь?
_controlfp юзаешь?
Проблемы только в релизе или в дебаге тоже?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 114620

Старое сообщение 04-02-2013 16:41
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX

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

>_controlfp

что это?

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

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 114622

Старое сообщение 04-02-2013 16:47
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
что это?

Получение (и изменение) контрольного слова сопроцессора. В частности, точность арифметики с плавающей точкой. Проверь, может она у тебя снижена в релизе (компилятор постарался).

__________________

Сообщить модератору | | IP: Записан
Сообщение: 114627

Старое сообщение 04-02-2013 17:14
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



AAARGH!!! опять же! на этот раз искал 16 часов -- причём, такую идиотскую ошибку, что в жизни б на это место не подумал.

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 118417

Старое сообщение 05-04-2013 01:15
- За что?
pRoxxx
Житель форума

Дата регистрации: Jan 2011
Проживает: UA DP
Сообщений: 360
Возраст: 32

Рейтинг



Контрольные значения, брекпоинты. Иногда в Релиз моде выдает ошибку не там где надо, тогда помогает Дебаг Мод, а иногда в Релизе крашится, а Дебаге работает, тогда чуть посложнее. Если проблемы с памятью, могу подключить Visual Leak Detector иль PVS studio.

Сообщить модератору | | IP: Записан
Сообщение: 118424

Старое сообщение 05-04-2013 06:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Как бы микрософт не хаяли но компилер у него явно получшы, чем этот GCC.

Сообщить модератору | | IP: Записан
Сообщение: 118438

Старое сообщение 05-04-2013 15:31
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Дядя Миша
На линупсе гцц - пожалуй, лучшее, что есть для плюсов.
Это когда кучи шаблонов и прочего гамна.
Для обычного си, имхо, особой разницы между конпилерами нет, ну окромя ICL, который сам умеет все известные SSE (но он платный, и разумеется, оптимизирует исключительно под интеловские процы).

Добавлено 05-04-2013 в 22:48:

Я под виндой проекты на С торадиционно конпилю MinGW, а на С++ - десятой студией. Под линупсом только GCC.

Добавлено 05-04-2013 в 22:49:

Кстати, консольный gdb очень понравился. И gprof тоже ничего. Но опять же - только для си-кода (рейтрейсеры там всякие и тому подобное). Навороченные проекты с классами и шаблонами я таки под студией дебажу.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 118443

Старое сообщение 05-04-2013 15:49
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Для Си - да, но там слава богу от компилятора никакого западла ждать не приходится.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 118450

Старое сообщение 05-04-2013 16:54
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг





sqrt( 1./(8.*pi*eCGS**2)*( me*veSQUARE/ne + ma*viSQUARE/ni ) )

сместо ma стояло na. величины отличаются на ~30 порядков, причём результирующий эффект сам себя компенсирует так что заметить его очень трудно. две суток счёта коту под хвост. убейте меня кто ни будь.

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 126896

Старое сообщение 02-11-2013 18:13
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


А вот поэтому и надо давать переменным понятные имена.
Например, m_flFrictionFraction

__________________

Сообщить модератору | | IP: Записан
Сообщение: 126897

Старое сообщение 02-11-2013 18:31
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX и функциям тоже. Например Sys_MonkeyShouldBeSpanked

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 126901

Старое сообщение 02-11-2013 18:54
-
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 1077

Рейтинг



С тех пор как начал мучить язык D, теперь в Си вставляю ассерты и пишу юниттесты, хотя на уровне языка такой поддержки нет.

Насчёт имён - XaeroX дело говорит. Понимаю, что в книжечках по матану алгоритмы наверно так и описаны, но в программировании всё-таки другие правила. И кстати, в книжках по математике из-за таких коротких названий тоже бывают ошибки, а потом сиди думай, то ли ты такой тупой, что не понимаешь, то ли просто опечатка.

Сообщить модератору | | IP: Записан
Сообщение: 126906

Старое сообщение 02-11-2013 19:41
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FreeSlave писал:
С тех пор как начал мучить язык D, теперь в Си вставляю ассерты и пишу юниттесты

Ну ассерты - дело нужное. У меня к примеру какой-то ассерт сработал через полтора года после написания кода.
А вот юнит-тесты занятие прямо скажем бесполезное.
Я еще могу понять, если вы написали фундаментальную функцию, типа strcpy или sincos, которая используется чуть менее чем везде и ошибка в ней способна угробить абсолютно всё. Но во всех остальных случаях оно лишь создаёт ложную иллюзию оттестированости.
Вот китайцы берут мотор от таёты, коробку от хонды, ходовку наверное сами делают по чьей-то лицензии. По отдельности всё классно, а на выходе почему-то GellyMK и прсти гспди GreatWall.
Да и все китайские разработки почему-то устроены из хороших стабильных модулей, которые кое-как вместе склеены.
Это всё очень ненадёжно. Самое надёжное тестирование - на конечных потребителях продукта. Такой подход не означает, что в продукте будут выловлены абсолютно все ошибки. Он всего лишь означает, что с ними не столкнутся конечные потребители - т.к. мы будем вылавливать именно то, на что они жалуются. Метод тоже неидеальный, но хотя бы народ доволен.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 126907

Старое сообщение 02-11-2013 19:54
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Из серии "мыши кололись-давились".
Я тоже южу шестёрку. Потому что быстрая и потому что, бкьждлжд, срамная халва. Но некоторые баги в ней просто ДИКО БЕСЯТ. Например, рандомные ошибки в циклах for, когда новая переменная ВНЕЗАПНО в первой итерации принимает последнее значение.

Вообще против ошибок есть базовые приёмы:
- warning lever: over9000
- нормальные детальные имена переменных
- инициализация дефолтных значений и конструкторов классов
- ассерты (ерунда, но иногда может стать подсказкой)
- try...catch
- DBG_FORCEBREAK

Кстати, Ксайрокс, подскажи:
#ifdef _MSC_VER
#define DBG_FORCEBREAK _asm {int 3};// XDM3035
#else
#define DBG_FORCEBREAK ASSERT(0);// что вот здеся для мингвы и линуксов писать?
#endif
#else // !DEBUG

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 127481

Старое сообщение 12-11-2013 13:57
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
~ X ~ писал:
Потому что быстрая и потому что, бкьждлжд, срамная халва.

Потому что ты лентяй.
Хлфх 0.7 я преспокойно собирал в 2010 студии, и всё шикарно работало. Не надо на халфу гнать.
Цитата:
~ X ~ писал:
// что вот здеся для мингвы и линуксов писать?

Так и быть, поделюсь секретом из волатилы.
C++ Source Code:
1
#if !defined(DEBUG_BREAK)
2
#if defined(_MSC_VER)
3
#if defined(_M_X64)
4
#define DEBUG_BREAK()		__debugbreak()
5
#else
6
#define DEBUG_BREAK()		do { __asm int 3 } while( 0 )
7
#endif
8
#elif defined(__GNUC__)
9
#define DEBUG_BREAK()		__asm( "int $3\n" )
10
#endif
11
#endif

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127482

Старое сообщение 12-11-2013 14:10
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 01:33. Новая тема    Ответить
Страницы (4): « 1 [2] 3 4 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > вопрос программистам, кодерам: как вы ищите ошибки?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024