Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
l_b__
ODP, PDF
20,102 views
Android デバッグ小ネタ
第27回横浜Androidプラットフォーム部勉強会発表資料です
Technology
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Downloaded 34 times
1
/ 17
2
/ 17
3
/ 17
4
/ 17
5
/ 17
6
/ 17
7
/ 17
8
/ 17
9
/ 17
10
/ 17
11
/ 17
12
/ 17
13
/ 17
14
/ 17
15
/ 17
16
/ 17
17
/ 17
More Related Content
PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
by
VirtualTech Japan Inc.
PDF
Android起動周りのノウハウ
by
chancelab
PDF
今話題のいろいろなコンテナランタイムを比較してみた
by
Kohei Tokunaga
PDF
WebAssemblyのWeb以外のことぜんぶ話す
by
Takaya Saeki
PDF
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
by
Yahoo!デベロッパーネットワーク
PDF
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
by
Insight Technology, Inc.
PDF
[232] 성능어디까지쥐어짜봤니 송태웅
by
NAVER D2
PDF
20分でわかるgVisor入門
by
Shuji Yamada
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
by
VirtualTech Japan Inc.
Android起動周りのノウハウ
by
chancelab
今話題のいろいろなコンテナランタイムを比較してみた
by
Kohei Tokunaga
WebAssemblyのWeb以外のことぜんぶ話す
by
Takaya Saeki
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
by
Yahoo!デベロッパーネットワーク
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
by
Insight Technology, Inc.
[232] 성능어디까지쥐어짜봤니 송태웅
by
NAVER D2
20分でわかるgVisor入門
by
Shuji Yamada
What's hot
PPTX
PHPとシグナル、その裏側
by
do_aki
PDF
Reconnaissance of Virtio: What’s new and how it’s all connected?
by
Samsung Open Source Group
PDF
DPDKによる高速コンテナネットワーキング
by
Tomoya Hibi
PPTX
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
PDF
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
PDF
大規模DCのネットワークデザイン
by
Masayuki Kobayashi
PDF
OpenID Connect入門
by
土岐 孝平
PDF
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
by
VirtualTech Japan Inc.
PDF
AndroidとSELinux
by
android sola
PDF
Podman rootless containers
by
Giuseppe Scrivano
PDF
IPv4/IPv6 移行・共存技術の動向
by
Yuya Rin
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PPTX
NVMCT #1 ~今さら聞けないSSDの基本~
by
Fixstars Corporation
PDF
Open vSwitchソースコードの全体像
by
Sho Shimizu
PDF
他山の石勉強会 DRBD編
by
tkomachi
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PDF
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
by
Akira Nakagawa
PDF
initramfsについて
by
Kazuhiro Nishiyama
PDF
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
by
Shohei Okada
PDF
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
by
Thomas Graf
PHPとシグナル、その裏側
by
do_aki
Reconnaissance of Virtio: What’s new and how it’s all connected?
by
Samsung Open Source Group
DPDKによる高速コンテナネットワーキング
by
Tomoya Hibi
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
大規模DCのネットワークデザイン
by
Masayuki Kobayashi
OpenID Connect入門
by
土岐 孝平
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
by
VirtualTech Japan Inc.
AndroidとSELinux
by
android sola
Podman rootless containers
by
Giuseppe Scrivano
IPv4/IPv6 移行・共存技術の動向
by
Yuya Rin
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
NVMCT #1 ~今さら聞けないSSDの基本~
by
Fixstars Corporation
Open vSwitchソースコードの全体像
by
Sho Shimizu
他山の石勉強会 DRBD編
by
tkomachi
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
by
Akira Nakagawa
initramfsについて
by
Kazuhiro Nishiyama
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
by
Shohei Okada
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
by
Thomas Graf
Viewers also liked
PDF
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
by
Yusuke HIDESHIMA
PDF
Android,Brillo,ChromeOS
by
l_b__
ODP
Stagefright入門
by
l_b__
ODP
Yapf2013
by
l_b__
PDF
Open binder
by
l_b__
PDF
Eclipseを使ったandroid nativeデバッグ
by
l_b__
PDF
JellyBeanのソースをとりあえず眺めてみた(手抜き)
by
l_b__
PDF
ABS2015 のセッション紹介
by
l_b__
PDF
PF開発に使えるAOSPのツール達
by
l_b__
PDF
Stagefright入門
by
l_b__
PDF
Binderのはじめの一歩とAndroid
by
l_b__
PDF
Androidの新ビルドシステム
by
l_b__
ODP
Intentの概要
by
l_b__
PPTX
20150909 日本androidの会9月定例講演資料
by
ak_shio_555
PDF
Interactive UI with UniRx
by
Yuto Iwashita
PDF
「ずいぶんとダサいライティングを使っているのね」〜UniRxを用いた物理ベースライティング制御〜
by
Toru Nayuki
PPTX
若輩エンジニアから見たUniRxを利用したゲーム開発
by
Hirohito Morinaga
PDF
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
by
MakotoItoh
PDF
ADB(Android Debug Bridge): How it works?
by
Tetsuyuki Kobayashi
PDF
Unity scene file collaboration
by
Noam Gat
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
by
Yusuke HIDESHIMA
Android,Brillo,ChromeOS
by
l_b__
Stagefright入門
by
l_b__
Yapf2013
by
l_b__
Open binder
by
l_b__
Eclipseを使ったandroid nativeデバッグ
by
l_b__
JellyBeanのソースをとりあえず眺めてみた(手抜き)
by
l_b__
ABS2015 のセッション紹介
by
l_b__
PF開発に使えるAOSPのツール達
by
l_b__
Stagefright入門
by
l_b__
Binderのはじめの一歩とAndroid
by
l_b__
Androidの新ビルドシステム
by
l_b__
Intentの概要
by
l_b__
20150909 日本androidの会9月定例講演資料
by
ak_shio_555
Interactive UI with UniRx
by
Yuto Iwashita
「ずいぶんとダサいライティングを使っているのね」〜UniRxを用いた物理ベースライティング制御〜
by
Toru Nayuki
若輩エンジニアから見たUniRxを利用したゲーム開発
by
Hirohito Morinaga
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
by
MakotoItoh
ADB(Android Debug Bridge): How it works?
by
Tetsuyuki Kobayashi
Unity scene file collaboration
by
Noam Gat
Similar to Android デバッグ小ネタ
PDF
Cybozu Tech Conference 2016 バグの調べ方
by
MITSUNARI Shigeo
PDF
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
PDF
Dive into RTS - another side
by
Kiwamu Okabe
KEY
SEAndroid -AndroidのアーキテクチャとSE化について-
by
Hiromu Yakura
PDF
Outsmarting Smartphone Apps 2
by
Takahiro Yoshimura
PDF
StackExchangeで見たシステムプログラミング案件
by
yaegashi
PDF
Programming camp 2010 debug hacks
by
Hiro Yoshioka
PPTX
Serviceability Toolsの裏側
by
Yasumasa Suenaga
PDF
Debug Hacks at Security and Programming camp 2011
by
Hiro Yoshioka
PPTX
Java 9で進化する診断ツール
by
Yasumasa Suenaga
PDF
Outsmarting Smartphone Apps 2
by
Takahiro Yoshimura
PPTX
iPhoneのデバッグハック
by
Eiji Kamiya
PDF
Let's play with Goldfish
by
Tetsuyuki Kobayashi
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
by
ken_kitahara
PDF
Di shen pacsec_jp-final
by
PacSecJP
PDF
ソフトウェア工学2023 10 デバッグ
by
Toru Tamaki
PPTX
Infer:人工知能を使った静的コードチェック
by
Tetsuya Hasegawa
PDF
Inside Android Security
by
FFRI, Inc.
PPTX
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
by
NTT DATA Technology & Innovation
PDF
How security broken? - Androidの内部構造とマルウェア感染の可能性
by
FFRI, Inc.
Cybozu Tech Conference 2016 バグの調べ方
by
MITSUNARI Shigeo
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
Dive into RTS - another side
by
Kiwamu Okabe
SEAndroid -AndroidのアーキテクチャとSE化について-
by
Hiromu Yakura
Outsmarting Smartphone Apps 2
by
Takahiro Yoshimura
StackExchangeで見たシステムプログラミング案件
by
yaegashi
Programming camp 2010 debug hacks
by
Hiro Yoshioka
Serviceability Toolsの裏側
by
Yasumasa Suenaga
Debug Hacks at Security and Programming camp 2011
by
Hiro Yoshioka
Java 9で進化する診断ツール
by
Yasumasa Suenaga
Outsmarting Smartphone Apps 2
by
Takahiro Yoshimura
iPhoneのデバッグハック
by
Eiji Kamiya
Let's play with Goldfish
by
Tetsuyuki Kobayashi
FridaによるAndroidアプリの動的解析とフッキングの基礎
by
ken_kitahara
Di shen pacsec_jp-final
by
PacSecJP
ソフトウェア工学2023 10 デバッグ
by
Toru Tamaki
Infer:人工知能を使った静的コードチェック
by
Tetsuya Hasegawa
Inside Android Security
by
FFRI, Inc.
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
by
NTT DATA Technology & Innovation
How security broken? - Androidの内部構造とマルウェア感染の可能性
by
FFRI, Inc.
Android デバッグ小ネタ
1.
横浜 Android プラットフォーム部
第 27 回勉強会 Android のデバッグ小ネタ 2012/12/22 @l_b__
2.
リブートバグ ●
端末のリブート、困りますよね ● リブートの原因は HW のこともあるけれど、 大抵 SW ● SW 要因の場合、大きな原因は 2 つでした
3.
リブート要因 ●
フレームワーク部分処理で無限ループ / デッ ドロックで処理が止まり、 Watchdog から リブート ● Init で起動される System 権限のサーバ類が例 外で落ちてリブート
4.
Watchdog からリブート ●
どこで処理が止まっているかを探しましょう ● ANR を出していることが多いので、その辺り の時刻のログを取得 ● bugreport を出力してチェック
5.
bugreport ●
端末内の様々な状態をまとめて取得するコマンド ● # adb bugreport で標準出力に出力される – リダイレクトしてファイルに保存しましょう ● 内部処理として、 dumpstate サービスに接続して、情 報を取得 ● JelleyBean ではソースは – bugreport frameworks/base/cmds/bugreport – dumpstate frameworks/native/cmds/dumpstate
6.
bugreport はどんな情報が ? ●
カーネルから取得した CPU やメモリの情報 ● ログ (main/events/system/radio) を一通り ● ANR のトレース ● ネットワークの情報 ● システム設定 DB の内容 ● システムプロパティ ● ファイルシステムの状態 ● パッケージの情報 ● Binder の情報 ● Framework サービスの情報 ● 実行中アプリのアクティビティ、サービス、プロバイダの情報
7.
問題箇所を探すには ? ●
VM TRACES JUST NOW の箇所を確認しま しょう ● Bugreport 実行時や ANR 発生した時の VM ス タックトレースを出力 ● 問題が発生していた時の実行メソッドを特定 できる
8.
VM TRACES JUST
NOW ● ------ VM TRACES JUST NOW (/data/anr/traces.txt.bugreport: 2012-08-26 06:35:25) ------ ● ----- pid 124 at 2012-08-26 06:35:23 ----- ● Cmd line: /system/bin/surfaceflinger ● "surfaceflinger" sysTid=124 ● #00 pc 0000cb60 /system/lib/libc.so (__ioctl+8) ● #01 pc 00027f95 /system/lib/libc.so (ioctl+16) ● #02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool) +124) ● #03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool) +154) ● #04 pc 000007ed /system/bin/surfaceflinger
9.
VM TRACES JUST
NOW ● ----- pid 25855 at 2012-08-26 06:35:25 ----- ● Cmd line: jp.r246.twicca ● "AsyncTask #5" prio=5 tid=15 WAIT ● | group="main" sCount=1 dsCount=0 obj=0x41d56710 self=0x662a45e0 ● | sysTid=25883 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1714047536 ● | schedstat=( 686456000 421807000 1632 ) utm=58 stm=10 core=0 ● at java.lang.Object.wait(Native Method) ● - waiting on <0x41d44670> (a java.lang.VMThread) held by tid=15 (AsyncTask #5) ● at java.lang.Thread.parkFor(Thread.java:1231) ● at sun.misc.Unsafe.park(Unsafe.java:323) ● at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) ● at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022) ● at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413) ● at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009) ● at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069) ● at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) ● at java.lang.Thread.run(Thread.java:856)
10.
問題箇所を探すには ? ●
赤丸の箇所がダンプ取得時のプロセスが実行 していたメソッド ● 想定される処理待ち以外で止まっているプロ セスがないかをチェック
11.
例外でリブート ●
logcat で例外発生時のスタックトレースを確 認 ● Java の場合は素直にスタックトレースを見れ ば大体分かります ● Native の場合は ...
12.
Native Stacktrace の例 ●
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ● Build fingerprint: ‘generic/myboard_xxx/xxx/myplatform:2.1/ERD79/eng.arunks.20100726.14330 ● 8:eng/test-keys’ ● pid: 1138, tid: 1138 >>> /system/bin/bluetoothd <<< ● signal 11 (SIGSEGV), fault addr deadbaad ● r0 00000000 r1 afe13369 r2 00000027 r3 00000054 ● r4 afe3ae08 r5 00000000 r6 00000000 r7 0000a000 ● r8 00000000 r9 00000000 10 00000000 fp 00000000 ● ip 00002ed8 sp bec782d8 lr deadbaad pc afe10a20 cpsr 60000030 ● #00 pc 00010a20 /system/lib/libc.so ● #01 pc 0000b332 /system/lib/libc.so ● #02 pc 0000ca62 /system/lib/bluez-plugin/audio.so ● #03 pc 0000d1ce /system/lib/bluez-plugin/audio.so ● #04 pc 0000e0ba /system/lib/bluez-plugin/audio.so
13.
Native Stacktrace の例 ●
#05 pc 0002f9a2 /system/lib/libbluetoothd.so ● #06 pc 00026806 /system/lib/libbluetoothd.so ● #07 pc 00026986 /system/lib/libbluetoothd.so ● #08 pc 0002800c /system/lib/libbluetoothd.so ● #09 pc 00028b72 /system/lib/libbluetoothd.so ● #10 pc 0001891a /system/lib/libbluetoothd.so ● #11 pc 0000c228 /system/lib/libc.so ● code around pc: ● afe10a10 f8442001 4798000c e054f8df 26002227 ● afe10a20 2000f88e ef2cf7fb f7fd2106 f04fe80a ● afe10a30 91035180 460aa901 96012006 f7fc9602 ● code around lr: ● ...
14.
発生箇所を特定する ●
#00 pc 00010a20 /system/lib/libc.so の箇所から、 libc.so の 0x00010a20 にて signal 11 (SIGSEGV), fault addr deadbaad が発生していることが分かります
15.
発生箇所を特定する ●
addr2line でどの関数で発生しているかを チェック ● JellyBean の場合、 – prebuilts/gcc/linux-x86/arm/arm-eabi- 4.6/bin/arm-eabi-addr2line
16.
発生箇所を特定する ●
arm-eabi-addr2line -f -e (path to libc.so) 0x00010a20 ● これで発生関数が特定できます ● out/target/product/(Board name)/symbols 以 下のデバッグシンボル付きライブラリを指 定すれば発生行まで特定できます ● 後はスタックを上にたどれば作成した箇所の どこで問題が発生しているか特定できます
17.
まとめ ●
ログが取れれば以上の方法で原因追跡できま す ● 大体リブートバグの 9 割くらいはこれで追え るかな ● 一番難しいのはバグを再現してログを取るこ とです 以上
Download