Giter Club home page Giter Club logo

Comments (11)

nixel2007 avatar nixel2007 commented on June 4, 2024

Вероятно через variables request

https://microsoft.github.io/debug-adapter-protocol/specification

from bsl-debug-server.

tormozit avatar tormozit commented on June 4, 2024

Как декодировать строки в ответе сервера? Например текст элемента moduleIDStr

   <debugRDBGRequestResponse:result xsi:type="debugDBGUICommands:DBGUIExtCmdInfoCallStackFormed">
        <debugDBGUICommands:cmdIDNum>7</debugDBGUICommands:cmdIDNum>
        <debugDBGUICommands:cmdID>callStackFormed</debugDBGUICommands:cmdID>
        <debugDBGUICommands:targetIDStr>SwqBgYGBgosxlRTJsAf6kGdMkCNo/c08OmWVHAy/iXog5U6wB76Jb4APt4mVyWRG4QabFUKQRj8I6cl91ZoUFMmwB/qQZ0yQI2j9zTw6ZQAAAACVqmlzwp6X5Uufhj4tw48OmZoDS0ExIA==</debugDBGUICommands:targetIDStr>
        <debugDBGUICommands:stopByBP>true</debugDBGUICommands:stopByBP>
        <debugDBGUICommands:callStack>
            <moduleIDStr>QEGBtUr5/AV3A5xEv2RYCtJM1QSVq4fgMpEUtkmrp0NXG0GsK4GVQocHMWHjE0eY/OQvxTGYh4GaFEKHBzFh4xNHmPzkL8UxmIcAAAAAgSA=</moduleIDStr>
            <moduleID>
                <objectID>05fcf94a-0377-449c-bf64-580ad24cd504</objectID>
                <propertyID>32e087ab-1491-49b6-aba7-43571b41ac2b</propertyID>
                <version>4287073161e3134798fce42fc531988700000000</version>
            </moduleID>
            <lineNo>1612</lineNo>
            <presentation>0J7QsdGA0LDQsdC+0YLQutCwLtC40YDQmtC+0L3RgdC+0LvRjNCa0L7QtNCwLtCk
                0L7RgNC80LAu0KTQvtGA0LzQsC7QpNC+0YDQvNCwLtCU0LXRgNC10LLQvtCQ0LvQ
                s9C+0YDQuNGC0LzQvtCy0J/RgNC40JDQutGC0LjQstC40LfQsNGG0LjQuNCh0YLR
                gNC+0LrQuCjQrdC70LXQvNC10L3RgiA9INCi0LDQsdC70LjRh9C90L7QtdCf0L7Q
                u9C1KQ==</presentation>
            <isFantom>false</isFantom>
        </debugDBGUICommands:callStack>

Похоже закодировано в Base64. Но преобразование
а = ПолучитьСтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзBase64Строки(ффф), КодировкаТекста.UTF8);
не дает нужного результата.
Удалось только декодировать таким образом текст элемента presentation.

from bsl-debug-server.

tormozit avatar tormozit commented on June 4, 2024

Посмотрел исходники проекта. Задача решается там методом CalculationResultBaseData evalLocalVariables(). С помощью VSCode не удается быстро проанализировать. Нужно видимо ставить среду разработки для java.

 public CalculationResultBaseData evalLocalVariables(DebugTargetIdLight targetId,
                                                        List<CalculationSourceDataStorage> expressions,
                                                        Integer waitTime) throws HTTPDebugException {
        var params = new RequestParameters()
                .setCommand("evalLocalVariables");

        var request = new RDBGEvalLocalVariablesRequest();
        request.setIdOfDebuggerUI(debugSession);
        request.setInfoBaseAlias(infobaseAlias);
        request.setCalcWaitingTime(waitTime);
        request.setTargetID(targetId);
        request.getExpr().addAll(expressions);

        var response = executeRequest(request, RDBGEvalLocalVariablesResponse.class, params);
        return response.getResult();
    }

from bsl-debug-server.

yukon39 avatar yukon39 commented on June 4, 2024

Содержание и назначение ModuleIDStr пока непонятно - декодированное значение из Base54 нечитаемо. Возможно это именно идентификатор модуля в рантайме.

from bsl-debug-server.

yukon39 avatar yukon39 commented on June 4, 2024

Предоставленный ответ - это ответ на точку останова DBGUIExtCmdInfoCallStackFormed. За ответ именно по переменным, все правильно, отвечает RDBGEvalLocalVariablesResponse. Он должен вернуть список из CalculationResultBaseData

from bsl-debug-server.

yukon39 avatar yukon39 commented on June 4, 2024

Честно говоря, как раз на работе с переменными я пока и остановился.

from bsl-debug-server.

KovAlexey avatar KovAlexey commented on June 4, 2024

@yukon39
Коллеги, как нибудь удалось выяснить, как декодировать moduleIDStr и что там содержится?
Этот топик единственное, что нашел по теме...

from bsl-debug-server.

tormozit avatar tormozit commented on June 4, 2024

Мне не удалось

from bsl-debug-server.

KovAlexey avatar KovAlexey commented on June 4, 2024

Коллеги, как нибудь удалось выяснить, как декодировать moduleIDStr и что там содержится?

В общем, однозначно там идентификатор модуля.
В случае внешней обработки в структуре, которая там находится, есть путь к обработке в виде юникод строки после первых трех байт.
Далее явно идет что-то о модуле формы.
изображение

А вот в случае общих модулей уже непонятно, что там находится. Полагаю, что гуид. Но совершенно не могу понять в каком виде он туда записан.
изображение

Так же можно сказать, что последние 6 байт носят технический характер и всегда есть в том, что получается при декодировании из base64 этих значений.

upd:
Да, это точно идентификатор модуля
изображение
Вот с общим модулем удалось разобрать.

from bsl-debug-server.

KovAlexey avatar KovAlexey commented on June 4, 2024

В общем, ничего полезного там нет.
Все это уже так же есть в XML ниже.
Сверху подписано в том же порядке, что в moduleIDStr после распаковки из Base64

изображение
изображение

А по теме топика. Не знаю, как в конкретно этом bsl и реализовано ли на текущий момент.. У меня то другие цели.
Но имена переменной возвращаются в ответе EvalLocalVariablesResponse в открытом виде.

В общем, извините за оффтопик, но может будет полезно кому
Осталось только разобрать, что возвращает замер производительности..

from bsl-debug-server.

nixel2007 avatar nixel2007 commented on June 4, 2024

Осталось только разобрать, что возвращает замер производительности..

https://github.com/1c-syntax/Coverage41C

Возможно тут есть ответ на ваш вопрос.

from bsl-debug-server.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.