![]() |
Страницы (4): « 1 [2] 3 4 » Показать все 49 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- вопрос программистам, кодерам: как вы ищите ошибки? (https://hlfx.ru/forum/showthread.php?threadid=3676)
__________________
XaeroX
во флоатах. для даблов слишком много памяти надо. а каждый раз туда-сюда преобразовывать как то не хорошо.
>_controlfp
что это?
а в дебаге не проверял. надо будет глянуть. обычно использую дебаг, только что бы совсем уж непонятные сегфолты определять.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
AAARGH!!! опять же! на этот раз искал 16 часов -- причём, такую идиотскую ошибку, что в жизни б на это место не подумал.
__________________
http://www.moddb.com/mods/monorail-quest
Контрольные значения, брекпоинты. Иногда в Релиз моде выдает ошибку не там где надо, тогда помогает Дебаг Мод, а иногда в Релизе крашится, а Дебаге работает, тогда чуть посложнее. Если проблемы с памятью, могу подключить Visual Leak Detector иль PVS studio.
Как бы микрософт не хаяли но компилер у него явно получшы, чем этот GCC.
Дядя Миша
На линупсе гцц - пожалуй, лучшее, что есть для плюсов.
Это когда кучи шаблонов и прочего гамна.
Для обычного си, имхо, особой разницы между конпилерами нет, ну окромя ICL, который сам умеет все известные SSE (но он платный, и разумеется, оптимизирует исключительно под интеловские процы).
Добавлено 05-04-2013 в 22:48:
Я под виндой проекты на С торадиционно конпилю MinGW, а на С++ - десятой студией. Под линупсом только GCC.
Добавлено 05-04-2013 в 22:49:
Кстати, консольный gdb очень понравился. И gprof тоже ничего. Но опять же - только для си-кода (рейтрейсеры там всякие и тому подобное). Навороченные проекты с классами и шаблонами я таки под студией дебажу.
__________________
Для Си - да, но там слава богу от компилятора никакого западла ждать не приходится.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
sqrt( 1./(8.*pi*eCGS**2)*( me*veSQUARE/ne + ma*viSQUARE/ni ) )
сместо ma стояло na. величины отличаются на ~30 порядков, причём результирующий эффект сам себя компенсирует так что заметить его очень трудно. две суток счёта коту под хвост. убейте меня кто ни будь.
__________________
http://www.moddb.com/mods/monorail-quest
А вот поэтому и надо давать переменным понятные имена.
Например, m_flFrictionFraction
__________________
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'
С тех пор как начал мучить язык D, теперь в Си вставляю ассерты и пишу юниттесты, хотя на уровне языка такой поддержки нет.
Насчёт имён - XaeroX дело говорит. Понимаю, что в книжечках по матану алгоритмы наверно так и описаны, но в программировании всё-таки другие правила. И кстати, в книжках по математике из-за таких коротких названий тоже бывают ошибки, а потом сиди думай, то ли ты такой тупой, что не понимаешь, то ли просто опечатка.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Из серии "мыши кололись-давились".
Я тоже южу шестёрку. Потому что быстрая и потому что, бкьждлжд, срамная халва. Но некоторые баги в ней просто ДИКО БЕСЯТ. Например, рандомные ошибки в циклах 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]
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 |
__________________
Временная зона GMT. Текущее время 11:10. | Страницы (4): « 1 [2] 3 4 » Показать все 49 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024