aboutsummaryrefslogtreecommitdiff
path: root/ndk-gdb
AgeCommit message (Collapse)Author
2015-02-13Fixes to handle adb return value properlyAndrew Hsieh
"adb shell cmd" always return 0 even though when cmd returns non-zero. Fix those instance of adb whose return values are checked to call adb_var_shell* instead. Without this fix, "adb shell test -e /system/bin/app_process32" always return 0 on pre-L devices, and causes ndk-gdb to use the non-existance app_process32 and fail Change-Id: I1e8925dc989009859cf5c02a2fb92655864f1d7b
2015-01-22Three fixes for ndk-gdb and ndk-gdb.py:Alexander Ivchenko
1) Always try to use app_process32/app_process64 to avoid pulling symlinks (this does not work on win hosts). 2) Don't change the name of linker64 when pulling it from the device (otherwise symbols from linker64 are not being loaded in 64-bit case). 3) Always pull app_process32/app_process64 as app_process to avoid inconsistency. Change-Id: I1e4f066b77ee2fc37b879c1a1924b8396921539c Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
2015-01-15Fix ndk-gdb for debugging applications on x86_64Alexander Ivchenko
This patch fixes several issues: 1) Use ro.product.cpu.abilist64 and ro.product.cpu.abilist32 instead of ro.product.cpu.abi and ro.product.cpu.abi2. The latter ones for x86_64 do not contain x86 abi. 2) Pull app_process32 instead pf app_process when debugging 32-bit app on 64-bit device. 3) Pull linker64 for 64-bit. 4) Pull lib64/libc.so for 64-bit. 5) We have to push the gdbserver that matches the ABI of the app AND the ABI of the device, not just the one that matches the ABI of the device. Change-Id: Ibb0f264fdd007cb2a84aad87bcb396d24e2092e7 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
2014-12-09ndk-gdb: add a command-line switch to allow overriding of package nameYu Xiaolei
This is useful when native librares are built inside library projects. Change-Id: Iac4a210a3a3aeb879e2729d0396ad5a42013508d
2014-11-12Remove bashisms in ndk-gdbAndrew Hsieh
Cause of issue b.android.com/73338 with message reads: ../../ndk-gdb: 771: [: armeabi-v7a: unexpected operator Change-Id: I76c7f0c151b5c31166fc6d70d12071efa8500d9a
2014-02-13ndk-gdb: quote variables in test expressionYu Xiaolei
Change-Id: Ic0c3b4b93dee75d010b4eeb8508f72111b4bcff8
2014-02-10Support APP_ABI=armeabi-v7a-hardAndrew Hsieh
Add a new NDK-only ABI armeabi-v7a-hard in order to solve -mfloat-abi=hard issue. 1. Note that this is NDK-only ABI. No known devices support armeabi-v7a-hard, and they can't w/o breaking existing float-abi=softfp code 2. APP_ABI=armeabi-v7a-hard still installs libraries in libs/armeabi-v7a. As a result, armeabi-v7a-hard and armeabi-v7a can't co-exist ("make" will ignore one of the "install"), unless when _NDK_TESTING_ALL_=yes for internal testing (where lib is installed to libs/armeabi-v7a-hard) 3. Both GCC 4.6/4.8 and Clang3.3/3.4 has additional multilib option "-mfloat-abi=hard" to look for libraries in /hard sub-directory. 5be615df32ce970fcccda93cf577e9ce35b1d397 (gcc4.6,4.8) 7e8798057dc5f28b44b5608fd98fff1cba6909a2 (clang3.4) deedd8557b7d82c6931b6942bd39a00127780835 (clang3.3) 4. APP_ABI=all still expand to armeabi,armeabi-v7a,x86,mips Change-Id: I08c26bfa6580c80260185c2fef398848aebd197d
2013-11-19Merge "Debugging for unknown arch."Andrew Hsieh
2013-11-18Merge "Push gdbserver if not found on device."Andrew Hsieh
2013-11-14Debugging for unknown arch.Cole Wang
Change-Id: Ic6f53ac0486db746bce99e9d13288a8d81494f86
2013-11-14Push gdbserver if not found on device.Cole Wang
Change-Id: Idc1d3953509584b08498e33948444087ba6aa481
2013-11-12Fix ndk-build fails in cygwin if NDK package is referenced via symlinkAndrew Hsieh
Fix similar issue in ndk-gdb* as well. Internal BUG ref 11445081 Change-Id: Ia6abb06d066de780be7090ba3aa20425f0cc5559
2013-06-10Move ndk-common.sh to build/tools/David 'Digit' Turner
It doesn't make sense to put it under build/core/ anymore. Change-Id: I3a63ecabd15d4c34c2ba3800b95246f5eeb6a6f3
2013-06-06Merge "ndk-gdb: add "am start -D" support"Andrew Hsieh
2013-04-09Fix ndk-gdb to search compatibile ABI in order of CPU_ABISAndrew Hsieh
Instead of in the order of APP_ABIS, which will miss armeabi-v7a if APP_ABI := armeabi armeabi-v7a (note that armeabi appears first and get matched) ndk-gdb.py looks in the order of CPU_ABIS already. Fixed two bugs (unrelated nonetheless). See https://code.google.com/p/android/issues/detail?id=54033 Change-Id: I4c97e90a552a16598295e0b1597882f7d3c939b8
2012-12-12ndk-gdb: add "am start -D" supportRyan V. Bissell
Make this new behavior the default, and add "--nowait" to revert to the old behavior. See http://code.google.com/p/android/issues/detail?id=41278 Change-Id: I101caddb8c04a5d64ca5c309fa65fd1f8021ff48
2012-09-21Bail out when NDK installation path contains spaceAndrew Hsieh
Check to ensure NDK isn't installed in path containing space. Many NDK scripts aren't ready to handle path with space yet. Change-Id: I1a76a9ff7bb84fd9a5c27f73e17b753c858070e7
2012-08-27Only take the last line of output for ndk-build DUMP_XXXXDavid 'Digit' Turner
This ensures that if Application.mk or Android.mk do print something with $(info ...), it doesn't get injected into the result of DUMP_XXX. See https://groups.google.com/d/msg/android-ndk/-/ew0lTWGr1UEJ for original discussion on android-ndk forum. Change-Id: I4089aa7aa6a003a5953b93625f765b4988b35895
2012-08-07Enhance ndk-gdb to handle list of ABIs in cpu.abi and cpu.abi2Andrew Hsieh
In order for vendor to provide more than two CPU_ABIs, both ro.product.cpu.abi and abi2 may contain multiple comma-delimited ABIs. This scheme is also backward compatible when there is only one or two APIs. Enhance ndk-gdb to handle it. Change-Id: I81f5765a5d51a8a131753828d73919618c0a9d3f
2012-07-27Fix ndk-gdb when APP_ABI contains "all"Andrew Hsieh
"all" in APP_ABI should be expanded into all available ABIs Related issue: http://code.google.com/p/android/issues/detail?id=35392 Change-Id: I0e9f5a5483c4487f501707f44df66b5bf15cebea
2012-07-02Fix ndk-gdb to also pull /system/bin/linkAndrew Hsieh
ndk-gdb should also pull /system/bin/link, so gdb on host can set a breakpoint in __dl_rtld_db_dlactivity and be aware of linker activity (eg. rescan solib symbols when dlopen() is called) Change-Id: Ie98d026a92177a076650665d7c26ac88781621a2
2012-06-29Fixed ndk-gdb to accept device serial which contains spaceAndrew Hsieh
eg. ndk-gdb -s "Novo7 Basic" Change-Id: Id1c57b2c7d6af45c755fc32e320585d0abdfa58c
2012-05-16Pass flags to all adb in ndk-gdbAndrew Hsieh
Fixed an issue where $ADB_FLAGS isn't consistently passed to call $ADB_CMD in ndk-gdb Change-Id: I6d9542f6de8e3802024db4cc4a5348cf8bdcec6c http://code.google.com/p/android/issues/detail?id=31126
2012-02-14Custom output directory support with NDK_OUTDavid 'Digit' Turner
This patch allows the use of the NDK_OUT environment variable to specify a custom output directory for all intermediate generated files (i.e. instead of $PROJECT_PATH/obj). ndk-gdb will pick up the right location if the variable is defined too. Note that final binaries are still placed under $PROJECT_PATH/libs by default since the packaging scripts expect them to be here. This fixes http://code.google.com/p/android/issues/detail?id=25470 Change-Id: I50618df619c13f5208200f8d0902b8e4fe201de8
2011-11-24ndk-gdb: Fix for when the 'adb' path contains spacesDavid 'Digit' Turner
This patch ensures the ndk-gdb works correctly if the "adb" program (either from the path, or from the --adb=<path> option) contains spaces. Change-Id: I6b4c2469d89236ee5adf8edf1eaf05a69a79564e
2011-11-24Fix the use of $@ in all shell scriptsDavid 'Digit' Turner
This patch allows all our development scripts, as well as ndk-gdb to work well when parameters containing spaces are used. The $@ shell variable is very special because it will expand differently if inside a quoted string. What this means is that, while $@ normally corresponds to the list of all parameters to a function or script, we have: $@ -> expands to a single string "$@" -> expands to a series of strings This is important when using them as parameters to other commands for example consider: # Simple function to dump all parameters, one per line. dump () { for ITEM; do echo "$ITEM" done } dump1 () { # this will always print a single line dump $@ } dump2 () { # this will print one line per item dump "$@" } dump1 aaa bbb ccc # prints "aaa bbb ccc" on a single line dump2 aaa bbb ccc # prints three lines: "aaa", "bbb" and "ccc" Generally speaking, one should always use "$@" except in very rare cases (e.g. when called from an eval command). Change-Id: I87ec2a7b078cbe463f0ec0257ecad8fd38835b2e
2011-10-27ndk-gdb: Fix debugging of private servicesDavid 'Digit' Turner
This patch fixes ndk-gdb so it can properly debug an application that has private services. These will appear in the 'ps' output as <package-name>:<service-name>, and the way the extract-pid.awk script worked, were matched against <package-name> incorrectly. + Make extrac-pid.awk usable when custom ROM use a Busybox 'ps' instead of the standard Android toolbox version + Add unit test for extract-pid.awk Change-Id: Ifb38d5bdfd5b648ff468cb3642db3bb64297707d
2011-03-24ndk-gdb: Fixes for Darwin and --project optionDavid 'Digit' Turner
This patch contains several fixes for ndk-gdb: - Allow it to run properly on Darwin, where 'mktemp' will return an error if used without parameters. Note that 'mktemp -t <pattern>' does not work the same on Linux and Darwin, so use an invocation that is supported by all host platforms (Cygwin included). - Ensure that ANDROID_NDK_ROOT is defined as an absolute path, to avoid problems when the script is invoked as in: cd $NDKROOT ./ndk-gdb --project=/path/to/project/ - The _adb_var_shell redirection was buggy and created files named "&1" and "&2" in the current directory for no good reason. Fix for bug 4156117 Change-Id: I8dbd29bd33db808289755055a6ff5c9ccd181bfc
2011-03-16ndk-gdb: More robust error detection for 'adb shell' commands.David 'Digit' Turner
This allows ndk-gdb to properly detects when some adb shell commands fail. This prevents certain errors from incorrectly propagating to later parts of the script. See http://code.google.com/p/android/issues/detail?id=14002 for context. Change-Id: I49e22e397bad5d39a9f002aa41f029d798038254
2010-10-18ndk-gdb: Fix windows invokationDavid 'Digit' Turner
This also simplifies the gdb client invokation by putting the "file" command inside the gdb.setup file, instead of using the command-line. Change-Id: Iaa31dd2afaada8552db0b72baca91ecd16d6ff95
2010-10-08Fix ndk-gdb and add --delay=<seconds> option.David 'Digit' Turner
Fix ndk-gdb to _not_ start the activity unless --start or --launch is used. Add a new option --delay=<seconds> to change the wait delay between the launch of an activity and its attachement with gdbserver. The default delay is also changed from 1 to 2 seconds. Document the system libraries update. Change-Id: Ia7e8c47221e3741bdc2688e750dae366c5426e67
2010-09-14Add easy native debugging support through NDK_DEBUG=1David 'Digit' Turner
"ndk-build NDK_DEBUG=1" will force the build of a debuggable application. This really copies gdbserver to the proper location, as if android:debuggable was set to "true" in the app's manifest. The value of NDK_DEBUG can be 0, 1, true or false, and will override the content of the manifest. The main benefit from this change is that you don't have to edit your manifest file just to rebuilt Change-Id: I3fafb620189ac53a72b492c963832dd0c7f8b7d7
2010-06-07ndk-gdb: fix to work properly with cygwin path madness.David 'Digit' Turner
Change-Id: Ia7e750f9042d4ed93f6cb8193dfc5d4f67857c17
2010-06-04ndk-gdb: fix to work properly with OS X's BSD awkDavid 'Digit' Turner
"gensub()" is a GNUAwk-ism that should not be used. Change-Id: I2df89efc165c84034594b98327921f9461188a76
2010-06-01ndk-gdb: check target device API level + proper filtering of adb shell output.David 'Digit' Turner
Change-Id: I2472ac149e6b6a435a864e7a10109306322b512c
2010-05-06ndk-gdb: Improve detection of common user errors. Clarify some error messages.android-sdk-tools_r6David 'Digit' Turner
Change-Id: If72f42324848823a01cffcad56c304b5c7e46d7d
2010-04-29Add --start, --launch=<name> and --launch-list options to ndk-gdb.David 'Digit' Turner
Move all awk scripts to build/awk/ and rework them a bit Add build/awk/xmlparser.awk to parse XML files into something that is easier to process with awk. Its output is used by several scripts now (extract-debuggable.awk, extract-package-name.awk and the new extract-launchable.awk). Also update documentation. Change-Id: I50507abbb2b438aeea25a4e0521e6bf69ad86603
2010-04-26Add ndk-gdb script to the NDK.David 'Digit' Turner
This is a helper script used to launch a native debugging session. To use it, follow these steps: 1. Make your application debuggable 2. Build the machine code with 'ndk-build' (make APP=<name> is not supported) 3. Build the package with ant or the ADT Eclipse plugin 4. Install it on your device/emulator 5. Launch it 6. Run 'ndk-gdb' from your application project directory. Change-Id: Ie3b0557e70cefa0080075a34ad0ca46bebef3c42 NOTE: To work properly, a modified gdbserver binary must be used (one that binds to Unix sockets instead of TCP ones). Patch upcoming.