Обмен опытом по работе с RadASM

Тема в разделе "WASM.ZEN", создана пользователем Oleg_SK, 14 дек 2004.

  1. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    Здорово. Только у меня нет масма - я юзаю фасм, но это не так страшно, как страшно то, что отсутствует необходимая библа RADbg.dll :dntknw:
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Так ты по одному файлу комплектовать будешь? :)))



    Ложи сюда: C:\masm32\RadASM\AddIns\RADbg.dll

    [​IMG] 502354987__RADbg.dll
     
  3. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    Нда. Отладка, конечно, работает, если это можно назвать отладкой.. Или я опять чего-то не понял?



    С Олей этому отладчику тягаться мягко говоря, не удастся. Для этого нужна пошаговая трассировка, вывод дампа памяти, вывод стека ну и т.д.



    А применительно к моей задаче (отладка в РадАсме сишных прог) эта штука тем более не подойдет. :dntknw:
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    n0p



    При компиляции в код добавляется нечто вроде
    Код (Text):
    1. RADbg N NNNN


    где N — какие-то цифры. Что они означают, я не разбирался, но для отладки фасмовых прог достаточно было одного макроса:
    Код (Text):
    1. macro RADbg [vars]
    2.  {
    3.    int3
    4.  }




    Для Сей, думаю, сойдёт следующее:
    Код (Text):
    1. #define RADbg (x) __asm int 3




    Да, насчёт слова RADbg могу и ошибиться, но при компиляции с точками останова фасм подскажет точно.



    P.S. В макрос можно ещё добавить условную компиляцию, чтобы не снимать точки при релиз-сборке.
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Ну конечно, отладчиком это назвать трудно, но иногда и он помогает:)
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Я имею ввиду установку точек останова для внешнего отладчика (OllyDbg, например)
     
  7. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    В общем нашел порт gdb под вин и скачаю его в ближайшие часы. :)
     
  8. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Си макрос аргументы требует в скобках, так что больше вероятность, что подойдёт это:



    #define RADbg __asm int 3 //
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Да, точно. Так цифры останутся в комментарии.
     
  10. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    S_T_A_S_

    Тогда уж

    #define blablbla /

    #define RADbg __asm int 3 /blablabla
     
  11. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Arvensis



    Гм, в самом деле, комменты обрабатываются до директив препроцессора...

    Однако такой вариант тоже не работает, препроцессор рассматривает "/" как отдельные токены :



    __asm int 3 / /



    Впрочем в asm вставках работают ассемблерные коментарии, так что должно работать так:



    #define RADbg __asm int 3;
     
  12. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    Странно, "Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804" слопал и не жаловался. Препроцессор оговаривается стандартом?



    Работает, однако :)
     
  13. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    13.10.3052 тоже хавает :)

    Однако, intel C++ и cpp от MinGW не хотят.



    В ISO/IEC 14882 сказано, что коментарии и директивы обрабатываются на разных фазах трансляции (сначала 1е, потом 2е). Даже у Кернигана и Ритчи так написано (хоть и упрощённо, зато по-русски :)







    Вывод - микрософтовский компилятор глючный :)
     
  14. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    Олей сишный код отлаживать? Кхе-кхе. У меня левела на это не хватит. Особенно отлаживать такой код, как у меня..