c++ - 使用 microsoft 的 krabsetw 实用程序解析 ETW 中的结构化类型
问题描述
因此,我一直在研究微软krabsetw
关于如何处理和解析 ETW 事件的示例。他们的示例展示了关于顶级字段的简单用法,但是当涉及数组和复杂结构时会发生什么?
简单用法:multiple_providers_001.cpp:
krabs::parser parser(schema);
auto url = parser.parse<std::string>(L"URL");
auto request_headers = parser.parse<std::string>(L"RequestHeaders");
auto response_headers = parser.parse<std::string>(L"ResponseHeaders");
std::cout << "\tURL: " << url << std::endl;
std::cout << "\t\tRequest Headers: " << request_headers << std::endl;
std::cout << "\t\tResponse Headers: " << response_headers << std::endl;
接口减速:
template <typename T>
bool try_parse(const std::wstring &name, T &out);
/**
* <summary>
* Attempts to parse the given property by name and type. If the
* property does not exist, an exception is thrown.
* </summary>
*/
template <typename T>
T parse(const std::wstring &name);
template <typename Adapter>
auto view_of(const std::wstring &name, Adapter &adapter) -> collection_view<typename Adapter::const_iterator>;
总而言之,在我被要求提供以下值的情况下:A\B\C\Struct\Array
这种操作甚至可以用他们的 API 进行吗?还是我应该将所有内容都转换为 JSON 和朋友并从那里提取它?
解决方案
推荐阅读
- pointers - trie中每个节点26个指针?
- python - 如何从当前时间减去 60 秒并以“时:分:秒”格式显示?
- arrays - 如何将不同的数据类型分配给二维 vba 数组
- python - 在python中解包元素
- javascript - 何时在 Javascript 的方法中使用“返回”
- dart - List 中连续数字的平均长度
- javascript - 使用 Enzyme 测试 React 拖放
- c# - 由于错误而无法构建 Angular 项目:错误输出为:不推荐使用选项“vendorSourceMap”
- python - 使用 pytorch 无法正确保存的最佳训练模型
- html - 如何在垂直文本之外添加行?