发现新兴科技,缔造未来版图!EmTech China 2020全面开启-1

 

随着科技的进步,特别是在信息技术迅速发展的加持下,世界各地逐渐实现互联互通,不断推动着全球化的发展。在这一过程中,全球化是一把双刃剑,在带来前所未有好处的同时,也产生了许多问题。于是,“逆全球化”的声音也甚嚣尘上。

 

新冠肺炎疫情的暴发造成了全球供应链的中断,无疑成为了“逆全球化”浪潮的又一个推动力。美国政府的对外政策也开始转向单边主义。美国表示可以通过回流支出费用化的形式,鼓励美国企业回迁,并力图通过行政手段切断中美两国的科技交流。

 

在越演愈烈的中美贸易摩擦中,美国采取各种强硬手段打压中国的高成长性企业。这一举动引起了美国精英阶层及在华深度运营的科技公司的警惕。

 

面对充满不确定性的全球局势,“中美脱钩”的逆全球化是否是最终的结局?这个问题的答案不言而喻,无论是经济的发展还是科技的创新都离不开国际化的交流。1978 年,麻省理工学院地球物理学家、美国科学顾问弗兰克·普莱斯率领庞大的美国科技代表团访华,开启了中美两国广泛的科技合作关系。自此,中国学子进入美国高校学习、美国科技公司的产品入华销售成为可能。

 

 

 

以新冠肺炎疫苗研发为例。中国当前正努力就灭活疫苗、重组蛋白疫苗等 5 条技术路线,在全球范围内与相关国家展开合作;古巴加入了俄罗斯新冠疫苗的生产行列;中国企业康泰生物获得了制药巨头阿斯利康的授权,推进后者与牛津大学研发的腺病毒载体新冠疫苗 AZD1222 在中国内地的临床开发、生产与商业化;复星医药正在与德国生物技术公司 BioNTech 合作研发新冠 mRNA 疫苗。

 

风物长宜放眼量。越在大环境捉摸不透的时候,越要保持清醒的思考。站在 2020 年这个特殊的时期,面对疫情的冲击,哪些产业将产生重大的变革?全球科技合作如何维系?科技如何帮助我们应对全球性的公共卫生与经济危机?全球供应链如何恢复?对此,我们需要一次全新的梳理。

 

作为全球顶级科技商业杂志《麻省理工科技评论》的著名会议品牌,EmTech 是全球新兴科技领域最具影响力的大规模会议之一。EmTech 全称是 Emerging Technologies,原意为“新兴科技”,从 1999 年至今的超过 20 年间,EmTech 一直延续着引领全球技术向前的强大创新基因,从实验室到产业,在智慧碰撞的对话与演讲中梳理那些最可能改变世界的新兴科技。

 

自 2018 年 1 月首次落地中国以来,EmTech China 全球新兴科技峰会已在中国成功举办三届。我们邀请到了近两百位代表前沿科技的全球标杆性人物参与到这一盛会,回顾往届,我们或是探讨了量子计算、机器学习、区块链等前沿技术的发展路径,或是解读了人工智能、金融科技、数字化转型背后的商业价值,我们始终期待在技术和商业的结合中挖掘出更具意义的思考。

 

2020 年 11 月 19 - 20 日,第四届 EmTech China 全球新兴科技峰会将在苏州中惠铂尔曼酒店开启,我们将继续以技术与商业的结合为主线,寻找专家学者、科创精英对上述问题的合理答案,重塑全球合作背景下的新兴科技魅力。

 

在本次峰会上,我们将围绕“创新引领未来”、“人工智能‘新基建’”、“未来基石” 、“互联世界”、“生物医药的无限可能”以及“技术驱动下的医疗生态” 6 大主题展开,紧扣科技发展脉搏,正面应对全球挑战,通过重磅嘉宾的分享,为大家带来最前沿的解读。

 

截至目前,7 位国际顶级科技大脑确认加入我们。现在,借助对已确认演讲嘉宾核心信息的公布这一机会,我们向所有人发出这封邀请函,邀请您进入我们的世界,与全球最强的科技大脑思想碰撞。

 

生物医学领域的传奇人物

 

 

