android手機調試native c代碼

來源:互聯網
上載者:User

環境:

CentOS 5.4

[root@localhost bin]# cat /etc/redhat-release
CentOS release 5.4 (Final)
[root@localhost bin]# uname -a
Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux

VMware 9.0.1 build-894247

一、前期準備工作:

1、下載ndk

http://dl.google.com/android/ndk/android-ndk-r9c-linux-x86.tar.bz2

2、下載adt

http://dl.google.com/android/adt/adt-bundle-linux-x86-20131030.zip

官網地址 http://developer.android.com/sdk/index.html

不明白什麼是adt看這裡

http://blog.csdn.net/aizquan/article/details/8974750

完成後,將以上兩個東西解壓到虛擬機器上。


二、設定環境變數,將如下路徑加進PATH

android-ndk-r9c
adt-bundle-linux-x86-20131030/sdk/platform-tools
adt-bundle-linux-x86-20131030/sdk/tools


三、手機上運行gdbserver(這一步可能比較費事,待補充)

將gdbserver push到手機上。並用adb啟動gdbserver。留意版本號碼!!

130|shell@android:/ $ gdbserver --version
GNU gdbserver (GDB) 7.3.1-gg2
Copyright (C) 2011 Free Software Foundation, Inc.
gdbserver is free software, covered by the GNU General Public License.
This gdbserver was configured as "arm-eabi-linux"
shell@android:/ $ gdbserver 192.168.100.184:1234 /data/test
Process /data/test created; pid = 1877
Listening on port 1234



四、在虛擬機器上執行

[root@localhost bin]# cd /home/randy/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin
[root@localhost bin]# ./arm-linux-androideabi-gdb /mnt/hgfs/CodeBlocks/TTS/arm-linux/test 紅色部分是你的可執行檔(交叉編譯得到的)

GNU gdb (GDB) 7.3.1-gg2 版本號碼要與gdbserver一致
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
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 "--host=x86_64-linux-gnu --target=arm-linux-android".
For bug reporting instructions, please see:
...
Reading symbols from /mnt/hgfs/CodeBlocks/TTS/arm-linux/test...done.
(gdb) shell adb forward tcp:1234 tcp:1234
(gdb) target remote 127.0.0.1:1234
Remote debugging using 127.0.0.1:1234
0x00008120 in _start ()
(gdb) bt
#0 0x00008120 in _start ()
(gdb) b main.c:42
Breakpoint 1 at 0x8290: file src/main.c, line 42.
(gdb) c
Continuing.


Breakpoint 1, main (argc=1, argv=0xbefc1ad4) at src/main.c:42
42 storePunctuationAndWord(cStringToExamine);
(gdb)


補充說明下交叉編譯命令的選項

[root@localhost TTS]# arm-linux-androideabi-gcc -g -o arm-linux/test src/main.c src/Table.c src/WordSegment.c src/TTS.c -L /usr/local/arm-linux/lib -static -l charset -l iconv -I /usr/local/arm-linux/include -I ./include

arm-linux-androideabi-gcc交叉編譯器,在android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin下

-g 編譯出的可執行檔帶偵錯符號

-o arm-linux/test最終可執行檔叫test

src/main.c src/Table.c src/WordSegment.c src/TTS.c 幾個源檔案

-L /usr/local/arm-linux/lib -static -l charset -l iconv -I /usr/local/arm-linux/include -I ./include 依賴的動態庫和標頭檔路徑




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.