|
включает в себя Разработка игр (+4) Инструменты разработки С++ |
Тестирование и отладка
Допустим, вы работаете над программой на С++, которую по мере разработки тестирует другой человек или группа людей.
Допустим, ваша программа с завидной регулярностью валится.
Допустим, это сопровождается не сообщением
«Уважаемый тестер! Программа свалилась по причине того, что разработчик в файле MyFile.cpp, строке 12 написал new char[ strlen( str + 1 ) ] вместо new char[ strlen( str ) + 1 ]. Подскажите разработчику, чтобы он больше так не делал»а
(0x80000003) occurred in the application at location 0x0041d12b.
Что делать.
Значит, Во-вторых:
В общем, библиотеку нужно подключить, а затем сделать
void DumpIt( HANDLE hFile, PEXCEPTION_POINTERS excpInfo) MINIDUMP_EXCEPTION_INFORMATION eInfo; MiniDumpWriteDump( //... hDump_File = CreateFile("crash.dmp", GENERIC_WRITE, NULL, CREATE_ALWAYS, __try __except(DumpIt(hDump_File, GetExceptionInformation()), 0) {} CloseHandle(hDump_File);#include <dbghelp.h>
{
MessageBox( NULL, "An exception!", "OMG NO", MB_OK | MB_ICONSTOP );
eInfo.ThreadId = GetCurrentThreadId();
eInfo.ExceptionPointers = excpInfo;
eInfo.ClientPointers = FALSE;
GetCurrentProcess(),
GetCurrentProcessId(),
hFile,
MiniDumpNormal,
excpInfo ? &eInfo : NULL,
NULL,
NULL);
}
FILE_ATTRIBUTE_NORMAL, NULL);
{
// Сюда вписать опасный код. В моем случае - всё приложение.
}
Удачи в отладке.
Update: А, ну гениально. Самое главное забыл сказать. Вышеприведенный код в случае «падения» запишет в файл hDump_File некоторую информацию, с помощью которой можно более или менее точно восстановить обстоятельства крушения. Этот файл можно открыть студией (Open Project/Solution), нажать F5 и оказаться в условиях, близких к тем, которые привели к катастрофе. Желательно, чтобы файл имел расширение .dmp, это облегчит студии понимание, что ей пытаются всучить.
Ссылка по теме: Статья на английском с примерами. Кроме самой функции MiniDumpWriteDump в статье (и примерах) много лишней ерунды, зато примеры компилируются и работают. Sapienti sat, всё такое.
Web-интерфейсы
Человек, который набирает в Semagic пост о повсеместном применении в ближайшем светлом будущем
Особенно продвинутые визионеры объединяют в одном видении светлого будущего два, в
Можно предположить, что такая горячая поддержка
Еще раз: На сегодняшний день, при существующем уровне развития технологий,
Извините, что пишу очевидные вещи.
Архитекторы
И, что самое замечательное, помидоры в меня не полетят, так как на этом сайте 50 постоянных читателей, ни один из которых не является системным архитектором в маленькой вебстудии. Замечательно, не так ли?
Женщина, которая сделала sigslot
Если вам по
HGE
Не без мелких ляпов, конечно, но куда же без них.
HGE, кстати говоря, стал совсем бесплатным. Одно из лучших (если не лучшее) решений для быстрого прототипирования и разработки shareware игр. Скажем спасибо дяде Haafу за наше счастливое детство.
Смотри также:
How to Prototype a Game in Under 7 Days
ООП
За два года я убедился, что спорить с людьми о подобных вещах только портить себе же нервы. Всегда находятся профессионалы и знатоки, у которых в запасе есть много слов, начинающихся с мета- и английских аббревиатур на случай, если покажется мало. Для вдумчивой аргументации, надо полагать.
В
Так чего спорить? Let em be. Тем более, что мудаков, получающих удовольствие от разжигания межконцептуальной розни и так хватает.
Dixi.
Lua 5.1 + Direct3D
При создании устройства необходимо обязательно поднимать флаг D3DCREATE_FPU_PRESERVE. Иначе всему пиздец. Только что с этим столкнулся.
A warning for users of DirectX/Direct3D: You MUST set the( источник )
D3DCREATE_FPU_PRESERVE flag upon initialization when you
use Lua in the same thread. Otherwise youll encounter
strange behaviour -- complain to Microsoft, not to us.