根据约翰斯·霍普金斯大学的实时统计数据,截至北京时间10月16日,全球累计确诊新冠肺炎病已超过3880万,累计死亡病例超109万例。不断增加的确诊及死亡病例数据告诉我们疫情并没有消退的迹象,而控制其发展的重要手段之一就是安全有效的疫苗。在一批与时间赛跑进行疫苗研发的药企中,mRNA 巨头 Moderna 无疑是率先跑出来的一匹“黑马”:不仅是全球最先启动新冠疫苗临床试验的企业之一,其 mRNA-1273 也成为了目前已进入 3 期临床试验的候选疫苗。

 

如果你对 Moderna 有一个简单的了解,就会发现,这家公司大神云集,除干细胞生物学家 Derrick Rossi、Flagship Pioneering 首席执行官 Noubar Afeyan、诺贝尔生理与医学奖得主 Timothy Springer 以及哈佛干细胞研究所首席教授 Kenneth Chien 等外,还有一位就是来自麻省理工学院的 Robert S. Langer 教授。 Langer 教授是全球组织工程领域的第一人,他拥有企业家、科学家、发明家等多重身份,共计发表论文逾 1500 篇,全球范围内已发布和正在申请的专利数量达 1400 余个,所获荣誉奖项方面更是多达 220 余项,包括伊丽莎白女王工程奖以及被成为“科技界诺贝尔奖”的千禧技术奖等。除此以外,他还是全球最大生物医学工程实验室的掌舵人。

 

现在,这位建树颇丰的教授即将登上 EmTech China 2020 的舞台,向我们讲述他用于临床应用的生物材料方面的创新与研究进展。

 

光遗传学先驱者

 

 

 

众所周知,人的大脑由近千亿不同类型的神经元构成,要想更深入地了解大脑的活动,就要突破其巨大的复杂性,但由于缺乏有效的研究手段,现在我们对大脑功能的理解依然有限。光遗传学的诞生,让大脑研究又向前推进了一步:不仅促进了我们对大脑功能的理解,帮助我们了解特定神经元与行为的关系,还在神经类疾病的治疗上,展现了巨大的潜力。

 

Edward Boyden 教授就是推动这项技术发展的先驱之一。同时,利用这项技术,他在治疗眼疾方面做出了杰出贡献。Boyden 教授在麻省理工学院主导着合成神经生物学课题组,并发明了一系列用于研究及治疗大脑等复杂生物系统的工具,如扩展显微镜(expansion microscopy,通过让被观察的物体膨胀,生物学家甚至可以用普通显微镜看到分子级别的脑部细节)、光遗传工具(通过光激活或抑制特定神经元活动)以及光控纳米脑机接口等。

 

现在,这位 19 岁获得麻省理工学院三个学位、26 岁就参与开创了光遗传学时代,拥有“开挂”人生的科学家将登上 EmTech China 2020 的舞台,如果想更多地了解大脑的秘密,让我们一起在这里听他娓娓道来。

 

脑机接口奠基人

马斯克 Neuralink 联创的“技术导师”

 

科幻电影中的赛博格(Cyborg)技术不断刷新着我们对“半机械人”的认知,从上世纪七八十年代的《攻壳机动队》、《银翼杀手》到后来的《阿凡达》、《明日边缘》等,各种超越思维的想象,让人机联动成为了可能。而在现代,面对人工智能的来势汹汹,很多人开始担心未来世界会不会变成由机器人主宰。“钢铁侠”马斯克就是其中之一,他曾表示:“未来人类需要与机器合体成赛博格,才能避免被人工智能淘汰”。为此,这位成功的企业家召集了数位在神经科学、工程学等领域各有所长的科学家,成立了 Neuralink,试图通过脑机接口技术来避免人工智能的威胁。

 

值得一提的是,Neuralink 有一位联合创始人 Max Hodak,他本科四年在杜克大学 Miguel Nicolelis 教授的实验室担任助理研究员,参与了恒河猴的脑机接口的研究。Miguel Nicolelis 教授是谁?他是著名的脑机接口科学家:2000 年,其团队成功让一只猴子学会了通过大脑的脑机接口去控制一只虚拟手臂;2013 年,和巴西科学家首次实现了两只老鼠之间的脑机接口交流;2014 年,成功让一位高位截瘫的男孩用自己的大脑控制机械外肢为巴西世界杯完成了开球。

 

这一系列看起来不可思议的举动,都成为了现实。那么,现在脑机接口技术究竟发展到了什么阶段?未来又将如何造福全世界数以亿计的行动困难的人?脑机接口技术先驱 Miguel Nicolelis 教授将以线上方式,在 EmTech China 2020 的现场,为我们带来答案。

 

