Comments (11)
Вероятно через variables request
https://microsoft.github.io/debug-adapter-protocol/specification
from bsl-debug-server.
Как декодировать строки в ответе сервера? Например текст элемента 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.
Посмотрел исходники проекта. Задача решается там методом 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.
Содержание и назначение ModuleIDStr
пока непонятно - декодированное значение из Base54 нечитаемо. Возможно это именно идентификатор модуля в рантайме.
from bsl-debug-server.
Предоставленный ответ - это ответ на точку останова DBGUIExtCmdInfoCallStackFormed
. За ответ именно по переменным, все правильно, отвечает RDBGEvalLocalVariablesResponse
. Он должен вернуть список из CalculationResultBaseData
from bsl-debug-server.
Честно говоря, как раз на работе с переменными я пока и остановился.
from bsl-debug-server.
@yukon39
Коллеги, как нибудь удалось выяснить, как декодировать moduleIDStr и что там содержится?
Этот топик единственное, что нашел по теме...
from bsl-debug-server.
Мне не удалось
from bsl-debug-server.
Коллеги, как нибудь удалось выяснить, как декодировать moduleIDStr и что там содержится?
В общем, однозначно там идентификатор модуля.
В случае внешней обработки в структуре, которая там находится, есть путь к обработке в виде юникод строки после первых трех байт.
Далее явно идет что-то о модуле формы.
А вот в случае общих модулей уже непонятно, что там находится. Полагаю, что гуид. Но совершенно не могу понять в каком виде он туда записан.
Так же можно сказать, что последние 6 байт носят технический характер и всегда есть в том, что получается при декодировании из base64 этих значений.
upd:
Да, это точно идентификатор модуля
Вот с общим модулем удалось разобрать.
from bsl-debug-server.
В общем, ничего полезного там нет.
Все это уже так же есть в XML ниже.
Сверху подписано в том же порядке, что в moduleIDStr после распаковки из Base64
А по теме топика. Не знаю, как в конкретно этом bsl и реализовано ли на текущий момент.. У меня то другие цели.
Но имена переменной возвращаются в ответе EvalLocalVariablesResponse в открытом виде.
В общем, извините за оффтопик, но может будет полезно кому
Осталось только разобрать, что возвращает замер производительности..
from bsl-debug-server.
Осталось только разобрать, что возвращает замер производительности..
https://github.com/1c-syntax/Coverage41C
Возможно тут есть ответ на ваш вопрос.
from bsl-debug-server.
Related Issues (2)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bsl-debug-server.