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

介绍小说的网站模板铜仁建设局网站首页

介绍小说的网站模板,铜仁建设局网站首页,国内免费工厂网站建设,html网站建设Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 一 gdb1. 原生程序添加调试符号2. 主机上adb push 编译好的原生程序到设备3. 设备上使用gdbserver运行原生程序4. 主机上设置adb端口转发5. 主机上运行gdb调试 二 addr2line三 readelf 一 gdb GDB(GNU…

Platform: RK3368

OS: Android 6.0

Kernel: 3.10.0


文章目录

  • 一 gdb
    • 1. 原生程序添加调试符号
    • 2. 主机上adb push 编译好的原生程序到设备
    • 3. 设备上使用gdbserver运行原生程序
    • 4. 主机上设置adb端口转发
    • 5. 主机上运行gdb调试
  • 二 addr2line
  • 三 readelf

一 gdb

GDB(GNU Debugger)是GNU项目调试器,是一种强大的程序调试工具,可以用于调试C、C++、Fortran等多种编程语言编写的程序。它允许程序员在程序运行时监视程序的内部状态和程序的控制流程。

1. 原生程序添加调试符号

在原生程序的Android.mk中添加以下内容:

# 添加调试符号  
LOCAL_CFLAGS += -g -O0  # 不剥离符号  
LOCAL_STRIP_MODULE := false  

2. 主机上adb push 编译好的原生程序到设备

$ adb push out/target/product/$YOUR_DEVICE/system/bin/$YOUR_NATIVE_PROCESS

3. 设备上使用gdbserver运行原生程序

$ gdbserver :9090 /system/bin/$YOUR_NATIVE_PROCESS

4. 主机上设置adb端口转发

表示将本地9090端口转发到设备9090端口:

$ adb forward tcp:9090 tcp:9090

5. 主机上运行gdb调试

$ gdb out/target/product/$YOUR_DEVICE/system/bin/$YOUR_NATIVE_PROCESS
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from out/target/product/***/system/bin/****...
(gdb) target remote :9090
Remote debugging using :9090
warning: while parsing target description (at line 1): Target description specified unknown architecture "arm"
warning: Could not load XML target description; ignoring
Reading /system/bin/linker64 from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
0x00000000 in ?? ()

二 addr2line

addr2line用于将程序的地址(例如,崩溃报告中提供的地址)转换为文件名和行号。这对于调试和定位程序中的错误非常有用,尤其是在处理崩溃或异常行为时。

一般在Android源码中source build/envsetup.sh和lunch以后, 就会有很多工具可以直接使用了, 例如:

$ arm-linux-androideabi-addr2line -f -e $YOUR_NATIVE_PROCESS

如果是64位程序需要使用aarch64下面的工具链, 否则会出现"File format not recognized"

$ /prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -e $YOUR_NATIVE_PROCESS

三 readelf

readelf是一个在Unix和类Unix系统上用于查看ELF(Executable and Linkable Format)文件信息的命令行工具。readelf能够显示ELF文件的各种信息,包括但不限于:

  • 文件头:描述ELF文件的总体信息,包括系统相关、类型相关、加载相关和链接相关等。
  • 程序头:包含程序执行时所需的各种段(segment)的信息。
  • 节头:描述ELF文件中各个节(section)的信息,节是ELF文件的基本组成部分。
  • 符号表:包含程序中定义的符号和引用的外部符号的信息。
    此外,readelf还支持查看动态节、调试信息、版本信息等。

例如查看符号表信息:

$ arm-linux-androideabi-readelf -s $YOUR_NATIVE_PROCESS
http://www.yayakq.cn/news/32345/

相关文章:

  • 版式设计素材网站灰色行业seo
  • 汉中网站开发做 了一个 家教 网站
  • 购买网站模板WordPress启用插件
  • 贵阳网站设计阳光创信好吗建设中学校园网站的目的
  • 温州做网站的seo和sem是干什么的
  • 网站建设的需求方案怎么写黄埔网站建设(信科网络)
  • 任丘网站建设公司书店网站建设设计方案
  • 免费做网站手机新年电子贺卡免费制作软件app
  • 做网站都需要哪些信息wordpress 删除角色
  • 网站网站二维码收钱怎么做的禹城做网站
  • 福州市做公司网站哪家好中国搜索引擎排名2021
  • 湖南平台网站建设找哪家建立一个网址需要多少钱
  • 公司行政负责做网站吗免费行情网站
  • 家政门户网站源码微网站模板制作教程
  • 不建网站如何做淘宝客南昌网站建设 南昌做网站公司
  • 河南省建设厅网站取消劳务资质山西山西省建设厅网站首页
  • 作文网站源码网站建设企业的未来发展计划
  • asp网站建设案例做企业网站的架构图
  • 网站建设1001网站建设下载app至手机
  • 二级域名建站百度会收录双域名的网站么
  • 平顶山市哪里有做网站的简单网页模板免费下载
  • 南京免费发布信息网站公司网页维护
  • 网站建设与维护目录网站着陆率
  • 海外网站建设平台微信电脑版
  • 网站开发遇到过哪些技术难点推广工作的流程及内容
  • 展示型网站有哪些功能黑马程序员培训费用
  • 建设工程检测预约网站港口建设网站
  • 响应式网站建设价位网站设计高端
  • 昆山营销型网站建设方法dedecms做的系统网站主页是哪一个文件
  • 西安网站空间链接平台