| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| | |
Bug: 21886894
(cherry picked from commit 414000ec4d728b5c85f8c6dee4f867fecde59b01)
Change-Id: Iafc32f0e45d26f3aaa2d521b98353e7cede16c6f
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Properly store, pass and restore floating point result.
Bug: 22047833
Change-Id: If5d9efbe63334c9b6353f76ce6e4fe519602482a
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We now correctly pass the returned pointer back onto the release functions.
Bug: 22056708
Change-Id: I1a7300d3a4522a3c81b432ec742ae1c0bd00b51e
(cherry picked from commit b735bd9c04aa291d0a1bdc2c0a094a1a75ad0596)
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Changed lwu to ld
Bug: 21815962
Change-Id: I137e871d9c00f83cd5efc9d3a87fa05e84dc5d23
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
On host, when there is a crash, the code tries to do an unwind
from the signal handler. Under some conditions this can require
a stack larger than 16K, so increase this value to 32K.
The symptom of this is that you get an empty backtrace running
art tests when there is a crash.
Bug: 21949571
(cherry picked from commit e34c71ce21dbc9fac3427df887e90e1311b6fa8e)
Change-Id: Ib1105a3470064d98843bd46f32d4fadb1d20e416
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Only used for the lack of bottom type in the aget-object case
for now. Could be used for more.
bug:21865466
(cherry picked from commit 4824c27988c8eeb302791624bb3ce1d557b0db6c)
Change-Id: I2bb7fe1d4737bd92c1076b5193607d74d8761ee7
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Do not trigger DCHECK aborts for final and abstract classes when
they are used from other classes. Instead issue a soft error that
leads to a runtime failure.
Bug: 21873151
(cherry picked from commit f23f33de8b3e9abd16720e0f48d43d63d41dee16)
Change-Id: Ie5251a176722811b3c74585222874313a53f7e02
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
We were inserting value field after the Object field instead of
the String fields.
Bug: 22043800
Change-Id: Ibaddbd7299562949e32eceb625feac325539e3ce
|
|/ /
| |
| |
| |
| |
| |
| | |
Note that this still allows duplicates.
Bug: 21868011
Change-Id: Ib0e91c816eccfaf3b0dac340c05ffd5dc4df17cc
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Need to copy miranda methods over before we allocate the new vtable
or else we may have stale miranda gc roots.
Bug: 21664466
Change-Id: Ib3e415bb9e7df7abfa18c98fe01f790fa39622dc
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Tries to do a GC for every unique call stack (up to 16 frames).
The goal is to catch moving GC bugs and lock violations without being
rediculously slow. Some tests fail on 64 bits, 32 bit host doesn't
work. N5 is booting.
Added runtime -Xgc options: gcstress and nogcstress.
Bug: 21664466
(cherry picked from commit 310008008c90fea246efd00cb99ee7ded97c5209)
Change-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 21209641
Change-Id: Ib007a30e575e391e2b5bddb816a9d2e82502c7d5
|
|\ \ \
| |/ /
|/| |
| | | |
into mnc-dev
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We must check that all fields are non-final, even for unresolved
classes. Fall back to the dex file for this information.
Bug: 22005084
Bug: https://code.google.com/p/android/issues/detail?id=177694
(cherry picked from commit 68df32091cc79468c81956633e279523b48ea8bf)
Change-Id: If2126d1be5dccadbbedcdccabde7398688d6e5ca
|
|/ /
| |
| |
| |
| | |
Bug: 21209641
Change-Id: I731a920c02f29f0321f2077093516aaa0f8d782f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make the verifier fail such classes.
Bug: 21873151
(cherry picked from commit 507cc6f83bf6379728f2dd20391f2ed5fbfe6371)
Change-Id: I217f3d71f44bccdcee7ca830e092c807928bed39
|
| |
| |
| |
| |
| |
| |
| |
| | |
bug:21867457
(cherry picked from commit 66389fbeb41c981648bb2e1e7e2f43089f095591)
Change-Id: Id01edeb871f6bc59518eb341e5b76f021cfdfe06
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't assume that the receiver is expected. This was writing out
of bounds (or triggering a DCHECK).
Bug: 21817284
Bug: 21872240
Bug: https://code.google.com/p/android/issues/detail?id=176571
Bug: https://code.google.com/p/android/issues/detail?id=176572
(cherry picked from commit ef0b1a1dbc99fe7c92f9598cbfc164763c1b66d7)
Change-Id: I7cad2c1dfc39feb0b1b4660deeb43afdcb844ba3
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Check the count in vararg instructions before filling the temp
array. Avoids a DCHECK.
Bug: 21869663
Bug: 20170976
(cherry picked from commit 29498a23bcfe47a7134552aacad5524ecb484a49)
Change-Id: I1ff93502ab84c5967ad54d1b50dba517da791637
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dex2oat can already generate unwinding and symbol information which
allows tools to create backtrace of mixed native and Java code.
This is a cherry pick from aosp/master which fixes several issues.
Most notably:
* It enables generation of ELF-64 on 64-bit systems (in dex2oat, C
compilers already produce ELF-64). Libunwind requires ELF-64 on
64-bit systems for backtraces to work.
* It enables loading of ELF files with dlopen. This is required for
libunwind to be able to generate backtrace of current process (i.e.
the process requesting backtrace of itself).
* It adds unit test to test the above (32 vs 64 bit, in-proces vs
out-of-process, application code vs framework code).
* Some other fixes or clean-ups which should not be of much
significance but which are easier to include to make the
important CLs cherry-pick cleanly.
This is squash of the following commits from aosp/master:
7381010 ART: CFI Test
e1bbed2 ART: Blacklist CFI test for non-compiled run-tests
aab9f73 ART: Blacklist CFI test for JIT
4437219 ART: Blacklist CFI test for Heap Poisoning
a3a49fe Switch to using ELF-64 for 64-bit architectures.
297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture.
24981a1 Set correct size of PT_PHDR ELF segment.
1a146bf Link .dynamic to .dynstr
67a0653 Make some parts of ELF more (pointer) aligned.
f50fa82 Enable 64-bit CFI tests.
49e1fab Use dlopen to load oat files.
5dedb80 Add more logging output for dlopen.
aa03870 Find the dlopened file using address rather than file path.
82e73dc Release dummy MemMaps corresponding to dlopen.
5c40961 Test that we can unwind framework code.
020c543 Add more log output to the CFI test.
88da3b0 ART: Fix CFI test wrt/ PIC
a70e5b9 CFI test: kill the other process in native code.
ad5fa8c Support generation of CFI in .debug_frame format.
90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write.
97dabb7 Fix build breakage in dwarf_test.
388d286 Generate just single ARM mapping symbol.
f898087 Split .oat_patches to multiple sections.
491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again).
8363c77 Add --generate-debug-info flag and remove the other two flags.
461d72a Generate debug info for core.oat files.
Bug: 21924613
Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we read from componentClass after allocating the array.
Bug: 21783443
(cherry picked from commit 52ea33b10370d60d4ce877aec529626537b7813b)
Change-Id: I5283982edab479434e27416509e1436b4176fe01
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Needed to restore the refs.
(cherry picked from commit 9346ff0cfad6344d0bf4eaa69362dbe1987ac054)
Bug: 21907554
Change-Id: I562906dff07dcaa78dfb39646ba9ab35a5f56c6c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Fixes return type of StackedShadowFrameRecord::GetType
- Makes StackedShadowFrameType an enum class (scoped enum)
- Moves DeoptimizationReturnValueRecord and StackedShadowFrameRecord
to thread.cc file and use forward declaration in thread.h header
- Fixes tools/generate-operator-out.py for scoped enum classes.
Bug: 20845490
(cherry picked from commit f795869da0a1fa006fdcdacd8afb6149a63fc1a7)
Change-Id: I6b67e288b1db563699161e58ec2e2330d42dd8f5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Handle nested deoptimization cases. Create a stacked shadow frame
records to keep track of deoptimization shadow frames. Shadow frames
under construction can be tracked in the same stack.
Bug: 20845490
(cherry picked from commit 1f2d3ba6af52cf6f566deb38b7e07735c9a08fb6)
Change-Id: I768285792c29e7c3cfcd21e7a2600802506024d8
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was some missing handles around mirror::Class*.
(cherry picked from commit 05b7226787f1470ad93f6f632fed60f70bc8631e
Bug: 21898408
Change-Id: Icb754074dfb469473101d20d6873a5bc3274abc5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Optimizing and the interpreter wrongly assumed that a PackedSwitch
always has at least one target. This patch removes the corresponding
DCHECKs and adds a regression test case.
This is a resubmission of CL I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e
Bug: 21863783
Change-Id: I04e6e124bdd16591ba27c79490e6ce183c36b691
(cherry picked from commit 2ef645ba50544b879a82ea30e606f18c9af98917)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix a bug where the CompilerDriver was erroneously reporting
classes as initialized during AOT compilation when they were
not guaranteed to be initialized at runtime.
This fix prevents the Quick compiler from inlining calls to
static methods in classes that are not guaranteed to be
initialized, so that the runtime performs the initialization
required for correctness.
Bug: 21847756
(cherry picked from commit 07785bb98dc8bbe192970e0f4c2cafd338a8dc68)
Change-Id: I60c7361cb6e8f51be20a3cbfcae19f3240bdfbed
|
| |
| |
| |
| |
| | |
Bug: 21872507
Change-Id: I20f9920e4a12511ce498c252bca955d82a4f4102
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libart.so is built with flag -fvisibility=protected
which complicates setting breakpoints on art_sigsegv_fault.
According to the GCC manual "Protected visibility indicates
that the symbol will be placed in the dynamic symbol table,
but that references within the defining module will bind
to the local symbol.". This implies that a breakpoint on
a protected symbol will not be hit.
Without this change gdbclient with ART debugging enabled
doesn't break at art_sigsegv_fault as expected.
Bonus build fix included (commit c37769b6) :
Fix lint error.
Blank line at the start of a code block.
(cherry picked from commit f775bab533cd385c00ee30b56bdcb6f962fc5239)
(cherry picked from commit c37769b63faf7b120a6ed80f5cfb92667f5090c4)
bug: 21893559
Change-Id: Ie388f027f717a7bd2351a0163a38e50d3acbba8f
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 21815962
Change-Id: Id589f4a49349d817d3dc9128109048292fe0ed33
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
We must use special getter/setter for types smaller than int:
boolean, byte, char and short. However, JDWP still requires to treat:
- int and float as 32-bit values
- long and double as 64-bit values
Bug: 21746739
(cherry picked from commit 05c26b30843dd8283c703356e75d51726e8b8e3a)
Change-Id: I2d667291974e191f2c9b10311ce02435b902dd0c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The JDWP thread used to wait for the result of a method invocation
running in an event thread. But doing that prevents the JDWP thread
from processing incoming commands from the debugger if the event
thread gets suspended by a debug event occurring in another thread.
In Android Studio (or another IDE), this leads to the debugger being
blocked (with the famous message "Waiting until last debugger command
completes" of Android Studio / IntelliJ) because it is actually
waiting for the reply of its latest command while the JDWP thread
cannot process it.
This CL changes the way invoke commands (ClassType.InvokeCommand,
ClassType.NewInstance and ObjectReference.InvokeCommand) are handled
in the ART runtime.
The JDWP thread no longer waits for the event thread to complete the
method invocation. It now simply waits for the next JDWP command to
process. This means it does not send any reply for invoke commands,
except if the information given by the debugger is wrong. In this
case, it still sends a reply with the appropriate error code.
The event thread is now responsible for sending the reply (containing
the result and the exception object of the invoked method) before
going back to the suspended state.
In other words, we add special handling for invoke commands so they
are handled asynchronously while other commands remained handled
synchronously. In the future, we may want to handle all commands
asynchronously (using a queue of reply/event for instance) to remove
the special handling code this CL is adding.
Now the JDWP thread can process commands while a thread is invoking
a method, it is possible for the debugger to detach (by sending a
VirtualMachine.Dispose command) before the invocation completes. In
that situation, we must not suspend threads again (including the
event thread that executed the method) because they would all remain
suspended forever.
Also minor cleanup of the use of JDWP constants and update comments.
Bug: 21515842
Bug: 18899981
(cherry picked from commit cbc5064ff05179b97b416f00ca579c55e38cd7d9)
Change-Id: I8d31006043468913ee8453212e6d16e11fcfe4ea
|
|\
| |
| |
| | |
mnc-dev
|
| |
| |
| |
| | |
Change-Id: I720e2cc4acd94e367dae4a21c13aa90a3e30b7cc
|
| |
| |
| |
| |
| |
| |
| | |
Added handle to fix the bug.
Bug: 21638351
Change-Id: I1c3abea33aa825d3a28c1fc5cb415508686ad93e
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rely on BaseDexClassLoader to provide correct LD_LIBRARY_PATH
Bug: http://b/21647354
Bug: http://b/21667767
Bug: http://b/8076853
Change-Id: I8c690a2578d5de43be9da964fa5a4c0246aa6eec
|
|\ \ \
| |_|/
|/| | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we recreated this intern table during runtime startup.
This added 50-100ms of boot time.
Fixed bug where we didn't copy over hashcodes into the image.
Deleted some stale code.
Bug: 20727525
Bug: 19569780
Change-Id: I08959e9aa2a73cedb52f393033e2ffea3a26e76b
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| | |
So GCs before a zygote fork won't be attributed to an app.
Bug: 21491908
Change-Id: Ib37bc587e0f039ef8faeabe63dec19de49501863
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reg $v0 is being clobbered on using
SETUP_REFS_ONLY_CALLEE_SAVE_FRAME inside instrumentation_exit()
trampoline, when falling through from instrumentation_entry().
To fix, use $t1 for ArtMethod* fetching inside SETUP_ macros.
Also fix some unrelated comment errors.
Bug: 21555893
(cherry picked from commit 84bc06e30ba12c3ff07e577c52b63b9df162af7e)
Change-Id: I4ab169f75988c4f0d924416a30196f21c1a043a3
|