作家
登录

开发一个Linux调试器(九):处理变量

作者: 来源: 2017-10-09 12:13:05 阅读 我要评论

case expr_result::type::reg: 
  •                 { 
  •                     auto value = get_register_value_from_dwarf_register(m_pid, result.value); 
  •                     std::cout << at_name(die) << " (reg " << result.value << ") = " 
  •                               << value << std::endl; 
  •                     break; 
  •                 } 
  •                 default
  •                     throw std::runtime_error{"Unhandled variable location"}; 
  •                 } 
  • 你可以看到,我根据变量的类型,打印输出了值而没有解释。欲望经由过程这个代码,你可以看到若何支撑编写变量,或者用给定的名字搜刮变量。

    在开端之前,请确保你应用的 libelfin 版本是我分支上的 fbreg。这包含了一些 hack 来支撑获取当前客栈帧的基址并评估地位列表,这些都不是由原生的 libelfin 供给的。你可能须要给 GCC 传递 -gdwarf-2 参数使其生成兼容的 DWARF 信息。然则在实现之前,我将具体解释 DWARF 5 最新规范中的地位编码方法。如不雅你想要懂得更多信息,那么你可以大年夜这里获取该标准。

    1. else if(is_prefix(command, "variables")) { 
    2.     read_variables(); 

    测试一下

    编写一些具有一些变量的小功能,不消优化并带有调试信息编译它,然后查看是否可以攫取变量的值。测验测验写入存储变量的内存地址,并查看法度榜样改变的行动。

    已经有九篇文┞仿了,还剩最后一篇!下一次我会评论辩论一些你可能会感兴趣的更高等的概念。如今你可以在这里找到这个帖子的代码。

    【编辑推荐】

    1. 做一个月薪3万的Linux云计算工程师的纠结与迷茫
    2. 大年夜零起步到Linux运维经理,你必须管好的23个细节
    3. SQL Server正式涌如今Linux平台上
    4. 大年夜苦逼到牛逼,详解Linux运维工程师的打怪进级之路
    5. 用Linux、Python和树莓派酿制啤酒
    【义务编辑:庞桂玉 TEL:(010)68476606】

      推荐阅读

      可能是国内最火的开源项目 —— HTML/CSS 篇

    截止今朝开源中国收录了 44513 款开源项目,囊括了最热点的各类开源项目,而软件的评分在必定程度上代表了软件的质量和热度,而重要用 HTML/CSS 编写的项目中也有很多值得救鉴的处所,是以>>>详细阅读


    本文标题:开发一个Linux调试器(九):处理变量

    地址:http://www.17bianji.com/lsqh/37722.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)