【问题标题】:Best way to "mangle" (represent) the memory“破坏”(表示)内存的最佳方式
【发布时间】:2016-09-26 01:18:47
【问题描述】:

我想知道映射/表示内存的最佳方式是什么。我的意思是,例如,如何描述一个所有字段都被序列化的结构。

我正在创建一个 RPC 库,它将使用 dwarf 调试数据创建客户端和服务器,因此我需要创建一个函数包装器来序列化和反序列化函数的参数。

现在,我使用 gcc 修饰类型来识别所有字段,但编译器有时会创建漏洞以优化内存访问时间;

有什么想法吗?

【问题讨论】:

    标签: c++ debugging gcc compilation dwarf


    【解决方案1】:

    我使用“谷物”库进行序列化(http://uscilab.github.io/cereal/

    替代方案包括 Google 的协议缓冲区,尽管我发现它对于我相对简单的序列化任务来说太难集成了。

    对于进程和语言之间的通信,我对 ZeroC 的 ICE 库 (https://zeroc.com/products/ice) 有很好的体验。您将结构指定为类似于 Google 协议缓冲区的外部编译步骤。好的部分是网络连接也得到了照顾。

    【讨论】:

    • 我已经在使用 CBOR 库进行序列化。我只需要代表记忆。指针、char、int、double、float、long 等。我正在使用 gcc 修饰字母...
    • @MarceloAleksandravicius:切线的警告:永远不要尝试破解不受信任的数据。现有的名称修改方案对恶意使用并不稳健,并且现有的实现是可利用的。
    • @MarceloAleksandravicius 您的问题不清楚。您说问题是the compiler sometimes creates holes,可以通过使用序列化库来解决。
    • 你是什么意思?你能举个例子吗?
    • @MarceloAleksandravicius 我认为您描述的整个通信都可以由 ICE 处理。
    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多