T20调试札记

最近在调试T20的内存,使用的指令在此记录一下

1. pmap指令查看指定进程中的内存分布。该指令需要在busybox中开启

pmap -x 111

2.应用与so需要执行strip操作,可以减小存储空间的大小

mips-linux-gnu-strip libsysutils.so

3.nm指令和file指令可以查看应用和so是否为strip的

nm libzbar.so.0.2.0

nm: libzbar.so.0.2.0: no symbols


file libzbar.so.0.2.0

libzbar.so.0.2.0: ELF 32-bit LSB  shared object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, stripped


4.mips-linux-gnu-readelf可以查看so的编译依赖的库文件

mips-linux-gnu-readelf -d libzbar.so.0.2.0

输出如下:

Dynamic section at offset 0x12c contains 22 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.0]
 0x0000000e (SONAME)                     Library soname: [libzbar.so.0]
 0x0000000c (INIT)                       0x2210
 0x0000000d (FINI)                       0x223c0
 0x00000004 (HASH)                       0x20c
 0x00000005 (STRTAB)                     0x12bc
 0x00000006 (SYMTAB)                     0x70c
 0x0000000a (STRSZ)                      3513 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000003 (PLTGOT)                     0x35190
 0x00000011 (REL)                        0x2078
 0x00000012 (RELSZ)                      400 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x70000001 (MIPS_RLD_VERSION)           1
 0x70000005 (MIPS_FLAGS)                 NOTPOT
 0x70000006 (MIPS_BASE_ADDRESS)          0x0
 0x7000000a (MIPS_LOCAL_GOTNO)           85
 0x70000011 (MIPS_SYMTABNO)              187
 0x70000012 (MIPS_UNREFEXTNO)            25
 0x70000013 (MIPS_GOTSYM)                0x34
 0x00000000 (NULL)                       0x0


mips-linux-gnu-readelf -d iCamera 

输出如下:

Dynamic section at offset 0x160 contains 49 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libssl.so.1.0.0]
 0x00000001 (NEEDED)                     Shared library: [libzbar.so.0]
 0x00000001 (NEEDED)                     Shared library: [liblogserver.so]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
 0x00000001 (NEEDED)                     Shared library: [libcrypto.so.1.0.0]
 0x00000001 (NEEDED)                     Shared library: [libfftw3.so.3]
 0x00000001 (NEEDED)                     Shared library: [libcurl.so.4]
 0x00000001 (NEEDED)                     Shared library: [libfaac.so.0]
 0x00000001 (NEEDED)                     Shared library: [libmp4v2.so.2]
 0x00000001 (NEEDED)                     Shared library: [libIOTCAPIs.so]
 0x00000001 (NEEDED)                     Shared library: [libAVAPIs.so]
 0x00000001 (NEEDED)                     Shared library: [libimp.so]
 0x00000001 (NEEDED)                     Shared library: [libsysutils.so]
 0x00000001 (NEEDED)                     Shared library: [libalog.so]
 0x00000001 (NEEDED)                     Shared library: [libaudioProcess.so]
 0x00000001 (NEEDED)                     Shared library: [librt.so.0]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libm.so.0]
 0x00000001 (NEEDED)                     Shared library: [libpaho-mqtt3as.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.0]
 0x0000000c (INIT)                       0x404a08
 0x0000000d (FINI)                       0x46efb0
 0x00000004 (HASH)                       0x400310
 0x00000005 (STRTAB)                     0x402534
 0x00000006 (SYMTAB)                     0x400d34
 0x0000000a (STRSZ)                      5675 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x70000016 (MIPS_RLD_MAP)               0x550ba0
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x550bb0
 0x00000011 (REL)                        0x403e80
 0x00000012 (RELSZ)                      32 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x70000001 (MIPS_RLD_VERSION)           1
 0x70000005 (MIPS_FLAGS)                 NOTPOT
 0x70000006 (MIPS_BASE_ADDRESS)          0x400000
 0x7000000a (MIPS_LOCAL_GOTNO)           2
 0x70000011 (MIPS_SYMTABNO)              384
 0x70000012 (MIPS_UNREFEXTNO)            31
 0x70000013 (MIPS_GOTSYM)                0x180
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x403ea0
 0x00000002 (PLTRELSZ)                   2920 (bytes)
 0x70000032 (MIPS_PLTGOT)                0x49a9c4
 0x6ffffffe (VERNEED)                    0x403e60
 0x6fffffff (VERNEEDNUM)                 1
 0x6ffffff0 (VERSYM)                     0x403b60
 0x00000000 (NULL)                       0x0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

samba 2.2.7a 编译

今天在君正T20上编译samba 2.2.7a 遇到了一些问题,特此记录一下 1.自己写一个build.sh脚本,方便后续的再次编译 #!/bin/sh # export CFLAGS"-O2 -muclibc" export CPPFLAGS"-O2 -muclibc" export CXXFLAGS"-O2 -muclibc&qu…

Linux_linux常用工具------进度条程序