用 AI “反哺”芯片设计

 

 

得益于计算机系统和硬件设备的显著进步,人工智能实现了快速发展。反过来,这又导致世界需要新的硬件架构来满足指数级增长的算力需求。但到目前为止,很多人工智能应用所使用的芯片都不是专门为其生产的,而更多的是由之前用于视频和游戏的硬件改装而来。因此,这些来自人类工程师之手的传统芯片在耗能、成本和实用性上都有很多地方需要改进。

 

为了解决这一问题,谷歌做了一个大胆的决定:让人工智能进行 AI 芯片设计。2020 年 4 月,相关论文在 ArXiv 上公布,一时引起了热烈讨论。而 Azalia Mirhoseini,就是这篇论文的作者。据悉,Mirhoseini 的系统通过反复试验和自主训练,并基于人工智能强化学习算法,可以在几个小时内创作出一张芯片设计图(世界上最顶尖的专家也得花几周的时间),并且这种方法创造出来的芯片速度更快、更节能且成本更低。

 

Mirhoseini 于 2016 年加入谷歌大脑,目前担任高级研究科学家。她拥有莱斯大学电子和计算机工程博士学位,曾获多个奖项,如《麻省理工科技评论》全球“35 岁以下科技创新 35 人”、莱斯大学最佳博士论文奖等。

 

与特斯拉创始元老一起“破解”硅密码

获戴姆勒亿级投资

 

 

 

“充电两小时,通话五分钟”大概是困扰所有电子产品使用者的头号问题,也是很多厂商急切希望解决的问题。硅谷有一家公司,正在研发用于电池电芯的硅基结构,旨在通过将锂储存在硅结构中而不是石墨中,来提升电池的储能和充电速度,这家公司就是 Sila Nanotechnologies。

 

要知道在锂电池中,将锂离子从阴极运输到阳极需要六个碳原子(石墨的构成元素)来储存一个锂离子,但是如果使用硅材料,一个硅原子可以带四个锂离子,就相当于将效率提高 24 倍。Yushin 教授作为材料科学方面的专家,作为首席技术官和联合创始人在 Sila Nanotechnologies 主持攻克技术相关的难题,从而让实验室中的新兴科技走向市场。

 

联合奥斯卡奖得主,创造真实世界的“阿凡达”

 

 

 

在惊叹于阿凡达、金刚这些荧幕形象的时候,你有没有好奇过这些形象是如何制作出来的?有没有想过如果 Siri、小爱同学、Alexa 不再只是语音助手,而变成有情感的虚拟形象,体验又会是怎样的?

 

这两部电影的技术负责人曾两次获得奥斯卡科学技术奖(Sci-Tech Awards)并创立了专注于开发具有智能和情感反应的头像模拟技术的 Soul Machines。这家公司不仅获得了李嘉诚旗下维港投资 A 轮投资支持,也已经服务于戴姆勒金融、苏格兰皇家银行等客户。

 

想象一下,在不久的未来,虚拟助手将可以化身成你最爱的明星,听懂你说的话,读懂你的表情,并充满情感地回应你。现在,Soul Machines 联合创始人 Greg Cross 先生将在 11 月的 EmTech China 全球新兴科技峰会上揭开“灵魂机器”的面纱。

 

武田制药创新数字策略指挥官

 

在武田制药公司,其研发部门正在不断寻求新的科学突破:通过与学术机构、小型生物技术公司与大型药厂等之间的合作,培育创新系统,开发新的健康解决方案。而 Jordan Brayanov 就是这些流程中的“指挥大脑”。

 

Jordan Brayanov 于 2019 年 2 月加入武田制药,在此之前曾在 Respiratory Motion 公司任研究副总裁,该公司是每分呼吸量监测方面的全球领导者。Jordan Brayanov 在生物工程和计算机科学方面拥有十余年的经验,其研究侧重于设计和构建面向患者的生物仪器和测量设备,并进行数据建模实现可视化。他博士毕业于哈佛大学,并拥有麻省理工学院机械工程和电气工程及计算机科学的双学士学位,以及机械工程的硕士学位。

 




科技创新公司作为技术与市场链接的最关键一环,本次峰会中也少不了“聪明公司”的身影。

