Редкие падение на boost::bind
От: rusla Россия  
Дата: 04.07.13 13:09
Оценка: 1 (1)
Здравствуйте!
Помогите найти и исправить причину падения.
Падает с 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++' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.