当前位置: 首页 > wzjs >正文

logo图片大全简单郑州seo联系搜点网络效果好

logo图片大全简单,郑州seo联系搜点网络效果好,做生物学的网站,网站建设元年gdb调试以及常用相关工具hexdump\objdump等 GDB1. dump2. restore3. info proc mappings注意事项 其他1. hexdump2. objdump 什么是符号表 符号表(Symbol Table)是在编译程序、链接程序以及调试程序等过程中用于存储和管理符号信息的数据结构。这里的符号…

gdb调试以及常用相关工具hexdump\objdump等

  • GDB
    • 1. dump
    • 2. restore
    • 3. info proc mappings
    • 注意事项
  • 其他
    • 1. hexdump
    • 2. objdump

什么是符号表
符号表(Symbol Table)是在编译程序、链接程序以及调试程序等过程中用于存储和管理符号信息的数据结构。这里的符号可以是变量名、函数名、类名、标号等,以下从多个方面详细介绍符号表:
基本概念
在程序的编译和执行过程中,编译器和链接器需要知道各种标识符(符号)对应的地址、类型、作用域等信息,符号表就是用来存储这些信息的地方。它就像一个字典,将符号和与之相关的属性关联起来,方便编译器和其他工具在不同阶段进行查找、插入、删除和修改操作。

GDB

1. dump

在 GDB 中,dump 是一个非常有用的命令,可以将内存内容、寄存器值或其他数据保存到文件中,方便后续分析或恢复状态。以下是 dump 命令的高级用法和相关操作:

基本语法:

dump [格式] [目标文件] [起始地址] [结束地址]

官方的help dump

(gdb) help dump Dump target code/data to a local file.

List of dump subcommands:

dump binary – Write target code/data to a raw binary file.
dump ihex – Write target code/data to an intel hex file.
dump memory – Write contents of memory to a raw binary file.
dump srec – Write target code/data to an srec file.
dump tekhex – Write target code/data to a tekhex file.
dump value – Write the value of an expression to a raw binary file.
dump verilog – Write target code/data to a verilog hexfile.

dump binary
功能:将目标代码/数据写入原始二进制文件(raw binary file)。
用途:适用于直接转储内存或代码段的二进制内容(如固件提取)。
eg: dump binary memory output.yuv yuv_buf yuv_buf + WIDTH * HEIGHT * 2

dump ihex
功能:将目标代码/数据写入 Intel Hex 格式文件。
用途:兼容微控制器编程工具(如 Flash 烧录)。

dump memory
功能:将内存内容写入原始二进制文件。
用法示例:gdb 复制 (gdb) dump memory output.bin 0x400000 0x401000
dump srec
功能:将目标代码/数据写入 S-record 格式文件(Motorola 标准)。
用途:嵌入式系统调试或 ROM 数据生成。

dump tekhex
功能:将目标代码/数据写入 Tekhex 格式文件。 注:Tektronix扩展的十六进制格式,适用于特定硬件工具。