自 2010 年至今,《麻省理工科技评论》每年都会从全球范围内评选出 “50 家聪明公司”榜单(TR50),以此来作为科技创新的代表。值得注意的是,这些“聪明公司” 并非都是行业巨头,榜单评选的核心依据也并非是一家公司短期的营收数字,而是其基于新兴科技的创造能力。
2019 年 6 月,以“中国支点”为评选原则的“50 家聪明公司 2019 年榜单” 第一次在中国揭晓,包括华为、台积电、阿里云等 50 家获奖公司相关负责人悉数到场,近 800 名观众现场见证了该榜单的发布,在学术界及产业界引起了巨大的反响。
图 | “50 家聪明公司” 2019 年上榜企业(来源:《麻省理工科技评论》中国)
在本次 EmTech China 2020 全球新兴科技峰会上,《麻省理工科技评论》中国将再次发布“50 家聪明公司 2020 年榜单”(TR50 2020)!面对中国科技创业力量的崛起,本届榜单将选出在过去的一年中,做出了将会重新定义其所在领域的重大创新的企业,这些全球聪明企业样本的技术商业化路径将会为我们研判科技创新趋势提供有力的支撑。
图 | “50 家聪明公司” 2019 榜单发布现场(来源:《麻省理工科技评论》中国)
预测未来最好的方式,就是去创造未来。中国正在崛起的技术实力将是决定未来全球经济和技术发展方向的一支重要力量,我们非常有幸能参与到对一个前景无限的未来的构建过程中。
目前,EmTech China 2020 的嘉宾邀请还在紧锣密鼓地进行,我们也将会陆续放出后续的确认嘉宾。
此外,来自中国及全球有潜力改变世界的科研机构、政府、国际组织、企业、金融机构高层与科技工作者们也将共同参与到峰会的讨论当中。
关于 EmTech China 2020 全球新兴科技峰会的更多信息,敬请期待。
点击“阅读原文”,注册 EmTech China 2020。
-End-

 

道翰天琼CiGril机器人API

道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:

  1. 在平台注册账号
  2. 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
  3. 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。

开始接入

请求地址:http://www.weilaitec.com/cigirlrobot.cgr

请求方式:post

请求参数:

参数

类型

默认值

描述

userid  

String  

平台注册账号

appid  

String  

平台创建的应用id

key  

String  

平台应用生成的秘钥

msg  

String  

""

用户端消息内容

 

接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552

注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。

示例代码JAVA:


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class apitest {

    /**
     * Get请求,获得返回数据
     * @param urlStr
     * @return
     */
    private static String opUrl(String urlStr)
    {        
        URL url = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try
        {
            url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(5 * 10000);
            conn.setConnectTimeout(5 * 10000);
            conn.setRequestMethod("POST");
            if (conn.getResponseCode() == 200)
            {
                is = conn.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1)
                {
                    baos.write(buf, 0, len);
                }
                baos.flush();
                String result = baos.toString();
                return result;
            } else
            {
                throw new Exception("服务器连接错误!");
            }

        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (is != null)
                    is.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }

            try
            {
                if (baos != null)
                    baos.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
            conn.disconnect();
        }
        return "";
    }
    
    
    public static void main(String args []){        
            //msg参数就是传输过去的对话内容。            
            System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
            
    }
}

 

