AV на ровном месте

Тема в разделе "WASM.BEGINNERS", создана пользователем 6opoDuJIo, 15 авг 2010.

  1. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    при вызове mysql_real_query получаю AV на ровном месте :
    Код (Text):
    1. 1000BE40 53               push        ebx  
    2. 1000BE41 8B 5C 24 0C      mov         ebx,dword ptr [esp+0Ch]
    3. 1000BE45 56               push        esi  
    4. 1000BE46 8B 74 24 0C      mov         esi,dword ptr [esp+0Ch]
    5. 1000BE4A 80 BE 58 03 00 00 00 cmp         byte ptr [esi+358h],0
    при этом функции инициализации и подключения libmysql прошли без ошибок,указатели на строки тоже в поряде
     
  2. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    при этом ESI равен нулю*
     
  3. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    А я зарплату получаю на горном месте
     
  4. DoctorWho

    DoctorWho New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2010
    Сообщения:
    87
    ESI равен 0 в начале или на 1000BE4A? Если второе то вы обращаетесь к адресу 358h. Насколько я помню в винде к адресам ниже 1000h обращаться нельзя.
     
  5. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    esi равен 0 на 1000BE4A
    ещё вчера почти идентичный код работал нормально
     
  6. DoctorWho

    DoctorWho New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2010
    Сообщения:
    87
    Код (Text):
    1. 1000BE46 8B 74 24 0C      mov         esi,dword ptr [esp+0Ch]
    Смотрите стек. Возможно вы передаёте не тот параметр функе.
     
  7. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    esi равен нулю и на 1000BE40, то есть уже на вызове
     
  8. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    параметр тот что надо
    ESP равен 1244532
     
  9. DoctorWho

    DoctorWho New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2010
    Сообщения:
    87
    В любом случае в стеке по адресу [esp+0Ch] лежит 0. Может где нибудь стек не выровняли?
     
  10. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    как оказалось,всему виной неверное использование функций Mysql API ^_^
    вместо
    Код (Text):
    1. mysql_real_connect(conn, "localhost", "zetcode", "passwd", NULL, 0, NULL, 0) == NULL)
    я поставил
    Код (Text):
    1. conn=mysql_real_connect(conn, "localhost", "zetcode", "passwd", NULL, 0, NULL, 0) == NULL)
    убрал и всё встало на свои места
    всем спасибо :lol:
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    как и ожидалось.