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

Discussion in 'WASM.BEGINNERS' started by 6opoDuJIo, Aug 15, 2010.

  1. 6opoDuJIo

    6opoDuJIo New Member

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    при вызове mysql_real_query получаю AV на ровном месте :
    Code (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

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    при этом ESI равен нулю*
     
  3. JCronuz

    JCronuz New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2007
    Messages:
    1,240
    Location:
    Russia
    А я зарплату получаю на горном месте
     
  4. DoctorWho

    DoctorWho New Member

    Blog Posts:
    0
    Joined:
    Jul 16, 2010
    Messages:
    87
    ESI равен 0 в начале или на 1000BE4A? Если второе то вы обращаетесь к адресу 358h. Насколько я помню в винде к адресам ниже 1000h обращаться нельзя.
     
  5. 6opoDuJIo

    6opoDuJIo New Member

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    esi равен 0 на 1000BE4A
    ещё вчера почти идентичный код работал нормально
     
  6. DoctorWho

    DoctorWho New Member

    Blog Posts:
    0
    Joined:
    Jul 16, 2010
    Messages:
    87
    Code (Text):
    1. 1000BE46 8B 74 24 0C      mov         esi,dword ptr [esp+0Ch]
    Смотрите стек. Возможно вы передаёте не тот параметр функе.
     
  7. 6opoDuJIo

    6opoDuJIo New Member

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    esi равен нулю и на 1000BE40, то есть уже на вызове
     
  8. 6opoDuJIo

    6opoDuJIo New Member

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    параметр тот что надо
    ESP равен 1244532
     
  9. DoctorWho

    DoctorWho New Member

    Blog Posts:
    0
    Joined:
    Jul 16, 2010
    Messages:
    87
    В любом случае в стеке по адресу [esp+0Ch] лежит 0. Может где нибудь стек не выровняли?
     
  10. 6opoDuJIo

    6opoDuJIo New Member

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    как оказалось,всему виной неверное использование функций Mysql API ^_^
    вместо
    Code (Text):
    1. mysql_real_connect(conn, "localhost", "zetcode", "passwd", NULL, 0, NULL, 0) == NULL)
    я поставил
    Code (Text):
    1. conn=mysql_real_connect(conn, "localhost", "zetcode", "passwd", NULL, 0, NULL, 0) == NULL)
    убрал и всё встало на свои места
    всем спасибо :lol:
     
  11. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    как и ожидалось.