Ошибка при исполнении - причины неизвестны

Тема в разделе "WASM.WIN32", создана пользователем 6opoDuJIo, 20 июл 2009.

  1. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    код функции
    на указанном мной шаге функция вылетает с ошибкой, почему - неизвестно
    компиляция проходит нормально
    Код (Text):
    1. GetDirName proc dataconnection:DWORD,dirname:DWORD,number:DWORD
    2.         mov eax,dataconnection
    3.         push (DataConnectionStruc ptr [eax]).ReciveDataBuffer
    4.         pop bufferdata
    5.         mov step,0
    6.         mov crlfpos,0
    7.         mov beginline,0
    8.         mov eax,number
    9.         mov numberbuf,eax
    10.         mov summ,0
    11.         xor eax,eax
    12.         push bufferdata
    13.         pop eax
    14.         mov eax,[eax];при попытке переместить eax в buffer101 вылет с ошибкой
    15.         mov buffer101,eax
    16.         mov [buffer101+1],NULL
    17.         mov [buffer101+2],NULL
    18.         invoke MessageBox,NULL,NULL,NULL,NULL
    19. findCRLF: .if buffer101==0Dh
    20.         mov eax,bufferdata
    21.         add eax,crlfpos
    22.         add eax,1
    23.         mov eax,[eax]
    24.         mov buffer101,eax
    25.         mov [buffer101+1],NULL
    26.         mov [buffer101+2],NULL
    27.         invoke MessageBox,NULL,NULL,NULL,NULL
    28.           .if buffer101==0Ah
    29.           dec number
    30.           mov eax,numberbuf - 1
    31.           .if number==eax
    32.           mov eax,number
    33.           mov beginline,eax
    34.           .endif
    35.           .if number==0
    36.           jmp readdata
    37.          .endif
    38.          .endif
    39.          .endif
    40.          inc crlfpos
    41.          invoke MessageBox,NULL,NULL,NULL,NULL
    42.          jmp findCRLF
    43.          
    44. readdata:mov eax,bufferdata
    45.          add eax,55
    46.          add eax,step
    47.          add eax,beginline
    48.          mov eax,[eax]
    49.          mov buffer100,eax
    50.          mov [buffer100+1],NULL
    51.          mov [buffer100+2],NULL
    52.          mov eax,buffer100
    53.          mov [dirname+step],eax
    54.          mov summ,0
    55.          mov eax,bufferdata
    56.          mov summ,eax
    57.          add summ,56
    58.          mov eax,step
    59.          add summ,eax
    60.          mov eax,beginline
    61.          add step,eax
    62.          mov eax,step
    63.          .if eax==crlfpos
    64.          jmp skips
    65.          .endif
    66.          inc step
    67.          jmp readdata
    68. skips:
    69.        
    70.         ret
    71. GetDirName endp
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Отладчики запрещены?
     
  3. 6opoDuJIo

    6opoDuJIo New Member

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

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Проверять что данные пришли неплохо было бы
     
  5. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    я без отладчика работаю
     
  6. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    данные приходят, это я уже проверил
     
  7. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Я в том смысле, что неплохо бы под отладчиком прогнать код, прежде чем постить его в WIN32
     
  8. 6opoDuJIo

    6opoDuJIo New Member

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

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Mission impossible. Заиметь.
     
  10. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Ну ReciveDataBuffer не валиден, а вобще поставь отладчик.
     
  11. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Это какая-то новая секта противников отладчиков.
     
  12. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Partner
    +1
    :)))))))
    Надо при регистрации на васме ввести вопрос: "есть ли у Вас отладчик?". Если человек отвечает "нет", тогда банить его по ip :)
     
  13. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    6opoDuJIo
    > вылетает с ошибкой
    Какая ошибка?

    > на указанном мной шаге функция вылетает
    Как ты определил, что именно в этой строке произошла ошибка?

    > при попытке переместить eax в buffer101 вылет
    Покажи, как описана buffer101. Если она в секции данных, то захвати описание ее соседей и имя секции.
     
  14. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    я просто поставил вызов messagebox'a после каждой операции до условного оператора
     
  15. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    ой.не до условоного оператора, а до операций с eax И после переноса eax в buffer101
    buffer101 dd ?
     
  16. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    6opoDuJIo
    не насилуй себе мозг и остальным - открой отладчик и глянь, что лежит в регистре
    меня просто убивают те люди, которые кодят на асме и боятся глянуть в отладчик, предпочитая метод научного тыка
     
  17. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    при чом тут содержимое регистра когда вылет происходит на попытке внести в него значение!
     
  18. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    а вообще, ошибка такая -
    Access violation, Read adress = 2d777264
     
  19. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Пост 10, еще раз написать?
     
  20. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    я уже функцию переписал, всёравно
    а былбы ReciveDataBuffer невалиден,отладчик выдал бы Access violation, Read adress = 0