@@ -4,7 +4,7 @@ use android_build_tools::config::Config;
4
4
use android_build_tools:: error:: NdkError ;
5
5
use android_build_tools:: ndk:: Ndk ;
6
6
use android_build_tools:: target:: Target ;
7
- use cargo_subcommand:: { Artifact , CrateType , Subcommand } ;
7
+ use cargo_subcommand:: { Artifact , CrateType , Profile , Subcommand } ;
8
8
use std:: path:: PathBuf ;
9
9
use std:: process:: Command ;
10
10
@@ -65,6 +65,7 @@ impl<'a> ApkBuilder<'a> {
65
65
version_name : self . manifest . version . clone ( ) ,
66
66
version_code : 1 ,
67
67
target_name : artifact. name ( ) . to_string ( ) ,
68
+ debuggable : * self . cmd . profile ( ) == Profile :: Dev ,
68
69
assets : self . manifest . assets . clone ( ) ,
69
70
res : self . manifest . res . clone ( ) ,
70
71
} ;
@@ -97,6 +98,20 @@ impl<'a> ApkBuilder<'a> {
97
98
apk. start ( ) ?;
98
99
Ok ( ( ) )
99
100
}
101
+
102
+ pub fn gdb ( & self , artifact : & Artifact ) -> Result < ( ) , NdkError > {
103
+ self . run ( artifact) ?;
104
+ let abi = self . ndk . detect_abi ( ) ?;
105
+ let target_dir = self . build_dir . join ( artifact) ;
106
+ let jni_dir = target_dir. join ( "jni" ) ;
107
+ std:: fs:: create_dir_all ( & jni_dir) ?;
108
+ std:: fs:: write (
109
+ jni_dir. join ( "Android.mk" ) ,
110
+ format ! ( "APP_ABI=\" {}\" \n TARGET_OUT=\" \" \n " , abi. android_abi( ) ) ,
111
+ ) ?;
112
+ Command :: new ( "ndk-gdb" ) . current_dir ( target_dir) . status ( ) ?;
113
+ Ok ( ( ) )
114
+ }
100
115
}
101
116
102
117
fn cargo_env_target_cfg ( tool : & str , target : & str ) -> String {
0 commit comments