缓冲区对文件读写的影响:数据并没有直接写入文件,而是写入到缓冲区(内存)中,等到缓冲区中数据写满或者刷新缓冲区的时候,才会将数据真正的写入文件 fflush(stdout)刷新。 回车与换行…

Ubuntu下QT的安装详细教程

本文转自:http://blog.chinaunix.net/uid-7945126-id-4987195.html 经测试完美解决 ------------------------------------------------------------- 最近需要在Ubuntu下开发桌面软件,想起了QT。书上介绍的方法太老了,网上找了一大堆安装方法…

Linux_linux常用工具---闲杂篇(除了vim, 还有哪些常用的牛逼的编辑器, 并能够横向对比编辑器之间的区别和优缺点.)

vim自行查找资料, 自行配置插件. 借鉴别人的 " 显示相关 “”""""""""""""""""""""""""""""""""&…

ubuntu14.04下安装qt4.8.6 +qt creator

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://248341.blog.51cto.com/238341/1438867以前安装时没太注意,安装qt后发现在qt creator下无法输入中文,或者中文无法…

网络基础一(协议的概念,网络应用程序设计模式)

协议的概念 什么是协议? 从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。 假设,A、B双方欲传输文件。规定: 第一次,传输文件名,接收方接收到文件名,应答OK…

ubuntu修改root密码

sudo passwd root [sudo] password for you :---> 输入你的密码,不会显示 Enter new UNIX password: --- > 设置root 密码 Retype new UNIX password: --> 重复

linux 消息队列机制

现在我们来讨论第三种也是最后一种System V IPV工具:消息队列。在许多方面看来,消息队列类似于有名管道,但是却没有与打开与关闭管道的复杂关联。然而,使用消息队列并没有解决我们使用有名管道所遇到的问题,例如管道上…

堆(概念,数据结构中堆与内存堆区的区别 ,堆的基本操作)

堆的特性: 必须是完全二叉树 用数组实现 任一结点的值是其子树所有结点的最大值或最小值 最大值时,称为“最大堆”,也称大根堆; 在完全二叉树中,任何一个子树的最大值都在这个子树的根结点。最小值时,称为…

makefile中的shell调用---注意事项

在之前一次编写makfile时候,有看到相关的makefile中使用$$来引用变量,而且尝试后发现$$使用居然和${}有类似的功能。当时也没具体追究相关的用法,当然刚才所说的都是错误的观念 $$:在makefile中会被替换成一个$。 相关资料是这么描…

网络基础2(分层模型,通信过程,以太网,ARP协议格式和具体功能详解)

分层模型 OSI七层模型 OSI模型 1 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0&#…

为github帐号添加SSH keys

使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的beagleOS项目:gitgithub.com:DamonDeng/beagleOS.git),而你的SSH key没有添加到github帐号设置中,系统会报下面的错误&…

网络基础3(IP段格式,UDP数据报格式,TCP数据报格式)

IP段格式 IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。 对于IPv4,4位版本字段是4。4位首部长度的数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x520字节,也就是不带任何选项的IP首部…

Linux 开发路线

Linux 开发路线: 使用 linux—〉linxu 系统编程开发---〉驱动开发和分析 linux 内核 开始学 linux 内核:最好有三件宝物:《深入理解 linux 内核》《LINUX内核源代码情景分析》和源代码。 《深》是纲,《情》是目。最后深入代码 Linux 内核原理:比较浅显…

堆的应用(堆排序,TopK问题)

堆的应用 1)排序 堆排序 选择排序 既可以找到最大的放在最后 也可以找到最小的方最前 但是,堆排序不能找最小的放在最前 因为把最小数放在最前,会破坏掉堆的原来的顺序,除非重新建堆 1, 2,9&#xff0c…

有名管道和无名管道的区别

1)无名管道:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。 单独构成一种独立的文件系统:管道…

网络基础4(TCP三次握手,四次握手,TCP流量控制,TCP状态转换 , TCP异常断开,设置TCP属性,端口复用)

TCP协议 TCP通信时序 下图是一次TCP通讯的时序图。TCP连接建立断开。包含大家熟知的三次握手和四次握手。 TCP通讯时序 在这个例子中,首先客户端主动发起连接、发送请求,然后服务器端响应请求,然后客户端主动关闭连接。 两条竖线表示通讯的…

linux编程手册读书笔记第一章(20140329)

(2)管道、FIFO、套接字、设备(比如终端、伪终端)都支持非阻塞模式。(因为无法通过open()来获取管道和套接字的文件描述符。所以要启用非阻塞标志,就必须使用fcntl(&#…

排序(基本概念及分类,直接插入排序和希尔排序)

排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序&a…

Linux编程手册读书笔记第二章(20140330)

内核:管理和分配计算机资源(即CPU、RAM和设备)的核心软件层Linux内核可执行文件采用/boot/vmlinuz或类似的路径名,“z”表明内核是经过压缩的可执行文件。内核主要任务: (1&#xff…