Table of Contents Summary of gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Free Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Free Software Needs Free Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Contributors to gdb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 A Sample gdb Session . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Getting In and Out of gdb . . . . . . . . . . . . . . . . . . . 11 2.1 Invoking gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Choosing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Choosing Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 What gdb Does During Startup . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Quitting gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Shell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Logging Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 11 12 13 15 16 16 17 gdb Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1 Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Command Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4 Running Programs Under gdb . . . . . . . . . . . . . . . 25 4.1 Compiling for Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Starting your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Your Program’s Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Your Program’s Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Your Program’s Working Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Your Program’s Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Debugging an Already-running Process . . . . . . . . . . . . . . . . . . . . . . . . 4.8 Killing the Child Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Debugging Multiple Inferiors and Programs. . . . . . . . . . . . . . . . . . . . 4.10 Debugging Programs with Multiple Threads . . . . . . . . . . . . . . . . . . 4.11 Debugging Forks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.12 Setting a Bookmark to Return to Later. . . . . . . . . . . . . . . . . . . . . . . 4.12.1 A Non-obvious Benefit of Using Checkpoints . . . . . . . . . . . . . 25 25 28 29 30 30 31 32 32 35 38 40 41 ii 5 Debugging with gdb Stopping and Continuing . . . . . . . . . . . . . . . . . . . . . 43 5.1 Breakpoints, Watchpoints, and Catchpoints . . . . . . . . . . . . . . . . . . . 5.1.1 Setting Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Setting Watchpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Setting Catchpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.4 Deleting Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Disabling Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.6 Break Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.7 Breakpoint Command Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.8 “Cannot insert breakpoints” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.9 “Breakpoint address adjusted...”. . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Continuing and Stepping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Stopping and Starting Multi-thread Programs . . . . . . . . . . . . . . . . . 5.4.1 All-Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.2 Non-Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.3 Background Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.4 Thread-Specific Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.5 Interrupted System Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 49 51 55 55 56 58 59 59 60 63 65 65 67 68 69 69 6 Running programs backward . . . . . . . . . . . . . . . . . 71 7 Recording Inferior’s Execution and Replaying It . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 8 Examining the Stack . . . . . . . . . . . . . . . . . . . . . . . . . . 77 8.1 8.2 8.3 8.4 9 Stack Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backtraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selecting a Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Information About a Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 78 80 81 Examining Source Files . . . . . . . . . . . . . . . . . . . . . . . 83 9.1 Printing Source Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Specifying a Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Editing Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.1 Choosing your Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4 Searching Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5 Specifying Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6 Source and Machine Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 84 85 85 86 86 89 iii 10 Examining Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.1 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.2 Ambiguous Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 10.3 Program Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 10.4 Artificial Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 10.5 Output Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 10.6 Examining Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 10.7 Automatic Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 10.8 Print Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 10.9 Value History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 10.10 Convenience Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 10.11 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 10.12 Floating Point Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.13 Vector Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.14 Operating System Auxiliary Information . . . . . . . . . . . . . . . . . . . 112 10.15 Memory Region Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 10.15.1 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.15.1.1 Memory Access Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.15.1.2 Memory Access Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.15.1.3 Data Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.15.2 Memory Access Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.16 Copy Between Memory and a File . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.17 How to Produce a Core File from Your Program . . . . . . . . . . . 116 10.18 Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 10.19 Caching Data of Remote Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.20 Search Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 11 Debugging Optimized Code . . . . . . . . . . . . . . . . 123 11.1 Inline Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 12 C Preprocessor Macros . . . . . . . . . . . . . . . . . . . . . 125 13 Tracepoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 13.1 Commands to Set Tracepoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.1 Create and Delete Tracepoints . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.2 Enable and Disable Tracepoints . . . . . . . . . . . . . . . . . . . . . . . . 13.1.3 Tracepoint Passcounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.4 Tracepoint Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.5 Trace State Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.6 Tracepoint Action Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.7 Listing Tracepoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1.8 Starting and Stopping Trace Experiments . . . . . . . . . . . . . . 13.2 Using the Collected Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.1 tfind n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.2 tdump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.3 save-tracepoints filename . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Convenience Variables for Tracepoints . . . . . . . . . . . . . . . . . . . . . . . 13.4 Using Trace Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 130 131 131 131 132 132 134 134 136 136 138 138 139 139 iv Debugging with gdb 14 Debugging Programs That Use Overlays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 14.1 14.2 14.3 14.4 15 How Overlays Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overlay Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatic Overlay Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overlay Sample Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 142 144 145 Using gdb with Different Languages . . . . . . 147 15.1 Switching Between Source Languages . . . . . . . . . . . . . . . . . . . . . . . 15.1.1 List of Filename Extensions and Languages . . . . . . . . . . . . . 15.1.2 Setting the Working Language . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.3 Having gdb Infer the Source Language . . . . . . . . . . . . . . . . . 15.2 Displaying the Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3 Type and Range Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3.1 An Overview of Type Checking . . . . . . . . . . . . . . . . . . . . . . . . 15.3.2 An Overview of Range Checking . . . . . . . . . . . . . . . . . . . . . . . 15.4 Supported Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1 C and C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.1 C and C++ Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.2 C and C++ Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.3 C++ Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.4 C and C++ Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.5 C and C++ Type and Range Checks . . . . . . . . . . . . . . . 15.4.1.6 gdb and C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.7 gdb Features for C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1.8 Decimal Floating Point format . . . . . . . . . . . . . . . . . . . . 15.4.2 Objective-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.2.1 Method Names in Commands . . . . . . . . . . . . . . . . . . . . . 15.4.2.2 The Print Command With Objective-C . . . . . . . . . . . . 15.4.3 Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.3.1 Fortran Operators and Expressions . . . . . . . . . . . . . . . . 15.4.3.2 Fortran Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.3.3 Special Fortran Commands . . . . . . . . . . . . . . . . . . . . . . . . 15.4.4 Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5 Modula-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5.1 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5.2 Built-in Functions and Procedures . . . . . . . . . . . . . . . . . 15.4.5.3 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5.4 Modula-2 Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5.5 Modula-2 Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5.6 Deviations from Standard Modula-2 . . . . . . . . . . . . . . . 15.4.5.7 Modula-2 Type and Range Checks. . . . . . . . . . . . . . . . . 15.4.5.8 The Scope Operators :: and . . . . . . . . . . . . . . . . . . . . . 15.4.5.9 gdb and Modula-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.6 Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.6.2 Omissions from Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.6.3 Additions to Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 147 148 148 148 149 149 150 151 151 152 153 154 155 155 155 156 157 157 157 158 158 158 159 159 159 159 159 161 162 162 164 164 164 165 165 165 165 166 167 v 15.4.6.4 Stopping at the Very Beginning . . . . . . . . . . . . . . . . . . . 15.4.6.5 Extensions for Ada Tasks . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.6.6 Tasking Support when Debugging Core Files . . . . . . 15.4.6.7 Known Peculiarities of Ada Mode . . . . . . . . . . . . . . . . . 15.5 Unsupported Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 169 172 172 173 16 Examining the Symbol Table . . . . . . . . . . . . . . 175 17 Altering Execution. . . . . . . . . . . . . . . . . . . . . . . . . . 181 17.1 17.2 17.3 17.4 17.5 17.6 18 Commands to Specify Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Debugging Information in Separate Files . . . . . . . . . . . . . . . . . . . . Errors Reading Symbol Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GDB Data Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 193 197 198 Specifying a Debugging Target . . . . . . . . . . . . 199 19.1 19.2 19.3 20 181 182 183 183 184 185 gdb Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 18.1 18.2 18.3 18.4 19 Assignment to Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Continuing at a Different Address . . . . . . . . . . . . . . . . . . . . . . . . . . . Giving your Program a Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Returning from a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calling Program Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Patching Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Active Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Commands for Managing Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Choosing Target Byte Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Debugging Remote Programs . . . . . . . . . . . . . . 203 20.1 Connecting to a Remote Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.2 Sending files to a remote system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3 Using the gdbserver Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3.1 Running gdbserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3.1.1 Attaching to a Running Program . . . . . . . . . . . . . . . . . . 20.3.1.2 Multi-Process Mode for gdbserver . . . . . . . . . . . . . . . . 20.3.1.3 Other Command-Line Arguments for gdbserver . . . 20.3.2 Connecting to gdbserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3.3 Monitor Commands for gdbserver . . . . . . . . . . . . . . . . . . . . . 20.4 Remote Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5 Implementing a Remote Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.5.1 What the Stub Can Do for You . . . . . . . . . . . . . . . . . . . . . . . . 20.5.2 What You Must Do for the Stub . . . . . . . . . . . . . . . . . . . . . . . 20.5.3 Putting it All Together. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 205 205 205 206 206 207 207 207 208 212 213 214 215 vi Debugging with gdb 21 Configuration-Specific Information . . . . . . . . 217 21.1 Native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.1 HP-UX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.2 BSD libkvm Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.3 SVR4 Process Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.4 Features for Debugging djgpp Programs . . . . . . . . . . . . . . . 21.1.5 Features for Debugging MS Windows PE Executables . . 21.1.5.1 Support for DLLs without Debugging Symbols. . . . . 21.1.5.2 DLL Name Prefixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.5.3 Working with Minimal Symbols . . . . . . . . . . . . . . . . . . . 21.1.6 Commands Specific to gnu Hurd Systems . . . . . . . . . . . . . . 21.1.7 QNX Neutrino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.8 Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Embedded Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1 Using gdb with VxWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1.1 Connecting to VxWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1.2 VxWorks Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1.3 Running Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Embedded Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.1 ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.2 Renesas M32R/D and M32R/SDI . . . . . . . . . . . . . . . . . . . . . . 21.3.3 M68k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.4 MicroBlaze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.5 MIPS Embedded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.6 OpenRISC 1000. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.7 PowerPC Embedded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.8 HP PA Embedded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.9 Tsqware Sparclet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.9.1 Setting File to Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.9.2 Connecting to Sparclet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.9.3 Sparclet Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.9.4 Running and Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.10 Fujitsu Sparclite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.11 Zilog Z8000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.12 Atmel AVR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.13 CRIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.14 Renesas Super-H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.1 x86 Architecture-specific Issues . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.2 A29K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.3 Alpha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.4 MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.5 HPPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.6 Cell Broadband Engine SPU architecture . . . . . . . . . . . . . . . 21.4.7 PowerPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 217 217 217 219 221 222 223 223 224 226 226 227 227 228 228 229 229 229 231 232 232 232 235 236 237 237 238 238 238 238 239 239 239 239 240 240 240 241 241 241 243 243 244 vii 22 Controlling gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23 Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Screen Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring the Current ABI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optional Warnings and Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . Optional Messages about Internal Happenings . . . . . . . . . . . . . . . Other Miscellaneous Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 245 245 247 248 248 249 251 253 Extending gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 23.1 Canned Sequences of Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.1.1 User-defined Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.1.2 User-defined Command Hooks. . . . . . . . . . . . . . . . . . . . . . . . . . 23.1.3 Command Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.1.4 Commands for Controlled Output . . . . . . . . . . . . . . . . . . . . . . 23.2 Scripting gdb using Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.1 Python Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2 Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.1 Basic Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.2 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.3 Auto-loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.4 Values From Inferior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.5 Types In Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.6 Pretty Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.7 Selecting Pretty-Printers . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.8 Commands In Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.9 Writing new convenience functions . . . . . . . . . . . . . . . . 23.2.2.10 Objfiles In Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2.2.11 Acessing inferior stack frames from Python. . . . . . . 23.2.2.12 Python representation of lazy strings. . . . . . . . . . . . . 255 255 257 258 259 261 261 262 262 263 263 264 266 269 271 272 275 276 276 277 24 Command Interpreters . . . . . . . . . . . . . . . . . . . . . 279 25 gdb Text User Interface . . . . . . . . . . . . . . . . . . . . 281 25.1 25.2 25.3 25.4 25.5 26 TUI Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TUI Key Bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TUI Single Key Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TUI-specific Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TUI Configuration Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 282 283 283 285 Using gdb under gnu Emacs . . . . . . . . . . . . . . . 287 viii Debugging with gdb 27 The gdb/mi Interface . . . . . . . . . . . . . . . . . . . . . . . 289 Function and Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notation and Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.3 gdb/mi General Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.3.1 Context management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.3.2 Asynchronous command execution and non-stop mode . . 27.3.3 Thread groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.4 gdb/mi Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.4.1 gdb/mi Input Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.4.2 gdb/mi Output Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.5 gdb/mi Compatibility with CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.6 gdb/mi Development and Front Ends . . . . . . . . . . . . . . . . . . . . . . . 27.7 gdb/mi Output Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.7.1 gdb/mi Result Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.7.2 gdb/mi Stream Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.7.3 gdb/mi Async Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.7.4 gdb/mi Frame Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.7.5 gdb/mi Thread Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.8 Simple Examples of gdb/mi Interaction . . . . . . . . . . . . . . . . . . . . . 27.9 gdb/mi Command Description Format . . . . . . . . . . . . . . . . . . . . . . 27.10 gdb/mi Breakpoint Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.11 gdb/mi Program Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.12 gdb/mi Thread Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.13 gdb/mi Program Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.14 gdb/mi Stack Manipulation Commands . . . . . . . . . . . . . . . . . . . . 27.15 gdb/mi Variable Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.16 gdb/mi Data Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.17 gdb/mi Tracepoint Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.18 gdb/mi Symbol Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . 27.19 gdb/mi File Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.20 gdb/mi Target Manipulation Commands. . . . . . . . . . . . . . . . . . . 27.21 gdb/mi File Transfer Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 27.22 Miscellaneous gdb/mi Commands . . . . . . . . . . . . . . . . . . . . . . . . . 28 gdb Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 28.1 28.2 28.3 28.4 28.5 28.6 28.7 29 289 289 289 290 291 291 292 292 293 294 294 295 295 295 296 298 298 298 299 300 308 311 312 319 324 334 340 341 341 343 346 347 What is an Annotation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Server Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annotation for gdb Input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Invalidation Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 356 356 357 357 357 358 JIT Compilation Interface . . . . . . . . . . . . . . . . . 359 29.1 29.2 29.3 JIT Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Registering Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 Unregistering Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 ix 30 Reporting Bugs in gdb . . . . . . . . . . . . . . . . . . . . . 361 30.1 30.2 31 Have You Found a Bug? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 How to Report Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Command Line Editing. . . . . . . . . . . . . . . . . . . . . 365 31.1 Introduction to Line Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Readline Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.1 Readline Bare Essentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.2 Readline Movement Commands . . . . . . . . . . . . . . . . . . . . . . . . 31.2.3 Readline Killing Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.4 Readline Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.5 Searching for Commands in the History . . . . . . . . . . . . . . . . 31.3 Readline Init File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.1 Readline Init File Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.2 Conditional Init Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.3 Sample Init File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Bindable Readline Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.1 Commands For Moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.2 Commands For Manipulating The History . . . . . . . . . . . . . . 31.4.3 Commands For Changing Text . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.4 Killing And Yanking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.5 Specifying Numeric Arguments . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.6 Letting Readline Type For You. . . . . . . . . . . . . . . . . . . . . . . . . 31.4.7 Keyboard Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.8 Some Miscellaneous Commands . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Readline vi Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 365 365 365 366 366 367 367 368 368 373 374 377 377 377 379 380 381 381 381 382 383 Using History Interactively . . . . . . . . . . . . . . . . 385 32.1 History Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.1 Event Designators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.2 Word Designators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.3 Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 385 385 386 Appendix A Formatting Documentation . . . . . 389 Appendix B Installing gdb . . . . . . . . . . . . . . . . . . . . 391 B.1 B.2 B.3 B.4 B.5 B.6 Requirements for Building gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Invoking the gdb ‘configure’ Script . . . . . . . . . . . . . . . . . . . . . . . . Compiling gdb in Another Directory . . . . . . . . . . . . . . . . . . . . . . . . Specifying Names for Hosts and Targets . . . . . . . . . . . . . . . . . . . . . ‘configure’ Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . System-wide configuration and settings . . . . . . . . . . . . . . . . . . . . . . Appendix C 391 392 393 394 395 395 Maintenance Commands. . . . . . . . 397 x Debugging with gdb Appendix D gdb Remote Serial Protocol . . . . 403 D.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2 Standard Replies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.3 Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.4 Stop Reply Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.5 General Query Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.6 Architecture-Specific Protocol Details . . . . . . . . . . . . . . . . . . . . . . . . D.6.1 ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.6.1.1 Breakpoint Kinds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.6.2 MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.6.2.1 Register Packet Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.6.2.2 Breakpoint Kinds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.7 Tracepoint Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.8 Host I/O Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.9 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.10 Notification Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.11 Remote Protocol Support for Non-Stop Mode . . . . . . . . . . . . . . . D.12 Packet Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.13 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14 File-I/O Remote Protocol Extension . . . . . . . . . . . . . . . . . . . . . . . . D.14.1 File-I/O Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.2 Protocol Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.3 The F Request Packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.4 The F Reply Packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.5 The ‘Ctrl-C’ Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.6 Console I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.7 List of Supported Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lseek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stat/fstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gettimeofday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isatty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.8 Protocol-specific Representation of Datatypes . . . . . . . . . . Integral Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pointer Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Memory Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . struct stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . struct timeval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.9 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Open Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mode t Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errno Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 404 405 413 415 428 428 428 428 428 428 429 432 433 434 434 436 436 437 437 437 438 438 439 439 439 440 441 441 441 442 442 443 443 444 444 445 445 445 445 446 446 447 447 447 447 447 xi Lseek Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.14.10 File-I/O Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.15 Library List Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.16 Memory Map Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.17 Thread List Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 448 448 449 450 451 Appendix E The GDB Agent Expression Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 E.1 E.2 E.3 E.4 E.5 General Bytecode Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bytecode Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Agent Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Varying Target Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 455 459 460 460 Appendix F Trace File Format . . . . . . . . . . . . . . . 465 Appendix G Target Descriptions . . . . . . . . . . . . . 467 G.1 Retrieving Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2 Target Description Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.1 Inclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.3 OS ABI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.4 Compatible Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.5 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.6 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2.7 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.3 Predefined Target Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4 Standard Target Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4.1 ARM Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4.2 i386 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4.3 MIPS Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4.4 M68K Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4.5 PowerPC Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 468 468 468 469 469 469 469 470 471 471 472 472 473 473 473 Appendix H Operating System Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 H.1 Process list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 Appendix I GNU GENERAL PUBLIC LICENSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 Appendix J GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 J.1 ADDENDUM: How to use this License for your documents . . . 495 xii Debugging
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值