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

jdb调试问题集锦

https://bbs.kanxue.com/thread-210049.htm蓝铁

  1 2017-8-25 19:40

  4 楼 

 0

根据提示,可知,出错的地方是,android.app.ActivityThread.handleBindApplication(),  行=4,400
查看源码可以发现,代码中指向的是app.onCreate()
                        try  {
                                mInstrumentation.callApplicationOnCreate(app);//内部调用的是app.onCreate()

                        }  catch  (Exception  e)  {
                                if  (!mInstrumentation.onException(app,  e))  {
                                        throw  new  RuntimeException(
                                                "Unable  to  create  application  "  +  app.getClass().getName()
                                                +  ":  "  +  e.toString(),  e);
                                }
                        }

出现这个错误的原因是其在Java层调用了Debug.  isDebuggerConnected
native层调用的是Dalvik_dalvik_system_VMDebug_isDebuggerConnected
最底层是dvmDbgIsDebuggerConnected
函数内部是判断的gDvm.debuggerActive

解决方案就是,在jdb连接之后,在patch  dvmDbgIsDebuggerConnected函数

我正在使用 jdb dubugger,它的问题是在每个捕获的异常上停止,尽管我没有执行任何 catch .... 语句。在类加载期间,有数百个:

发生异常:java.io.FileNotFoundException (uncaught)"thread=Thread-2-EmulatorEngine", sun.misc.URLClassPath$JarLoader.ensureOpen(), line=634 bci=30

有什么方法可以指示 jdb 跳过这些异常吗?

附注。我听说过 IDE 编辑器。有理由使用jdb。

我意识到我不够小心。JDB 在启动这些行后写入

设置未捕获的 java.lang.Throwable

设置延迟未捕获的 java.lang.Throwable

所以,要禁用它,我需要输入一个命令

ignore uncaught java.lang.Throwable

jdb 调试

C:\Users\Reverse>adb shell am start -D -n lwf.lc.pncdd/lwf.lc.pncdd.MainC

查看内存情况:

cat /proc/N/maps

jdb调试目标进程

C:\Users\Reverse>adb jdwp 查看目标进程PID

C:\Users\Reverse>adb forward tcp:9999 jdwp:PID 转发

C:\Users\Reverse>jdb -connect com.sun.jdi.SocketAttach:port=9999,hostname=localhost
设置未捕获的java.lang.Throwable
设置延迟的未捕获的java.lang.Throwable

正在初始化jdb...
> exit

jdb调试实例:

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8631
设置未捕获的java.lang.Throwable
设置延迟的未捕获的java.lang.Throwable
正在初始化jdb...
>
出现异常错误: java.lang.ClassNotFoundException (未捕获)"线程=Thread-2", dalvik.system.BaseDexClassLoader.findClass(), 行=201 bci=84

Thread-2[1] wherei
  [1] dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:201), pc = 84
  [2] java.lang.ClassLoader.loadClass (ClassLoader.java:379), pc = 28
  [3] java.lang.ClassLoader.loadClass (ClassLoader.java:312), pc = 1
Thread-2[1] locals
方法参数:
suppressedExceptions = instance of java.util.ArrayList(id=9327)
c = null
本地变量:
name = "com.target.os.ClassName"
cnfe = instance of java.lang.ClassNotFoundException(id=9325)
Thread-2[1]

相关文章:

jdb调试问题集锦

https://bbs.kanxue.com/thread-210049.htm蓝铁 1 2017-8-25 19:40 4 楼 0 根据提示,可知,出错的地方是,android.app.ActivityThread.handleBindApplication(), 行4,400 查看源码可以发现,代码中指向的是app.onCreate() …...

要和文心一言来一把你画我猜吗?

想和文心一言来一把你画我猜吗? ChatGPT的爆火,让AI对话模型再次走入大众视野。大家在感叹ChatGPT的智能程度时,总会忍不住想:如果我们也有自己的AI对话模型就好了。在社会的压力下,国内的厂商和研究机构也纷纷做出尝试…...

delete[] p->elems和free(p->elems)有什么区别?

delete[]和free()都是释放内存的函数,但它们具有不同的使用方法和适用情况。 delete[] 通常用于释放C中动态分配的数组空间。在使用new[]运算符分配内存时,应使用delete[]运算符来释放分配的内存。delete[] 运算符会调用每个数组元素的析构函数&#xf…...

CAS问题

CAS🔎什么是CAS🔎伪代码解析🔎CAS是如何实现原子性的🔎CAS的应用🌻实现原子类🌻实现自旋锁🔎ABA问题🌻ABA问题可能引起的BUG🌻ABA问题的解决方案🔎结尾&#…...

