Кто и чем отлаживает алгоритмы написанные с использованием SSE N?

Тема в разделе "WASM.SOFTWARE", создана пользователем Miller Rabin, 6 дек 2006.

  1. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    Несмотря на то, что задачи связанные с параллельно обработкой чисел с плавающей запятой у меня возникают редко
    (точнее впервые). Хотел спросить кто и чем пользуется для отладки таких алгоритмов.
    Вроде как некоторые SSE команды понимает и Olly хотя (далеко не все) и IDA 5. Но, блин, отображать содержимое XMM регистров их никто не научил.

    Единственный отладчик показывающий xmm регистры,который мне попался это WinDbg.
    Но работая в WinDbg у меня постоянно возникает впечатление, что я тестирую какую-то кривую альфу.
    Самые обычные, казалось бы, действия там нужно делать через задний пайп
    Я так и не нашел простого способа после загрузки кода для отладки, собственно, переместиться на сам отлаживаемый код из ntdll. А чтобы бряк поставить на команде так это вообще проще застрелиться.

    Хотелось бы узнать кто и как решил для себя проблему отладки SSE?
     
  2. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    Ковыряние в настройках OllyDbg показало, что xmm регистры он все таки показывать он умеет.
    в Debugger Options -> Вкладка Registers и там галочка decode SSE registers.
    Только по умолчанию она выключена.
    Конечно проблема с некорректным расползнаванием большого количества SSE команд все равно остается.
    Но отлаживать теперь стало гораздо проще

    Вопрос снят
     
  3. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    ... В продолжении этой темы. XMM регистры Оля показывает, но в ввиде значений типа Float. Это не всегда удобно. А можно как-нибудь поменять на Hex? Искал по настройкам, нашел только то, что при их модификации можно увидеть значение регистра ввиде Hex.
     
  4. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Miller Rabin
    У меня тоже так было после softice и дебагера вижуалки.
    А теперь практически всё в windbg/cdb отлаживаю. Все другие отладчики по возможностям просто тухнут.
    Там просто другая идеология - консольная, привыкнуть надо.
     
  5. kush

    kush New Member

    Публикаций:
    0
    Регистрация:
    24 май 2007
    Сообщения:
    46
    По мойму отладчик VisualC вполне неплохой, и отображает все что надо.
     
  6. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    Что-то windbg меня не впечатлил. Первую остановку делает где-то в системных библиотеках. А как перейти на ЕР? Смотреть в РЕ-редакторе его адрес, а потом туда идти? Неудобно.
    Да и там в нем XMM то же ввиде Float.
    Наверное. Но не все же в СИ работают.
     
  7. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    tar4
    Что за EP? Entry point для экзешника процесса?
    Узнать её можно, например, так:
    1. Узнаёшь адрес ехе-модуля (lm m<имя модуля>)
    2. !dh -f <адрес модуля>. Команда выдаст, среди прочего, Entry Point RVA.

    Если нужно одной командой, можно написать макрос (с использованием внешнего парсера (Perl, for ex.)).
    Или написать своё расширение (extension). :derisive:
     
  8. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    Конечно, так можно. Но в Оле достаточно в опциях выставить "Entry Point of main module" и все ехе-файлы будут после загрузки останавливаться на ЕР.
    Впрочем, вопрос остается: как смотреть регистры XMM ввиде Hex.
     
  9. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    tar4
    Нельзя объять необъятное. Всё-таки WinDbg предназначен для серьёзной работы, и в нём набор команд оптимизирован соответственно. :derisive:
    Впрочем, такой эффект можно устроить с пом. стартового скрипта.
    И вообще, имеется мощная поддержка расширений.
    Как в окне Registers - не знаю...
    А в консоли в любом виде можно.
    Например, как 2 uint64:
    r xmm0:uq

    Как 4 uint:
    r xmm0:ud
     
  10. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    А если мне сразу нужно посмотреть состояние нескольких
    регистров XMM? Их изменение по ходу трассировки кода.
    Согласись, это удобнее делать при их отображении в окне регистров.
    Но, все равно спасибо за внимание.
     
  11. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    .pcmd -s "r xmm0:ud,xmm1:ud,xmm7:ud"
    Согласен, было бы удобнее в окне регистров. Может и есть какой способ...
     
  12. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    Green, если тебе нравятся консольные отладчики, может стоит взглянуть на это:
    hттp://www.cracklab.ru/f/index.php?action=vthread&forum=3&topic=8175&page=1
    Первые впечатления от этого китайского отладчика - очень неплохие. И там вроде есть то, что мне нужно.
     
  13. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Нифига себе консоль:)
     
  14. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    sysser когда-то пробовал. Слишком он глючен тогда оказался. Может теперь поправили...
    IMHO, шансов сделать кернел дебагер лучше микрософта теперь очень мало. На что софтайс был крут, и того пришлось закрыть из-за ядерной политики МС.
    А программерам sysersoft до коллег из numega labs, наверно, ещё расти и расти...