Получение имен сборок с помощью API профилирования DotnetLinux

Ответить Пред. темаСлед. тема
Anonymous
 Получение имен сборок с помощью API профилирования Dotnet

Сообщение Anonymous »

Я использую API профилирования .NET для инструментирования своего приложения .NETCore, работающего в Linux. Мне нужно найти все сборки, загруженные в мое приложение.
Я включил флаг COR_PRF_MONITOR_ASSEMBLY_LOADS, чтобы получать уведомления при загрузке сборок в среду Common Language Runtime.
Ниже приведен мой код для получения имени сборки. Он работает так, как ожидалось, на машине с Windows. Но когда я запускаю то же самое в среде Linux, он не дает правильного имени сборки. В Linux я получаю имя сборки примерно такое: «Sse.igotc.rcn.Lgigule����»
В результате поиска я обнаружил, что это может быть проблема с кодировкой символов. Я даже установил кодировку std::setlocale(LC_ALL, ""); в своем коде. Но все равно не повезло.

Код: Выделить всё

bool CAssemblyManager::Initialize(AssemblyID assemblyId)
{
ULONG nameLength = 0;
_corProfilerInfo2->GetAssemblyInfo(assemblyId, 0, &nameLength, 0, 0, 0);
wchar_t* nameBuffer = new wchar_t[nameLength];
_corProfilerInfo2->GetAssemblyInfo(assemblyId, nameLength, 0, nameBuffer, 0, 0);
delete[] nameBuffer;
return true;
}
Я также пытался преобразовать строку wchar_t* в строку std::string, закодированную в UTF-8, с помощью std::wstring_convert. Но это тоже не работает

Код: Выделить всё

    std::wstring_convert converter;
converter.to_bytes(nameBuffer);
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78816930/get-assembly-names-using-dotnet-profiling-api[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»