网络编程socket(下)

目录 一、TCP网络程序 1.1 服务端初始化 1.1.1 创建套接字 1.1.2 服务端绑定 1.1.3 服务端监听 1.2 服务端启动 1.2.1 服务端获取连接 1.2.2 服务端处理请求 1.3 客户端初始化 1.4 客户端启动 1.4.1 发起连接 1.4.2 发起请求 1.5 网络测试 1.6 单执行流服务端的…...

华为OD机试题【打折买水果】用 C++ 编码,速通

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:打折买水果 题目 有 m m m…...

JSON 数据类型

JSON 数据类型 JSON 格式支持以下数据类型: 类型描述数字型(Number)JavaScript 中的双精度浮点型格式字符串型(String)双引号包裹的 Unicode 字符和反斜杠转义字符布尔型(Boolean)true 或 fal…...

Python函数简介

Python是一种高级编程语言,它的函数是其中一个非常重要的特性。在程序中,函数是一段被命名的代码块,它可以接受输入并且返回输出。本篇文章将介绍Python函数的基本概念、定义、调用和参数。 基本概念 在Python中,函数是由def关键…...

一文读懂 mysql 为什么要两阶段提交以及两阶段提交原理

文章目录 为什么要两阶段提交redo log与binlog两份日志之间的逻辑不一致,会出现什么问题?两阶段提交是怎么保证逻辑一致的呢?当 binlog 写完,redo log 还没 commit 前发生 crash,那崩溃恢复后 MySQL 如何处理?redo 与 binlog 的刷盘时机MySQL 的双 1 配置能否只用 redo l…...

启动Hadoop报错【Error: JAVA_HOME is not set and could not be found.】

当用了一下午从0安装上Hadoop兴奋的启动的时候! Error: JAVA_HOME is not set and could not be found. 他告诉我JAVA_HOME 没被找到? 我明明安装了java的,为什么找不到? java -version看了下发现是没问题的 解决: 后…...

《MySQL系列-InnoDB引擎35》索引与算法-B+树索引的使用

B树索引的使用 1 不同应用中B树索引的使用 在OLTP中,B树索引建立后,对该索引的使用应该只是通过该索引取得表中少部分的数据。这时建立B树索引才是有意义的,否则即使建立了,优化器也可能不选择使用索引。 在OLAP中,…...

【EHub_tx1_tx2_E100】不止科技NVISTAR ROC 300激光雷达Ubuntu18.04+ROS1ROS2 评测

介绍NVISTAR 的二维DTOF激光雷达 ROC 300在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS1驱动和ROS2的驱动,打开使用RVIZ 查看点云数据,本文的前提条件是你的TX1里已经安装了ROS1版本:Mel…...

C语言函数大全--d开头的函数

C语言函数大全 本篇介绍C语言函数大全–d开头的函数 1. detectgraph 1.1 函数说明 函数声明函数功能void detectgraph(int *graphdriver, int *graphmode);通过检测硬件确定图形驱动程序和模式 1.2 演示示例 #include <graphics.h> #include <stdlib.h> #incl…...

基于springboot实现福聚苑社区团购演示【项目源码】

基于springboot实现福聚苑社区团购演示开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#…...

动静态库的制作

文章目录&#xff1a;什么是程序库&#xff1f;动态链接和静态链接动静态库的认识静态库的创建与使用创建使用动态库的创建与使用创建使用什么是程序库&#xff1f; 程序库&#xff1a;一般是软件作者为了发布方便、替换方便或二次开发目的&#xff0c;而发布的一组可以单独与应…...

QMS-云质-质量软件-客诉,为什么应该用两段式来处理

-云质QMS原创文章&#xff0c;转载请注明来源- 客户满意度是决定企业是否能够基业长青的关键因素之一。 如果客诉处理的不好&#xff0c;会极大影响客户的满意程度。 通常处理客诉分为两个阶段。 第一个阶段是快反遏制&#xff0c;想方设法快速答复和解决客户提出的问题&…...

JS:关于邮箱的正则表达式及规则

常用正则表达式—邮箱&#xff08;Email&#xff09; 要验证一个字符串是否为邮箱的话&#xff0c;首先要了解邮箱账号的格式。我尝试过在网上找出一个标准的格式&#xff0c;但是很遗憾我没有找到。我也尝试使用RFC标准来判断邮箱的格式&#xff0c;但是也没有结果。网上些博…...

两句话,ChatGPT帮我写一个打飞机的游戏

