Отлаживать самого себя можно ли

Тема в разделе "WASM.WIN32", создана пользователем punxer, 9 июн 2010.

  1. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    punxer
    да, но не всё
     
  3. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    запускаешь копию своего процесса и ее отлаживаешь.
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Что понимать под отладкой ?
    Если имеется ввиду подключение отладочного порта к самому себе(имеется ввиду процесс) то нельзя. Во всех остальных случаях проблем нет.
     
  5. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Clerk
    есть :)
    если отлажиать код, который эту отладку и осуществляет.
    если у него есть статический контент, то нужно его сохранять что-бы основная отладка не потёрла данные
    отлаживаемого кода.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    wsd
    Что вы понимаете под отладкой ?
    У меня нет никаких проблем с трассировкой трассировщика и тп.
     
  7. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Clerk
    если код, осуществляющий отладку использует для своей деятельности не только
    локальные данные( стэк) , то отладчик( этот-же) код соответственно на...ёт туда.
    это обходится, если учитывается.
    я в этом и не сомневался.
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    wsd
    Ниже границы стека память не принадлежит потоку. Поэтому если отладчик оформлен в виде VEH это никак не будет мешать потоку.
     
  9. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Clerk
    есть такое понятие - ThreadSeafe, возможно Вы
    это по другому называете.
    это означает, что несколько паралельных
    вызовов данного кода не навредят друг другу.
    это уже детали реализации _ThreadSeafe_ .
    так что отладить отладчик отладчиком можно не всё
    переделать для отладки отладчика можно всё.
    Вы просто не так растолковали вопрос.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    wsd
    Вызовы не параллельные, они последовательные и локальные для потока.
     
  11. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Clerk
    как раз они паралельны :) но не на уровне операционной системы, а на уровне исполняющегося кода и данных.
    псевдо код
    Код (Text):
    1. .data
    2.   crazydata dd 0
    3. ...........
    4. .code
    5. ..................
    6. crazydebug:
    7.   lea eax, crazydata
    8.   mov [eax], START_DEBUG
    9. чему в этой точке будет равна crazydata  после прохода отладчика
    10. .........................
    11.   lea eax, crazydata
    12.   mov [eax], END_DEBUG
    13. endcrazydebug:
    в паралельном программировании внешние данные( не в стеке)
    должны синхронизироваться или быть immutable( не изменяемые).
    и общие внешнии данные не должны использоваться для локальных
    целей какого-то отдельного потока.

    только тогда код называется _ThreadSeafe_.
    если код пользуется совместно, для своих локальных целей,
    глобальными общими данными , то он не может быть _ThreadSeafe_.
    и при попытки его паралельного исполнения он нагадит исполняющимся товарищам :)
    такого кода дочерта, просто нельзя его паралельно выполнять.
    и поэтому
    может закроем тему?
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    wsd
    Чтото я не понимаю. Какое параллельное исполнение имеет отношение к проблеме, которую вы высказали в #7 ?
    Тоесть ставлю я три VEH, представляющие из себя трассировщики, причём в виде цепочки, тоесть каждый хендлер должен знать своё тело, тогда будет возможность последовательно обрабатывать исключения. Пренебрежём деадлоком на кс. Все будут друг друга трассировать. Стек не порушиться.
     
  13. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Clerk
    ну Вы опять не в ту сторону.
    на вопрос
    ответ
    а Вы интерпритировали вопрос примерно так
    надо закрывать тему