Отладка приложения

Тема в разделе "WASM.WIN32", создана пользователем skyproc, 16 янв 2010.

  1. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Доброго всем вемени суток

    Есть многопоточное приложение, один тред берёт данные помещает в буфер, редактирует, посылает сообщение второму треду с адресом буфера мол теперь твоя очередь обрабатывать данные, второй тред получив сообщение делает что надо и все счастливы...

    Но иногда происходит следюущая ситуация.
    Ставлю точку останова в первом треде перед посылкой сообщения и смотрю что в буфере, там всё в порядке.
    Сообщение ушло дальше попадаем на точку останова во втором треде после получения сообщения смотрю в буффер первые 8 байт звтерты мусором.

    По сути дела в код забрался Коварный Баг...

    Есть ли такие отладчики чтоб можно было поставить точку останова на даных памяти?
     
  2. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Да и ещё как вожно посмотреть сколько времени занимает выполнение данного API в приложении
     
  3. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    Олли
     
  4. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Опишите буфер, где он что за регион памяти< кто и как в него пишет. Мб ядро пишет, тогда юзермодный хардварный брейк не сработает, или он в разделяемой памяти, да и вобще можно нагодать кучу ситуаций.
     
  5. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Приложение User Mode

    Память выделяется


    push edi
    push GMEM_FIXED or GMEM_ZEROINIT
    call GlobalAlloc


    Ща попробую Олли
     
  6. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    tex32
    Если не сложно расскажи как это делать?
     
  7. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    Окно CPU, зона дампа. Ctrl+G переход в нужное место адреса. Затем Выделяете данные и правой кн. мыши ставите Breakpoint. Есть статьи по Олли на сайте прочтите, там хорошо описано, как лучше сделать.
     
  8. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Спасибо!