dump value
功能:将表达式的值写入原始二进制文件。 示例:
(gdb) dump value data.bin r s p ( rsp ( rsp(rsp + 64) # 保存栈顶64字节
dump verilog
功能:将目标代码/数据写入 Verilog 十六进制文件。
用途:硬件仿真时初始化内存(如 FPGA 或 ASIC 验证)

2. restore

恢复内存内容,使用 restore 命令可以将保存的文件内容加载到内存:
restore <文件名> binary [地址偏移]
(gdb) restore output.bin binary 0x555555554000

3. info proc mappings

在 GDB 中使用 info proc mappings
启动 GDB 并附加到目标进程(或调试程序),然后在 GDB 命令行中输入:

(gdb) info proc mappings
这会输出进程的内存映射信息,例如:

Start Addr   End Addr       Size     Offset  Perms  objfile
0x555555554000 0x555555556000 0x2000     0x0  r-xp   /path/to/program
0x555555756000 0x555555757000 0x1000     0x0  r--p   /path/to/program
0x555555757000 0x555555758000 0x1000     0x0  rw-p   /path/to/program

记录需要转储的内存地址范围(如代码段 0x555555554000 到 0x555555556000)。

注意事项

  1. 权限问题:如果目标内存区域未映射或不可读,GDB 会报错 Cannot access memory。
  2. 大文件处理:转储大块内存可能生成巨型文件,建议结合 dd 或 hexdump 分析。
  3. 地址对齐:确保地址有效(可通过 info proc mappings 查看合法地址范围)。
  4. 分析转储文件

保存后的二进制文件可以用以下工具分析:

  • hexdump:查看十六进制内容 hexdump -C output.bin
  • objdump:反汇编代码段objdump -D -b binary -m i386:x86-64 output.bin
  • exec-file: 自身:直接加载分析 (gdb) exec-file <原程序> (gdb) target exec-file <转储文件>
  • info proc mappings 查看合法内存地址范围,避免转储无效区域。

通过结合 dump 和外部工具,你可以更高效地调试复杂的内存问题(如缓冲区溢出、数据损坏等)。

其他

1. hexdump

hexdump 是一个 Linux 工具,用于查看二进制文件的十六进制内容,不能直接输入 hexdump 不加参数。使用 hexdump 分析导出的文件,在终端(非 GDB)中使用 hexdump 查看导出的二进制文件:

hexdump -C output.bin
-C 参数会同时显示十六进制和 ASCII 内容,例如:

00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  03 00 3e 00 01 00 00 00  a0 10 00 00 00 00 00 00  |..>.............|
  • hexdump 常用参数
    参数 功能
    -C 显示十六进制和 ASCII 对照
    -n <长度> 仅显示前 N 字节(如 -n 64)
    -s <偏移> 从指定偏移开始(如 -s 0x100)

  • 若文件较大,可结合 less 分页查看:

hexdump -C output.bin | less

2. objdump

反汇编二进制文件, 反汇编整个代码段(需指定架构,如 x86-64):

objdump -D -b binary -m i386:x86-64 output.bin
  • 参数说明:
    -D: 反汇编所有段(代码和数据)。
    -b binary: 指定输入文件为原始二进制格式。
    -m i386:x86-64: 指定目标架构(根据实际调整)。

  • 查看程序段头信息
    显示 ELF 文件的段(Section)信息:objdump -h /path/to/program
    输出示例:

Sections:
Idx Name          Size      VMA               LMA               File off  Algn0 .text         000001a0  0000000000000000  0000000000000000  00000040  2**4CONTENTS, ALLOC, LOAD, READONLY, CODE
  • 反汇编特定函数
    反汇编可执行文件中的 main 函数:
    objdump -d /path/to/program --disassemble=main
  • 查看符号表
    显示二进制文件的符号(函数、全局变量):
    objdump -t /path/to/program
0000000000000000 g     F .text  0000000000000015 main
  • 混合显示源码与汇编(需编译时加 -g)
    objdump -S -l -d /path/to/program
    参数说明:
    -S: 混合显示源码和汇编。
    -l: 显示源码文件名和行号。
http://www.dtcms.com/wzjs/122175.html

相关文章:

  • 深圳龙岗区疫情分布搜狗seo
  • 花生棒做网站全网营销软件
  • 网站logo设计理念刚刚发生 北京严重发生
  • 手机网站设计要求百度seo搜索引擎优化培训
  • 重庆的公需科目在哪个网站做灰色词排名上首页
  • 网站 代理 备案 费用吗今日新闻热点10条
  • 做的网站没有手机版什么叫做优化
  • 自己制作手机软件appseo排名优化关键词
  • 大学科研项目做网站网络营销论文
  • 做网站哪家靠谱西安网站托管
  • 公司网站流程seo网站推广平台
  • 淮南城乡建设局网站无锡百度
  • 广东省监理建设协会网站可以发外链的论坛有哪些
  • 海南中小企业网站建设启动互联全网营销推广
  • 学校网站管理系统div css漏洞免费推广网址
  • 大气自适应网站源码免费站推广网站不用下载
  • ppt做视频模板下载网站免费网络空间搜索引擎
  • 做网站会遇到的问题每日军事新闻
  • 企业做网站大概多少钱企业建站 平台
  • 建筑焊工证查询网站官方网seo专员工作内容
  • 海安网站开发衡阳seo优化报价
  • 江苏建设纸质考试网站成都seo优化推广
  • 2017年内蒙古建设厅网站批量查询指数
  • 石家庄建设南大街小学网站搜索引擎优化方法总结
  • 做网站6个月心得百度网盘app下载安装电脑版
  • 政府英文网站建设外包服务方案推广公司是做什么的
  • 东莞公司网站建设公司哪家好南京seo报价
  • 网站建设用什么软件好搜索引擎优化关键字
  • 高能建站灰色行业seo大神
  • 在哪个网站做兼职淘宝客服友情链接查询结果