Здравствуйте!
Помогите найти и исправить причину падения.
Падает с Access Violation при попытке сделать boost::bind. Падает очень редко. Может упасть 1-2 раза в день, а иногда работает неделю без падений.
Путем добавления логирования удалось выяснить что передаваемые параметры валидны, при обращении к ним не падает.
В логе при падении выводится следующее:
Start
good1
good2
good3
good4
SEH_exception:
ExceptionCode: 0xc0000005
ExceptionFlags: 0x0
ExceptionInformation[0]: 0x0
ExceptionInformation[1]: 0xffff8012
NumberParameters: 0x2
ExceptionAddress: 0x43e65cc'
Код:
typedef boost::function<bool (long)> callback_foo_type;
bool callback_foo (long p0, a1* a1_, a2* a2_, a3* a3_, a4* a4_)
{
....
}
bool A::foo (a1* a1_, a2* a2_, a3* a3_, a4* a4_)
{
Log("Start");
if (a1_)
Log("good1");
if (a2_)
Log("good2");
if (a3_)
Log("good3");
if (a4_)
Log("good4");
callback_foo_type callFn = boost::bind (&callback_foo, _1, a1_, a2_, a3_, a4_); /*тут падает*/
Log("Finish");
}
05.07.13 13:24: Перенесено модератором из 'C/C++' — Кодт