Age | Commit message (Collapse) | Author |
|
"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
|
|
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>
|
|
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>
|
|
This is useful when native librares are built inside library projects.
Change-Id: Iac4a210a3a3aeb879e2729d0396ad5a42013508d
|
|
Cause of issue b.android.com/73338 with message reads:
../../ndk-gdb: 771: [: armeabi-v7a: unexpected operator
Change-Id: I76c7f0c151b5c31166fc6d70d12071efa8500d9a
|
|
Change-Id: Ic0c3b4b93dee75d010b4eeb8508f72111b4bcff8
|
|
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
|
|
|
|
|
|
Change-Id: Ic6f53ac0486db746bce99e9d13288a8d81494f86
|
|
Change-Id: Idc1d3953509584b08498e33948444087ba6aa481
|
|
Fix similar issue in ndk-gdb* as well.
Internal BUG ref 11445081
Change-Id: Ia6abb06d066de780be7090ba3aa20425f0cc5559
|
|
It doesn't make sense to put it under build/core/ anymore.
Change-Id: I3a63ecabd15d4c34c2ba3800b95246f5eeb6a6f3
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
"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
|
|
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
|
|
eg. ndk-gdb -s "Novo7 Basic"
Change-Id: Id1c57b2c7d6af45c755fc32e320585d0abdfa58c
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
"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
|
|
Change-Id: Ia7e750f9042d4ed93f6cb8193dfc5d4f67857c17
|
|
"gensub()" is a GNUAwk-ism that should not be used.
Change-Id: I2df89efc165c84034594b98327921f9461188a76
|
|
Change-Id: I2472ac149e6b6a435a864e7a10109306322b512c
|
|
Change-Id: If72f42324848823a01cffcad56c304b5c7e46d7d
|
|
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
|
|
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.
|