ошибка доступа к памяти

Тема в разделе "WASM.BEGINNERS", создана пользователем held1r, 30 ноя 2005.

  1. held1r

    held1r New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    29
    Адрес:
    Zaporozhye
    в процессе экпериментов c асмом мои программы часто вылетают с такой ошибкой (то память рид не может быть, то райт)



    вопрос: есть ли способ проверить область памяти на readable/writeable ?



    либо: как сделать обработку ошибок, вроде си-шного try/catch?
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Раз часто вылетают, значит скорее всего это результат твоих собственных ошибок\описок в исходном коде и первым делом нужно искать причину ошибки с помощью отладчика



    Ну а проверить доступ к области памяти можно апишными функциями VirtualQuery, IsBadReadPtr, IsBadWritePtr

    Как сделать обработку ошибок см. в статьях Питрека и Гордона в переводе Oleg_SK

    PS: хотя не знаю какой прок от всего этого если ты, к примеру, просто забыл указать addr в масме или по неосторожности затер какой-то указатель
     
  3. held1r

    held1r New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    29
    Адрес:
    Zaporozhye
    я понимаю, что ошибки мои родимые.



    просто бывают случаи, когда, например, при неудавшемся чтении памяти программа могла бы работать дальше, если бы не вылетала ошибка



    а еще меня убивают блуждающие ошибки, т.е. пока отлаживаю - все работает, работает некоторое время в релизе, а потом вылетает...



    причем вылетает стабильно при ошибке доступа к памяти
     
  4. held1r

    held1r New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    29
    Адрес:
    Zaporozhye
    вот уж действительно, внимательней нужно быть: на свежую голову пересмотрел код - ошибку нашел, теперь непонятно как он вообще работал раньше :)