大家好&#xff0c;我是全村的希望今天的主题是让 chatGPT 来帮我们写一个打飞机的游戏记得我刚学 Python 的时候&#xff0c;看的那本很经典的入门书《Python 编程&#xff1a;从入门到实践》&#xff0c;里面就有小项目就是教你编写一个打飞机的游戏我那时候是对着书一个一个…...

计算机图形学14:三维图形的投影变换

作者&#xff1a;非妃是公主 专栏&#xff1a;《计算机图形学》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、三维图形的投…...

【ChatGPT4】王老师零基础《NLP》(自然语言处理)第二课

我的已经在起、点开了书《王老师带我成为救世主》&#xff0c;那个更新及时 &#xff08;1&#xff09;---------------------------------------------------------------------------------------- 我&#xff1a; 1我/喜欢/吃/苹果&#xff0c;因为/它/们/很/好吃。 2 Th…...

HS2-HF Patch:为《Honey Select 2》注入新生命的魔法补丁

HS2-HF Patch&#xff1a;为《Honey Select 2》注入新生命的魔法补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是不是曾经打开《Honey Select 2》时&am…...

【技术解析】基于主成分分析与神经网络的航空安全风险建模:从QAR数据预处理到实时预警仿真

1. 航空安全风险建模的技术背景 每次坐飞机时&#xff0c;你可能都好奇过&#xff1a;机长是如何确保飞行安全的&#xff1f;其实背后有一整套数据驱动的安全体系在支撑。QAR&#xff08;快速存取记录器&#xff09;就像飞机的"黑匣子"&#xff0c;记录了上百项飞行参…...

VHDL转Verilog终极指南:如何用VHD2VL v3.0快速完成硬件描述语言转换

VHDL转Verilog终极指南&#xff1a;如何用VHD2VL v3.0快速完成硬件描述语言转换 【免费下载链接】vhd2vl 项目地址: https://gitcode.com/gh_mirrors/vh/vhd2vl 在FPGA开发领域&#xff0c;VHDL和Verilog是两大主流硬件描述语言&#xff0c;但团队协作或项目迁移时经常…...

Linuxbonding链路异常定位实战

Linuxbonding链路异常定位实战这是一篇面向中级 Linux 使用者的技术文章&#xff0c;主题聚焦在bonding链路&#xff0c;重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中&#xff0c;bonding链路相关问题往往不会以单一错误形式出现&#xff0c;而是混杂在日志、权限、…...

Blitz.js全栈开发框架:零API理念与Next.js深度集成实战

1. 项目概述&#xff1a;一个颠覆性的全栈开发框架如果你和我一样&#xff0c;在过去的几年里&#xff0c;一直在React生态圈里打转&#xff0c;从Create React App到Next.js&#xff0c;再到尝试自己搭建一套包含身份验证、数据层、API路由的完整应用&#xff0c;那你一定对那…...

基于MCP协议的AI Agent远程SSH安全操作实践指南

1. 项目概述与核心价值最近在折腾AI Agent的开发&#xff0c;发现一个挺有意思的现象&#xff1a;很多开发者都卡在了“如何让AI安全、可控地操作远程服务器”这一步。你可能会想到直接给AI一个SSH私钥&#xff0c;但这无异于把自家大门的钥匙扔给一个还在学习走路的机器人&…...

Apache Burr:用状态机模式构建Python流式应用

1. 项目概述&#xff1a;一个用于构建流式应用的Python框架最近在折腾一些实时数据处理和模型推理的项目&#xff0c;从简单的日志分析到复杂的在线推荐&#xff0c;总感觉现有的工具链要么太重&#xff0c;要么太散。想要一个既能处理流式数据&#xff0c;又能轻松集成机器学习…...

企业级后端四层架构实战:从理论到代码的清晰落地

1. 项目概述&#xff1a;一个四层架构的实战蓝图最近在GitHub上看到一个挺有意思的项目&#xff0c;叫BTawaifi/four-layer-system。光看名字&#xff0c;你可能会觉得这又是一个老生常谈的“四层架构”理论教程&#xff0c;无非是Controller、Service、Repository那套东西。但…...

3步强力清理:Pearcleaner让你轻松解决Mac应用残留文件问题

3步强力清理&#xff1a;Pearcleaner让你轻松解决Mac应用残留文件问题 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾删除Mac应用后&#xff0c;发…...

结构化数字工作空间:提升创意工作效率的目录设计与自动化实践

1. 项目概述&#xff1a;一个为创意工作者量身定制的数字工作空间 如果你是一名设计师、开发者、内容创作者&#xff0c;或者任何需要处理大量数字资产、管理复杂项目流程的创意工作者&#xff0c;那么“Workspace-di-Yivo”这个名字可能会让你眼前一亮。这不仅仅是一个简单的文…...