gdb 远程调试android进程 -转】的更多相关文章

什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停住.(断点可以是表达式) 程序被停住后,可以查看此时程序中发生的事. 动态改变程序的执行环境. GDB远程调试原理图 如图上所示,我们需要使用gdbserver依附到我们要调试的进程上,gdb通过adbd和手机上的gdbserver 进行socket通信. 远程调试实战 在手机上启动gdbserve…
原文:http://blog.csdn.net/xinfuqizao/article/details/7955346?utm_source=tuicool 什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停住.(断点可以是表达式) 程序被停住后,可以查看此时程序中发生的事. 动态改变程序的执行环境. GDB远程调试原理图 如图上所示,我们需要使用g…
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 先看一张原理图: 我是 Linux 和 Android 双料 0 基础,目前对 gdb 了解的很浅显.(注意:在 Android 上执行的命令,需要在 adb shell 下执行.) ①      打开命令终端(Ctrl + Alt + T),输入 adb shell.在 Android 的 data 目录下新建一个目录,如 dog_ld. ②      将 gdbserver 和要调试的程序从 Linu…
上次写了几个native程序,想着如何调试,经过一阵子搜索和测试,终于完成了.有几个关键点: 1 gdb和gdbserver 因为这两个需要配套,建议使用同一个ndk下面的gdb和gdbserver gdbserver的是在 android-ndk-r9\prebuilt\android-arm\gdbserver 这个目录下 gdb 是在 android-ndk-r9\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bi…
原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuTarget: Android ICS 1.将gdbserver放入设备. 确保系统有arm-*-gdb,及存在设备端将要运行的gdbserver,gdbserver可以由google ndk中获取,在ndk的如下目录可以找到这个文件: 点击(此处)折叠或打开 android-ndk-r8/toolc…
知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/gdb-bug 本博客同步在http://www.cnblogs.com/papertree/p/6298774.html 在用qemu + gdb 调试linux内核时,遇到一个gdb的bug:"Remote 'g' packet reply is too long" ,记录一下. 1. 实验环境 1. qemu 版本: luzeshu@l…
网上的帖子很多,但很多都是老版本的,试过了,根本不管用,花了一天时间,终于在本机试验通过了,特记录下来,以备用.有需要的朋友也可以参考.先上一张图,看看PC端chrome上调试的效果: 左边是手机的模拟操作器,右边是大家熟悉的开发人员工具,也可以在手机上操作,PC端左边屏幕会同步到手机上的界面. 下面再说一下环境配置: 1.手机端,我手机是华为荣耀4,android4.4.4,很旧的手机了,大家别笑话,但不影响本次试验.安装chrome版本为58.0.3029.83: 2.PC端,win7 64…
移动前端调试方案(Android + Chrome 实现远程调试) 目录 要求 第 1 步:发现您的 Android 设备 第 2 步:从您的开发计算机调试 Android 设备上的内容. 更多操作:重新加载.聚焦或关闭一个标签 检查元素 Android 设备到开发计算机的抓屏 反馈     从 Windows.Mac 或 Linux 计算机远程调试 Android 设备上的实时内容. 本教程将向您展示如何: 设置您的 Android 设备进行远程调试,并从开发计算机上发现设备 从您的开发计算机…
远程调试步骤 在Android设备上启动gdbserver并attach你想调试的进程,并指定监听调试命令的端口(此端口是TV上的端口) $ adb shell # ps |grep media  #查看要调试进程的PID,以mediaserver进程为例 # gdbserver :1234 --attach 96   #:1234是端口号,96 是进程ID 如果设备上没有gdbserver,可以由google ndk中获取,在ndk的如下目录可以找到这个文件: android-ndk-r8/t…
在看雪上回答的问题,有人问在WinDbg下断KiDebugRoutine或者KdEnterDebugger函数会引发蓝屏!因为是在调试Windows的内核调试引擎,我给出的解决办法是用不依赖Windows的内核调试引擎对其进行调试,在以前分析Windows的启动过程时用到过ida的远程调试,在Windows内核调试引擎还没初始化的时候就对系统进行调试,这里就用到了ida的远程调试来解决. ida--->Debugger--->Attacth---->Remote GDB Debugger…
手机浏览器是没有开发者工具的,所以调试手机网页是非常麻烦.使用 chrome 的远程调试功能可以像调试桌面端那样调试手机页面. 准备 手机端:chrome for Android, 安装谷歌浏览器 桌面端:谷歌浏览器,版本建议大于手机端的,最好使用 chrome canary USB 连接线, 也就是你充电器的那条线 开启调试模式 使用 USB 连接你的电脑,并开启调试模式. 使用 android 4.2 或以上的手机可能没有调试模式选项,可以找到 “设置 > 关于手机 > 版本号(Build…
被调试端设置同attach进程方式的远程调试 代码端,需要在[Project] [Properties] [Configuration Properties] [Debugging].将Debugger to launch选为Windows Remote Debugger. 然后设置如图:…
参考: http://www.erchashu.com/wiki/eclipse-cdt-gdb-arm-app-cross-debug 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接.使用 GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能.调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在. 就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作: 普通列表…
最近在学着编写一个操作系统的简单内核,需要debug工具,我们这里使用gdb来进行调试,由于虚拟机运行和本机是两个部分,所以使用 gdb 的远程调试技术,这里对 gdb 常见调试以及远程调试方式做一个总结. 远程调试 先对在调试操作系统内核时用到的命令做一个说明(这里省略了一部分makefile的内容): 为了方便调试,将debug所用到的命令做一个简单说明 -- # -s 这个参数指的是启动时开启1234端口等待gdb连接 # -S 是指是启动时不自动开始运行,等待调试器的执行命令 debug…
前  言 关于GDB工具 GDB工具是GNU项目调试器,基于命令行使用.和其他的调试器一样,可使用GDB工具单步运行程序.单步执行.跳入/跳出函数.设置断点.查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具.GDB支持多种语言,包括Ada.汇编.C/C++.D.Fortran.GO.Objective-C.OpenCL.Modula-2.Pascal和Rust. GDB具有一种"远程"模式,此种模式多半是在为嵌入式系统进行调试时使用,远程操作指的是:GDB在一部机器内…
1 前言 使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因为关联了其他静态库等,尝试解决,但是遇到了一些其他问题,因为时间问题折腾了一段时间就放弃使用10.2的版本了). 通过使用 gdb+gdbserver 远程调试目标板,之后可以通过 VSCode 配置好后实现和 IDE 集成开发环境一样的比较直观方便调试. 2 编译 2.1 前期准备 1)下载 gdb(网上很…
VS的debug功能非常强大,相比而言linux上的图形化调试一直不是很好用. 如果可以使用VS来调试linux程序,应该是一件比较愉快的事情. 这在2015中变得可能,因为从2015开始VS支持Android.iOS开发和调试. 虽然并没有正式提供linux程序的调试支持,但是可以通过一些技巧达到 微软开源了MIEngine项目,通过Machine Interface ("MI")与gdb.lldb交互. VS通过该MIEngine即可调试linux程序(visual studio…
  1.把ida 目录下android_server 传到android 目录中如:adb push  android_server /data/local/tmp/adb shell 进入模拟器cd /data/local/tmp/chmod 755 android_server./android_server看到监听端口 23946 2.在windows 控制台下转发window 到模拟器或者手机的端口adb forward tcp:23946 tcp:23946 3.ida 中选择andr…
平台: redhat9.0 下载 gdb-5.3.tar.gz 解压 gdb-5.3.tar.gz: #tar vzxf gdb-5.3.tar.gz 配置文件# ./configure - target=arm-linux- --prefix=/usr/local/arm-gdb -v # make #make install #vi  /etc/.bash_profile //如果没有,试下/root/.bash_profile 中添加一行:PATH=$PATH; /usr/local/ar…
1. 首先安装gdbserver apt-get install gdbserver 2. 编译-g 程序 gcc -g test_gdb.c -o test_gdb 源码如下: #include "Util.h" void p1() { ; char *p; *p = '; printf("%p %c",p,*p); do { j++; }); } void p2() { ; ) { j = j + j*j; } } int main(int argc,char…
下载最新的google chrome canary 手机chrome开启usb网页调试,如图所示: 在终端运行 ? SHELL adb forward tcp:9222 localabstract:chrome_devtools_remote /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --remote-debugging-port=9222 --remote-debugging-p…
1.手机需要开启USB调试模式: 2.电脑和手机上都要安装最新的Chrome浏览器: 3.手机连接电脑,会出现下载安装驱动的提示并安装成功(并不是所有的手机都会这么顺利,比如我的魅族就无法安装驱动,公司的小米5C非常顺利,连接就安装成功了,再次重新连接就可以了),不需要下载手机助手啥的: 4.手机弹框,选择允许当前电脑进行调试: 5.手机打开Chrome,电脑Chrome地址栏输入:chrome://inspect:电脑上就可以看到对应的地址了: 6.点击对应的inspect,第一次打开需要FQ…
1.引用: https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/ 注意安装gdbserver的命令是 yum install gdb-gdbserver 不是文中的gdbserver 2.linux各个组件安装后之后, 确定gcc是否符合标准,例如需要c11的,可能要升级gcc 3.Visual Studio Build成功后,Linux会有Projects文件夹, 但是此时并不表明你…
http://android-scripting.googlecode.com/hg/python/ase/android.py 拷贝到/Python27/Lib/site-packages这个目录下 Code: # Copyright (C) Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in comp…
最 近写了些需要跨平台兼容的C++库,Android是其中需要兼容的平台之一.区别于Windows,Mac中功能强大的IDE环境,官方并没有为 Android ndk提供太多的支持.因此,尝试了下通过一些配置使用gdb来调试Android ndk的C++程序,感觉还算方便,记录下来跟大家分享. 先 说明下,这里所谓的ndk native程序跟Android上层java应用没有什么关系,也不需要涉及jni来封装native接口,通俗来讲,就是把编译好的纯C/C++程 序,push到Android设…
1.以前cordova远程调试,Android的直接连接USB后,用chrome打开chrome://inspect网址 IOS的打开Safari的developer下. 这是因为cordova的webView都已经开放了远程调试, 如果是自己的加的webView,要进行远程调试 Android: 在调试WebView需要满足安卓系统版本为Android 4.4+已上.并且需要再你的APP内配置相应的代码,在WebView类中调用静态方法setWebContentsDebuggingEnable…
今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chrome这样调试android webview的h5页面就好了,折腾了一个晚上,终于找到了一篇基本可用的教程 android webview远程调试,然后又发现运来在chrome的官方文档文档中也有描述 远程调试 Android 设备使用入门. 一.简要步骤: 1)首先在安卓手机上打开手机的开发者模式,…
从 Windows.Mac 或 Linux 计算机远程调试 Android 设备上的实时内容. 本教程将向您展示如何: 设置您的 Android 设备进行远程调试,并从开发计算机上发现设备. 从您的开发计算机检查和调试 Android 设备上的实时内容. 将 Android 设备上的内容抓屏到您的开发计算机上的 DevTools 实例中. 图 1. 远程调试可以让您从自己的开发计算机上检查 Android 设备上运行的页面. 第 1 步:发现您的 Android 设备 下面的工作流程适用于大多数…
参考:http://blog.csdn.net/shanghaiqianlun/article/details/7820401 一.gdb+gdbserver总体介绍 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接.使用GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能.调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在. 就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不…
之前介绍了怎么获取APP的所有类的结构信息,这个有什么用呢?用处大了,比如以这一步为基础,下一步通过注入来做更多研究工作. 注入的最小单位是函数,实际上,编译执行的程序在编译后,类就不复存在了,留下来的只是二进制代码(指令或数据都是一样的二进制代码).所幸的是,跟我们打交道的,并不是二进制代码(那会困难很多),而是函数,而且是某个类的函数. 那么,在用classdump拿到成千上万个类与函数后,哪个函数才是我们关心的呢?怎么锁定它们呢? 本文介绍锁定目标类与函数的可行的办法. 基本上小程研究的目…