Age | Commit message (Collapse) | Author |
|
strcpy can potentially cause a buffer overflow if the length of options
exceeds the allocated buffer size. strlen(options) + 1 ensures that the
buffer is large enough to hold the string options plus the null
terminator
Change-Id: Id04367df0eef575da258ed1c917aa879b2966013
|
|
Replaced the use of strcpy() with memcpy() for safer handling of string
copying. there was no actual buffer overflow, this change ensures that
memory copying is done explicitly with a specified size which prevents
potential issues that can arise from unsafe string handling. This
improves the code safety by providing better control over memory
boundaries
Change-Id: I9d91f6af79ffe1509342868b1e1a9a77b4a4d8f0
|
|
`__mutex_base` was a libc++ implementation detail, and it was deleted
in favor of a handful of headers in a `__mutex` sub-directory. Use the
public <mutex> include instead.
Bug: 175635923
Test: m libforceredefine libforceredefined
Change-Id: Ic91eeea1957996ce145cb02d54816af19d8efc3b
|
|
Bug: 169680875
Test: mmm art
Change-Id: Ic0cc320891c42b07a2b5520a584d2b62052e7235
|
|
Test: m tidy-art
Bug: 213953102
Change-Id: I206a44aa4c1f3f2f91e4f94831d042e903c71c65
|
|
Test: m tidy-art
Bug: 213953102
Change-Id: Ibe16d59559d96e0a4562ecd2af1dffa28bafc068
|
|
To be able to do changes in art_defaults to affect all native code in
the ART module.
(Note that art_debug_defaults does not imply art_defaults.)
Test: Presubmits
Bug: 172480615
Change-Id: Ib1a43358fe0f85f601a8606969a10d50a25f0b31
|
|
Added SPDX-license-identifier-Apache-2.0 to:
adbconnection/Android.bp
benchmark/Android.bp
build/Android.bp
build/Android.cpplint.mk
build/Android.gtest.mk
build/apex/Android.bp
build/boot/Android.bp
build/sdk/Android.bp
cmdline/Android.bp
compiler/Android.bp
dalvikvm/Android.bp
dex2oat/Android.bp
dexdump/Android.bp
dexlayout/Android.bp
dexlist/Android.bp
dexoptanalyzer/Android.bp
disassembler/Android.bp
dt_fd_forward/export/Android.bp
imgdiag/Android.bp
libartbase/Android.bp
libartpalette/Android.bp
libartservice/Android.bp
libartservice/tests/Android.bp
libarttools/Android.bp
libdexfile/Android.bp
libelffile/Android.bp
libnativebridge/Android.bp
libnativebridge/tests/Android.bp
libnativeloader/Android.bp
libnativeloader/test/Android.bp
libnativeloader/test/Android.mk
libprofile/Android.bp
oatdump/Android.bp
odrefresh/Android.bp
perfetto_hprof/Android.bp
profman/Android.bp
runtime/Android.bp
simulator/Android.bp
test/001-HelloWorld/Android.bp
test/001-Main/Android.bp
test/002-sleep/Android.bp
test/004-InterfaceTest/Android.bp
test/004-SignalTest/Android.bp
test/004-UnsafeTest/Android.bp
test/004-checker-UnsafeTest18/Android.bp
test/006-args/Android.bp
test/007-count10/Android.bp
test/009-instanceof/Android.bp
test/010-instance/Android.bp
test/011-array-copy/Android.bp
test/012-math/Android.bp
test/013-math2/Android.bp
test/014-math3/Android.bp
test/015-switch/Android.bp
test/016-intern/Android.bp
test/017-float/Android.bp
test/018-stack-overflow/Android.bp
test/019-wrong-array-type/Android.bp
test/020-string/Android.bp
test/021-string2/Android.bp
test/022-interface/Android.bp
test/025-access-controller/Android.bp
test/026-access/Android.bp
test/027-arithmetic/Android.bp
test/028-array-write/Android.bp
test/029-assert/Android.bp
test/030-bad-finalizer/Android.bp
test/033-class-init-deadlock/Android.bp
test/034-call-null/Android.bp
test/035-enum/Android.bp
test/036-finalizer/Android.bp
test/037-inherit/Android.bp
test/038-inner-null/Android.bp
test/039-join-main/Android.bp
test/040-miranda/Android.bp
test/041-narrowing/Android.bp
test/043-privates/Android.bp
test/044-proxy/Android.bp
test/045-reflect-array/Android.bp
test/046-reflect/Android.bp
test/047-returns/Android.bp
test/048-reflect-v8/Android.bp
test/049-show-object/Android.bp
test/050-sync-test/Android.bp
test/051-thread/Android.bp
test/052-verifier-fun/Android.bp
test/053-wait-some/Android.bp
test/054-uncaught/Android.bp
test/055-enum-performance/Android.bp
test/058-enum-order/Android.bp
test/059-finalizer-throw/Android.bp
test/061-out-of-memory/Android.bp
test/062-character-encodings/Android.bp
test/063-process-manager/Android.bp
test/067-preemptive-unpark/Android.bp
test/070-nio-buffer/Android.bp
test/072-precise-gc/Android.bp
test/072-reachability-fence/Android.bp
test/074-gc-thrash/Android.bp
test/076-boolean-put/Android.bp
test/078-polymorphic-virtual/Android.bp
test/079-phantom/Android.bp
test/080-oom-fragmentation/Android.bp
test/080-oom-throw-with-finalizer/Android.bp
test/080-oom-throw/Android.bp
test/081-hot-exceptions/Android.bp
test/082-inline-execute/Android.bp
test/083-compiler-regressions/Android.bp
test/084-class-init/Android.bp
test/086-null-super/Android.bp
test/087-gc-after-link/Android.bp
test/090-loop-formation/Android.bp
test/092-locale/Android.bp
test/093-serialization/Android.bp
test/094-pattern/Android.bp
test/095-switch-MAX_INT/Android.bp
test/096-array-copy-concurrent-gc/Android.bp
test/098-ddmc/Android.bp
test/099-vmdebug/Android.bp
test/100-reflect2/Android.bp
test/1004-checker-volatile-ref-load/Android.bp
test/101-fibonacci/Android.bp
test/102-concurrent-gc/Android.bp
test/103-string-append/Android.bp
test/104-growth-limit/Android.bp
test/105-invoke/Android.bp
test/106-exceptions2/Android.bp
test/107-int-math2/Android.bp
test/108-check-cast/Android.bp
test/109-suspend-check/Android.bp
test/110-field-access/Android.bp
test/112-double-math/Android.bp
test/114-ParallelGC/Android.bp
test/115-native-bridge/Android.bp
test/116-nodex2oat/Android.bp
test/120-hashcode/Android.bp
test/121-simple-suspend-check/Android.bp
test/122-npe/Android.bp
test/123-compiler-regressions-mt/Android.bp
test/123-inline-execute2/Android.bp
test/125-gc-and-classloading/Android.bp
test/128-reg-spill-on-implicit-nullcheck/Android.bp
test/129-ThreadGetId/Android.bp
test/132-daemon-locks-shutdown/Android.bp
test/133-static-invoke-super/Android.bp
test/1336-short-finalizer-timeout/Android.bp
test/1337-gc-coverage/Android.bp
test/1339-dead-reference-safe/Android.bp
test/136-daemon-jni-shutdown/Android.bp
test/139-register-natives/Android.bp
test/140-dce-regression/Android.bp
test/140-field-packing/Android.bp
test/143-string-value/Android.bp
test/144-static-field-sigquit/Android.bp
test/148-multithread-gc-annotations/Android.bp
test/149-suspend-all-stress/Android.bp
test/150-loadlibrary/Android.bp
test/151-OpenFileLimit/Android.bp
test/152-dead-large-object/Android.bp
test/153-reference-stress/Android.bp
test/154-gc-loop/Android.bp
test/156-register-dex-file-multi-loader/Android.bp
test/158-app-image-class-table/Android.bp
test/159-app-image-fields/Android.bp
test/163-app-image-methods/Android.bp
test/165-lock-owner-proxy/Android.bp
test/168-vmstack-annotated/Android.bp
test/169-threadgroup-jni/Android.bp
test/170-interface-init/Android.bp
test/172-app-image-twice/Android.bp
test/174-escaping-instance-of-bad-class/Android.bp
test/175-alloc-big-bignums/Android.bp
test/176-app-image-string/Android.bp
test/177-visibly-initialized-deadlock/Android.bp
test/178-app-image-native-method/Android.bp
test/179-nonvirtual-jni/Android.bp
test/1900-track-alloc/Android.bp
test/1901-get-bytecodes/Android.bp
test/1902-suspend/Android.bp
test/1903-suspend-self/Android.bp
test/1904-double-suspend/Android.bp
test/1905-suspend-native/Android.bp
test/1906-suspend-list-me-first/Android.bp
test/1907-suspend-list-self-twice/Android.bp
test/1908-suspend-native-resume-self/Android.bp
test/1909-per-agent-tls/Android.bp
test/1910-transform-with-default/Android.bp
test/1911-get-local-var-table/Android.bp
test/1912-get-set-local-primitive/Android.bp
test/1913-get-set-local-objects/Android.bp
test/1914-get-local-instance/Android.bp
test/1915-get-set-local-current-thread/Android.bp
test/1916-get-set-current-frame/Android.bp
test/1917-get-stack-frame/Android.bp
test/1919-vminit-thread-start-timing/Android.bp
test/1920-suspend-native-monitor/Android.bp
test/1921-suspend-native-recursive-monitor/Android.bp
test/1922-owned-monitors-info/Android.bp
test/1923-frame-pop/Android.bp
test/1924-frame-pop-toggle/Android.bp
test/1925-self-frame-pop/Android.bp
test/1926-missed-frame-pop/Android.bp
test/1927-exception-event/Android.bp
test/1928-exception-event-exception/Android.bp
test/1930-monitor-info/Android.bp
test/1931-monitor-events/Android.bp
test/1932-monitor-events-misc/Android.bp
test/1933-monitor-current-contended/Android.bp
test/1934-jvmti-signal-thread/Android.bp
test/1935-get-set-current-frame-jit/Android.bp
test/1936-thread-end-events/Android.bp
test/1937-transform-soft-fail/Android.bp
test/1938-transform-abstract-single-impl/Android.bp
test/1939-proxy-frames/Android.bp
test/1941-dispose-stress/Android.bp
test/1942-suspend-raw-monitor-exit/Android.bp
test/1943-suspend-raw-monitor-wait/Android.bp
test/1945-proxy-method-arguments/Android.bp
test/1947-breakpoint-redefine-deopt/Android.bp
test/1949-short-dex-file/Android.bp
test/1951-monitor-enter-no-suspend/Android.bp
test/1953-pop-frame/Android.bp
test/1954-pop-frame-jit/Android.bp
test/1955-pop-frame-jit-called/Android.bp
test/1956-pop-frame-jit-calling/Android.bp
test/1957-error-ext/Android.bp
test/1958-transform-try-jit/Android.bp
test/1959-redefine-object-instrument/Android.bp
test/1960-checker-bounds-codegen/Android.bp
test/1960-obsolete-jit-multithread-native/Android.bp
test/1961-checker-loop-vectorizer/Android.bp
test/1961-obsolete-jit-multithread/Android.bp
test/1962-multi-thread-events/Android.bp
test/1963-add-to-dex-classloader-in-memory/Android.bp
test/1967-get-set-local-bad-slot/Android.bp
test/1968-force-early-return/Android.bp
test/1969-force-early-return-void/Android.bp
test/1970-force-early-return-long/Android.bp
test/1971-multi-force-early-return/Android.bp
test/1972-jni-id-swap-indices/Android.bp
test/1973-jni-id-swap-pointer/Android.bp
test/1974-resize-array/Android.bp
test/1975-hello-structural-transformation/Android.bp
test/1976-hello-structural-static-methods/Android.bp
test/1977-hello-structural-obsolescence/Android.bp
test/1978-regular-obsolete-then-structural-obsolescence/Android.bp
test/1979-threaded-structural-transformation/Android.bp
test/1980-obsolete-object-cleared/Android.bp
test/1982-no-virtuals-structural-redefinition/Android.bp
test/1984-structural-redefine-field-trace/Android.bp
test/1985-structural-redefine-stack-scope/Android.bp
test/1986-structural-redefine-multi-thread-stack-scope/Android.bp
test/1987-structural-redefine-recursive-stack-scope/Android.bp
test/1988-multi-structural-redefine/Android.bp
test/1989-transform-bad-monitor/Android.bp
test/1990-structural-bad-verify/Android.bp
test/1991-hello-structural-retransform/Android.bp
test/1992-retransform-no-such-field/Android.bp
test/1993-fallback-non-structural/Android.bp
test/1994-final-virtual-structural/Android.bp
test/1995-final-virtual-structural-multithread/Android.bp
test/1996-final-override-virtual-structural/Android.bp
test/1997-structural-shadow-method/Android.bp
test/1998-structural-shadow-field/Android.bp
test/1999-virtual-structural/Android.bp
test/2003-double-virtual-structural/Android.bp
test/2004-double-virtual-structural-abstract/Android.bp
test/2005-pause-all-redefine-multithreaded/Android.bp
test/2008-redefine-then-old-reflect-field/Android.bp
test/201-built-in-except-detail-messages/Android.bp
test/2011-stack-walk-concurrent-instrument/Android.bp
test/2019-constantcalculationsinking/Android.bp
test/202-thread-oome/Android.bp
test/2020-InvokeVirtual-Inlining/Android.bp
test/2021-InvokeStatic-Inlining/Android.bp
test/2022-Invariantloops/Android.bp
test/2023-InvariantLoops_typecast/Android.bp
test/2024-InvariantNegativeLoop/Android.bp
test/2025-ChangedArrayValue/Android.bp
test/2026-DifferentMemoryLSCouples/Android.bp
test/2027-TwiceTheSameMemoryCouple/Android.bp
test/2028-MultiBackward/Android.bp
test/2029-contended-monitors/Android.bp
test/203-multi-checkpoint/Android.bp
test/2030-long-running-child/Android.bp
test/2031-zygote-compiled-frame-deopt/Android.bp
test/2033-shutdown-mechanics/Android.bp
test/2036-jni-filechannel/Android.bp
test/2037-thread-name-inherit/Android.bp
test/2231-checker-heap-poisoning/Android.bp
test/2232-write-metrics-to-log/Android.bp
test/300-package-override/Android.bp
test/301-abstract-protected/Android.bp
test/302-float-conversion/Android.bp
test/304-method-tracing/Android.bp
test/305-other-fault-handler/Android.bp
test/401-optimizing-compiler/Android.bp
test/402-optimizing-control-flow/Android.bp
test/403-optimizing-long/Android.bp
test/404-optimizing-allocator/Android.bp
test/405-optimizing-long-allocator/Android.bp
test/406-fields/Android.bp
test/407-arrays/Android.bp
test/408-move-bug/Android.bp
test/409-materialized-condition/Android.bp
test/410-floats/Android.bp
test/411-checker-hdiv-hrem-const/Android.bp
test/411-checker-hdiv-hrem-pow2/Android.bp
test/411-checker-instruct-simplifier-hrem/Android.bp
test/411-optimizing-arith/Android.bp
test/413-regalloc-regression/Android.bp
test/414-static-fields/Android.bp
test/418-const-string/Android.bp
test/419-long-parameter/Android.bp
test/420-const-class/Android.bp
test/421-exceptions/Android.bp
test/421-large-frame/Android.bp
test/422-instanceof/Android.bp
test/422-type-conversion/Android.bp
test/423-invoke-interface/Android.bp
test/424-checkcast/Android.bp
test/426-monitor/Android.bp
test/427-bitwise/Android.bp
test/427-bounds/Android.bp
test/429-ssa-builder/Android.bp
test/430-live-register-slow-path/Android.bp
test/433-gvn/Android.bp
test/434-shifter-operand/Android.bp
test/435-try-finally-without-catch/Android.bp
test/436-rem-float/Android.bp
test/436-shift-constant/Android.bp
test/437-inline/Android.bp
test/438-volatile/Android.bp
test/439-npe/Android.bp
test/439-swap-double/Android.bp
test/440-stmp/Android.bp
test/441-checker-inliner/Android.bp
test/443-not-bool-inline/Android.bp
test/444-checker-nce/Android.bp
test/445-checker-licm/Android.bp
test/446-checker-inliner2/Android.bp
test/447-checker-inliner3/Android.bp
test/449-checker-bce-rem/Android.bp
test/449-checker-bce/Android.bp
test/450-checker-types/Android.bp
test/451-regression-add-float/Android.bp
test/451-spill-splot/Android.bp
test/454-get-vreg/Android.bp
test/455-checker-gvn/Android.bp
test/456-baseline-array-set/Android.bp
test/458-long-to-fpu/Android.bp
test/461-get-reference-vreg/Android.bp
test/464-checker-inline-sharpen-calls/Android.bp
test/465-checker-clinit-gvn/Android.bp
test/466-get-live-vreg/Android.bp
test/469-condition-materialization/Android.bp
test/470-huge-method/Android.bp
test/471-deopt-environment/Android.bp
test/472-type-propagation/Android.bp
test/473-checker-inliner-constants/Android.bp
test/473-remove-dead-block/Android.bp
test/474-checker-boolean-input/Android.bp
test/474-fp-sub-neg/Android.bp
test/475-simplify-mul-zero/Android.bp
test/476-checker-ctor-fence-redun-elim/Android.bp
test/476-checker-ctor-memory-barrier/Android.bp
test/476-clinit-inline-static-invoke/Android.bp
test/477-checker-bound-type/Android.bp
test/477-long-2-float-convers-precision/Android.bp
test/478-checker-clinit-check-pruning/Android.bp
test/478-checker-inline-noreturn/Android.bp
test/478-checker-inliner-nested-loop/Android.bp
test/479-regression-implicit-null-check/Android.bp
test/480-checker-dead-blocks/Android.bp
test/481-regression-phi-cond/Android.bp
test/482-checker-loop-back-edge-use/Android.bp
test/483-dce-block/Android.bp
test/485-checker-dce-switch/Android.bp
test/486-checker-must-do-null-check/Android.bp
test/487-checker-inline-calls/Android.bp
test/488-checker-inline-recursive-calls/Android.bp
test/489-current-method-regression/Android.bp
test/490-checker-inline/Android.bp
test/491-current-method/Android.bp
test/492-checker-inline-invoke-interface/Android.bp
test/493-checker-inline-invoke-interface/Android.bp
test/494-checker-instanceof-tests/Android.bp
test/495-checker-checkcast-tests/Android.bp
test/496-checker-inlining-class-loader/Android.bp
test/497-inlining-and-class-loader/Android.bp
test/499-bce-phi-array-length/Android.bp
test/500-instanceof/Android.bp
test/505-simplifier-type-propagation/Android.bp
test/507-boolean-test/Android.bp
test/507-referrer/Android.bp
test/508-checker-disassembly/Android.bp
test/508-referrer-method/Android.bp
test/513-array-deopt/Android.bp
test/514-shifts/Android.bp
test/519-bound-load-class/Android.bp
test/521-checker-array-set-null/Android.bp
test/521-regression-integer-field-set/Android.bp
test/524-boolean-simplifier-regression/Android.bp
test/525-checker-arrays-fields1/Android.bp
test/525-checker-arrays-fields2/Android.bp
test/526-checker-caller-callee-regs/Android.bp
test/526-long-regalloc/Android.bp
test/527-checker-array-access-simd/Android.bp
test/527-checker-array-access-split/Android.bp
test/528-long-hint/Android.bp
test/529-long-split/Android.bp
test/530-checker-loops1/Android.bp
test/530-checker-loops2/Android.bp
test/530-checker-loops3/Android.bp
test/530-checker-loops4/Android.bp
test/530-checker-loops5/Android.bp
test/530-checker-lse-ctor-fences/Android.bp
test/530-checker-lse-simd/Android.bp
test/530-checker-lse/Android.bp
test/530-checker-lse2/Android.bp
test/530-instanceof-checkcast/Android.bp
test/530-regression-lse/Android.bp
test/532-checker-nonnull-arrayset/Android.bp
test/534-checker-bce-deoptimization/Android.bp
test/535-deopt-and-inlining/Android.bp
test/536-checker-intrinsic-optimization/Android.bp
test/537-checker-arraycopy/Android.bp
test/537-checker-jump-over-jump/Android.bp
test/538-checker-embed-constants/Android.bp
test/540-checker-rtp-bug/Android.bp
test/542-bitfield-rotates/Android.bp
test/542-inline-trycatch/Android.bp
test/542-unresolved-access-check/Android.bp
test/545-tracing-and-jit/Android.bp
test/548-checker-inlining-and-dce/Android.bp
test/549-checker-types-merge/Android.bp
test/550-checker-multiply-accumulate/Android.bp
test/550-new-instance-clinit/Android.bp
test/551-checker-clinit/Android.bp
test/551-checker-shifter-operand/Android.bp
test/551-implicit-null-checks/Android.bp
test/552-checker-sharpening/Android.bp
test/552-checker-x86-avx2-bit-manipulation/Android.bp
test/554-checker-rtp-checkcast/Android.bp
test/555-UnsafeGetLong-regression/Android.bp
test/557-checker-instruct-simplifier-ror/Android.bp
test/558-switch/Android.bp
test/559-bce-ssa/Android.bp
test/559-checker-rtp-ifnotnull/Android.bp
test/560-packed-switch/Android.bp
test/561-divrem/Android.bp
test/561-shared-slowpaths/Android.bp
test/562-bce-preheader/Android.bp
test/562-checker-no-intermediate/Android.bp
test/563-checker-invoke-super/Android.bp
test/564-checker-bitcount/Android.bp
test/564-checker-inline-loop/Android.bp
test/564-checker-negbitwise/Android.bp
test/565-checker-condition-liveness/Android.bp
test/566-checker-codegen-select/Android.bp
test/566-polymorphic-inlining/Android.bp
test/567-checker-builder-intrinsics/Android.bp
test/568-checker-onebit/Android.bp
test/570-checker-select/Android.bp
test/572-checker-array-get-regression/Android.bp
test/573-checker-checkcast-regression/Android.bp
test/576-polymorphic-inlining/Android.bp
test/577-checker-fp2int/Android.bp
test/578-bce-visit/Android.bp
test/578-polymorphic-inlining/Android.bp
test/579-inline-infinite/Android.bp
test/580-checker-round/Android.bp
test/580-crc32/Android.bp
test/581-rtp/Android.bp
test/582-checker-bce-length/Android.bp
test/583-checker-zero/Android.bp
test/584-checker-div-bool/Android.bp
test/589-super-imt/Android.bp
test/590-checker-arr-set-null-regression/Android.bp
test/591-checker-regression-dead-loop/Android.bp
test/593-checker-long-2-float-regression/Android.bp
test/594-checker-array-alias/Android.bp
test/594-load-string-regression/Android.bp
test/595-profile-saving/Android.bp
test/597-deopt-busy-loop/Android.bp
test/597-deopt-invoke-stub/Android.bp
test/597-deopt-new-string/Android.bp
test/602-deoptimizeable/Android.bp
test/603-checker-instanceof/Android.bp
test/604-hot-static-interface/Android.bp
test/605-new-string-from-bytes/Android.bp
test/607-daemon-stress/Android.bp
test/609-checker-inline-interface/Android.bp
test/609-checker-x86-bounds-check/Android.bp
test/610-arraycopy/Android.bp
test/611-checker-simplify-if/Android.bp
test/614-checker-dump-constant-location/Android.bp
test/615-checker-arm64-store-zero/Android.bp
test/616-cha-abstract/Android.bp
test/616-cha-interface/Android.bp
test/616-cha-miranda/Android.bp
test/616-cha-native/Android.bp
test/616-cha-regression-proxy-method/Android.bp
test/616-cha/Android.bp
test/617-clinit-oome/Android.bp
test/618-checker-induction/Android.bp
test/619-checker-current-method/Android.bp
test/620-checker-bce-intrinsics/Android.bp
test/622-checker-bce-regressions/Android.bp
test/623-checker-loop-regressions/Android.bp
test/625-checker-licm-regressions/Android.bp
test/626-set-resolved-string/Android.bp
test/627-checker-unroll/Android.bp
test/628-vdex/Android.bp
test/629-vdex-speed/Android.bp
test/631-checker-get-class/Android.bp
test/632-checker-char-at-bounds/Android.bp
test/635-checker-arm64-volatile-load-cc/Android.bp
test/636-arm64-veneer-pool/Android.bp
test/637-checker-throw-inline/Android.bp
test/638-checker-inline-cache-intrinsic/Android.bp
test/639-checker-code-sinking/Android.bp
test/640-checker-boolean-simd/Android.bp
test/640-checker-integer-valueof/Android.bp
test/640-checker-simd/Android.bp
test/641-checker-arraycopy/Android.bp
test/641-iterations/Android.bp
test/642-fp-callees/Android.bp
test/643-checker-bogus-ic/Android.bp
test/645-checker-abs-simd/Android.bp
test/646-checker-arraycopy-large-cst-pos/Android.bp
test/646-checker-long-const-to-int/Android.bp
test/646-checker-simd-hadd/Android.bp
test/647-jni-get-field-id/Android.bp
test/650-checker-inline-access-thunks/Android.bp
test/652-deopt-intrinsic/Android.bp
test/654-checker-periodic/Android.bp
test/655-checker-simd-arm-opt/Android.bp
test/655-jit-clinit/Android.bp
test/656-checker-simd-opt/Android.bp
test/656-loop-deopt/Android.bp
test/657-branches/Android.bp
test/658-fp-read-barrier/Android.bp
test/660-checker-sad/Android.bp
test/660-checker-simd-sad/Android.bp
test/660-clinit/Android.bp
test/661-checker-simd-reduc/Android.bp
test/661-oat-writer-layout/Android.bp
test/662-regression-alias/Android.bp
test/664-aget-verifier/Android.bp
test/665-checker-simd-zero/Android.bp
test/666-dex-cache-itf/Android.bp
test/667-checker-simd-alignment/Android.bp
test/667-jit-jni-stub/Android.bp
test/667-out-of-bounds/Android.bp
test/669-checker-break/Android.bp
test/671-npe-field-opts/Android.bp
test/672-checker-throw-method/Android.bp
test/673-checker-throw-vmethod/Android.bp
test/674-HelloWorld-Dm/Android.bp
test/674-hotness-compiled/Android.bp
test/676-proxy-jit-at-first-use/Android.bp
test/677-fsi2/Android.bp
test/679-locks/Android.bp
test/680-checker-deopt-dex-pc-0/Android.bp
test/680-sink-regression/Android.bp
test/684-checker-simd-dotprod/Android.bp
test/684-select-condition/Android.bp
test/685-deoptimizeable/Android.bp
test/687-deopt/Android.bp
test/689-multi-catch/Android.bp
test/689-zygote-jit-deopt/Android.bp
test/693-vdex-inmem-loader-evict/Android.bp
test/694-clinit-jit/Android.bp
test/695-simplify-throws/Android.bp
test/696-loop/Android.bp
test/697-checker-string-append/Android.bp
test/698-selects/Android.bp
test/700-LoadArgRegs/Android.bp
test/703-floating-point-div/Android.bp
test/704-multiply-accumulate/Android.bp
test/705-register-conflict/Android.bp
test/707-checker-invalid-profile/Android.bp
test/708-jit-cache-churn/Android.bp
test/711-checker-type-conversion/Android.bp
test/717-integer-value-of/Android.bp
test/718-zipfile-finalizer/Android.bp
test/720-thread-priority/Android.bp
test/721-osr/Android.bp
test/726-array-store/Android.bp
test/728-imt-conflict-zygote/Android.bp
test/805-TooDeepClassInstanceOf/Android.bp
test/806-TooWideClassInstanceOf/Android.bp
test/812-recursive-default/Android.bp
test/813-fp-args/Android.bp
test/814-large-field-offsets/Android.bp
test/815-invokeinterface-default/Android.bp
test/818-clinit-nterp/Android.bp
test/900-hello-plugin/Android.bp
test/901-hello-ti-agent/Android.bp
test/902-hello-transformation/Android.bp
test/903-hello-tagging/Android.bp
test/904-object-allocation/Android.bp
test/905-object-free/Android.bp
test/906-iterate-heap/Android.bp
test/907-get-loaded-classes/Android.bp
test/908-gc-start-finish/Android.bp
test/910-methods/Android.bp
test/911-get-stack-trace/Android.bp
test/913-heaps/Android.bp
test/914-hello-obsolescence/Android.bp
test/915-obsolete-2/Android.bp
test/916-obsolete-jit/Android.bp
test/917-fields-transformation/Android.bp
test/918-fields/Android.bp
test/919-obsolete-fields/Android.bp
test/920-objects/Android.bp
test/921-hello-failure/Android.bp
test/922-properties/Android.bp
test/923-monitors/Android.bp
test/924-threads/Android.bp
test/925-threadgroups/Android.bp
test/926-multi-obsolescence/Android.bp
test/927-timers/Android.bp
test/928-jni-table/Android.bp
test/930-hello-retransform/Android.bp
test/931-agent-thread/Android.bp
test/932-transform-saves/Android.bp
test/933-misc-events/Android.bp
test/937-hello-retransform-package/Android.bp
test/939-hello-transformation-bcp/Android.bp
test/940-recursive-obsolete/Android.bp
test/941-recursive-obsolete-jit/Android.bp
test/942-private-recursive/Android.bp
test/943-private-recursive-jit/Android.bp
test/944-transform-classloaders/Android.bp
test/945-obsolete-native/Android.bp
test/946-obsolete-throw/Android.bp
test/947-reflect-method/Android.bp
test/949-in-memory-transform/Android.bp
test/950-redefine-intrinsic/Android.bp
test/951-threaded-obsolete/Android.bp
test/963-default-range-smali/Android.bp
test/982-ok-no-retransform/Android.bp
test/983-source-transform-verify/Android.bp
test/984-obsolete-invoke/Android.bp
test/985-re-obsolete/Android.bp
test/986-native-method-bind/Android.bp
test/987-agent-bind/Android.bp
test/988-method-trace/Android.bp
test/989-method-trace-throw/Android.bp
test/990-field-trace/Android.bp
test/991-field-trace-2/Android.bp
test/992-source-data/Android.bp
test/993-breakpoints/Android.bp
test/994-breakpoint-line/Android.bp
test/995-breakpoints-throw/Android.bp
test/996-breakpoint-obsolete/Android.bp
test/997-single-step/Android.bp
test/Android.bp
tools/Android.bp
tools/ahat/Android.bp
tools/ahat/Android.mk
tools/art_verifier/Android.bp
tools/cpp-define-generator/Android.bp
tools/dexanalyze/Android.bp
tools/dexfuzz/Android.bp
tools/dmtracedump/Android.bp
tools/hiddenapi/Android.bp
tools/jfuzz/Android.bp
tools/jvmti-agents/breakpoint-logger/Android.bp
tools/jvmti-agents/chain-agents/Android.bp
tools/jvmti-agents/dump-jvmti-state/Android.bp
tools/jvmti-agents/enable-vlog/Android.bp
tools/jvmti-agents/field-counts/Android.bp
tools/jvmti-agents/field-null-percent/Android.bp
tools/jvmti-agents/jit-load/Android.bp
tools/jvmti-agents/list-extensions/Android.bp
tools/jvmti-agents/simple-force-redefine/Android.bp
tools/jvmti-agents/simple-profile/Android.bp
tools/jvmti-agents/ti-alloc-sample/Android.bp
tools/jvmti-agents/ti-fast/Android.bp
tools/jvmti-agents/titrace/Android.bp
tools/jvmti-agents/wrapagentproperties/Android.bp
tools/signal_dumper/Android.bp
tools/tracefast-plugin/Android.bp
tools/veridex/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
sigchainlib/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
SPDX-license-identifier-GPL-2.0
to:
Android.bp
Android.mk
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0
SPDX-license-identifier-GPL-with-classpath-exception
to:
dt_fd_forward/Android.bp
openjdkjvmti/Android.bp
Added SPDX-license-identifier-GPL-2.0
SPDX-license-identifier-GPL-with-classpath-exception
to:
openjdkjvm/Android.bp
Bug: 68860345
Bug: 151177513
Bug: 151953481
Test: m all
Exempt-From-Owner-Approval: janitorial work
Change-Id: If775045c12955fa6d72d40ccf2a09beef93d1699
Merged-in: If775045c12955fa6d72d40ccf2a09beef93d1699
|
|
This agent will simply hold onto how many times each method is called
and dump the information in a JSON file wherever one wishes.
Test: manual, attach to google-maps
Test: ./art/test/run-test --host --dev --64 --with-agent $ANDROID_HOST_OUT/lib64/libsimpleprofileds.so=/proc/self/fd/2,dump_on_shutdown 001-HelloWorld
Test: ```
% adb root
% adb shell setenforce 0
% adb push $OUT/system/lib64/libsimpleprofileds.so /data/local/tmp/libsimpleprofileds.so
% adb shell
blueline:/ # cd /data/data/com.google.android.apps.maps
blueline:/data/data/com.google.android.apps.maps # cp /data/local/tmp/libsimpleprofileds.so .
blueline:/data/data/com.google.android.apps.maps # ps -A | grep maps
u0_a178 9143 927 15691440 190132 SyS_epoll_wait 0 S com.google.android.apps.maps
blueline:/data/data/com.google.android.apps.maps # cmd activity attach-agent com.google.android.apps.maps $PWD/libsimpleprofileds.so=$PWD/maps.json
blueline:/data/data/com.google.android.apps.maps # # Do things on the app.
blueline:/data/data/com.google.android.apps.maps # kill -3 9143
blueline:/data/data/com.google.android.apps.maps # wc -l maps.json
17901 maps.json
blueline:/data/data/com.google.android.apps.maps # ^D
% adb pull /data/data/com.google.android.apps.maps/maps.json
% jq 'sort_by(.count) | reverse' maps.json | head -13
[
{
"class_name": "Ljava/lang/String;",
"method_name": "charAt",
"method_descriptor": "(I)C",
"count": 586996
},
{
"class_name": "Ljava/lang/Object;",
"method_name": "<init>",
"method_descriptor": "()V",
"count": 482491
},
```
Change-Id: I87056f641648c496c63c9de715951b65707844ef
|
|
We added the ability to manipulate the 'VLOG' (-verbose:...) options
at runtime a while ago. This adds an agent which can be loaded to
change these after starting an app. This can be useful for debugging.
Test: m libenablevlogs
adb push $ANDROID_PRODUCT_OUT/system/lib/libenablevlogs.so /data/local/tmp
adb shell run-as com.antonioleiva.bandhookkotlin cp /data/local/tmp/libenablevlogs.so ./code_cache
adb shell cmd activity attach-agent com.antonioleiva.bandhookkotlin /data/data/com.antonioleiva.bandhookkotlin/code_cache/libenablevlogs.so=class,jit
adb logcat
Change-Id: I80a97684b19ffc81f6e1181fc15f24cf3b53c31b
|
|
Bug: 152482542
Test: lunch aosp_x86_64 && m checkbuild
Change-Id: I1859a5b15d7e1a4939968908d862d27b2345acc4
|
|
If multiple instances point to the same object it would be counted
multiple times by libfieldcount. This fixes that so each instance of
an object being pointed to by a field is only counted once.
Test: Manual
Test: ./art/tools/jvmti-agents/field-counts/count-fields.py 'Ldalvik/system/ClassExt;.instanceJfieldIDs:Ljava/lang/Object;' 'Ldalvik/system/ClassExt;.staticJfieldIDs:Ljava/lang/Object;' 'Ldalvik/system/ClassExt;.jmethodIDs:Ljava/lang/Object;'
Change-Id: I1d6c5fe05b628ea8382633041be914373d7298d4
|
|
Refactored the trace processing script to use argument parsing, etc.,
and improve the structure. Then added several command line options to
filter and provide different views.
Bug: none
Test: run the script on a trace, view the flame graph
Change-Id: I66805829c9e7212b2f69b3556134036f8dd21bc2
|
|
Add the ability to weight the counts by the total size allocated at that
stack trace. Also puts the thread/type/size at the top of the stack
trace and fixes a bug that erroneously inserted an additional stack
frame at the base. Some small code cleanups in the agent also.
Bug: none
Test: attach, run app, pull, process, enjoy the flame graph.
Change-Id: I6256a99c2651696b973c25a5955e3bb9251b86a1
|
|
Add the class name to the traces to make methods more distinct.
Bug: none
Test: attach the agent, run the app, pull the log, and process.
Change-Id: I1162ccf5fa41a429c5e23530b05856908bedab46
|
|
Change the text encoding to be easier to parse off-line. Also fixes the
per-thread sampling bias Hans pointed out yesterday. Adds the python
script I use to uncompress the text encoding.
Bug: none
Test: attach the agent; run the startop test; uncompress; make flame graph; view
Change-Id: I4a882642e659d8512a02d4980c82fb52470ac7f9
|
|
As a stack depth limit to the ti-alloc-sample agent. This will allow
the invocation to control how deep the stacks are, permitting better
flamegraphs.
Bug: none
Test: attach the agent; run the startop test; look at the log.
Change-Id: I3cee52c20c7e5034f5823a73ad8e2ce7efe42faa
|
|
Add an agent that can be used to sample heap allocations and produce
flame graphs.
Bug: none
Test: am attach-agent and run
Change-Id: Ic840b924cd52dc48938dd7ae4bc397241215fc5a
|
|
C++2a adds support for designated initialization, but would like member
order to match that of the aggregate definition (due to side effects of
the expressions in the designated initializer).
The FOR_ALL_SUPPORTED_EVENTS macro is implemented in terms of the
FOR_ALL_SUPPORTED_JNI_EVENTS and FOR_ALL_SUPPORTED_NO_JNI_EVENTS macros
that clearly delineate between which members of jvmtiEventCallbacks have
JNI events or not.
The declaration of this struct intersperses the members with this
distinction. We can reorder the JNI events, but we still have a problem
with FOR_ALL_SUPPORTED_EVENTS which would try to intersperse them in the
wrong order.
It seems that the `fun` macro parameter only differs for
GENERATE_LOG_FUNCTION_{NO_}JNI. We can change the
FOR_ALL_SUPPORTED_JNI_EVENTS macro to accept 2 functions, one for JNI
events, and one for non-JNI events. We can then order the members
correctly, and specify differing arguments at the macro expansion sites
(of FOR_ALL_SUPPORTED_JNI_EVENTS) if needed, otherwise we can specify
the same parameter twice (small price to pay for member order).
Bug: 139945549
Test: mm
Change-Id: I4636b0b08747fe63c8f68e87bd24e4a38d58ffff
|
|
C++20 would like members of designated initializers to be ordered, so
that initialization side effects match member initialization in explicit
constructors. This differs from C99.
Fix all the cases, except for a tricky case in
tools/jvmti-agents/ti-fast/tifast.cc
where the macros
FOR_ALL_SUPPORTED_JNI_EVENTS
and
FOR_ALL_SUPPORTED_NO_JNI_EVENTS
are mixed in the macro
FOR_ALL_SUPPORTED_EVENTS.
This will be done in a follow up patch.
Bug: 139945549
Test: mm
Change-Id: Id2a0e8cdc960820ca72221050ba2a8a15e09342b
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
|
|
Libraries previously did not take the suffix property, which meant
that the suffix property in defaults modules applied to libraries
was ignored. The suffix property is being added to cc_library
modules, which incorrectly renames existing libraries that had
defaults with suffix properties. These defaults only apply to
library modules, so just remove the suffix properties.
Bug: 117607748
Test: m checkbuild
Change-Id: Iadbb7369a7e4698394f64d25fc0a11933f41c2dc
|
|
This agent is able to chain-load other agents listed in a given file.
This is useful for testing and using persistent JVMTI agents, which
might need to have specific arguments passed to them.
Test: Install debuggable apk (here com.antonioleiva.bandhookkotlin)
walleye:/ $ run-as com.antonioleiva.bandhookkotlin sh
walleye:/data/data/com.antonioleiva.bandhookkotlin $ mkdir code_cache/startup_agents
walleye:/data/data/com.antonioleiva.bandhookkotlin $ cp /data/local/tmp/libtifasts32.so code_cache
walleye:/data/data/com.antonioleiva.bandhookkotlin $ cp /data/local/tmp/libtifasts64.so code_cache
walleye:/data/data/com.antonioleiva.bandhookkotlin $ cp /data/local/tmp/libchainagentss32.so code_cache/startup_agents/
walleye:/data/data/com.antonioleiva.bandhookkotlin $ cp /data/local/tmp/libchainagentss64.so code_cache/startup_agents/
walleye:/data/data/com.antonioleiva.bandhookkotlin $ echo $PWD/code_cache/libtifasts32.so=log,ClassLoad > chain_agents.txt
walleye:/data/data/com.antonioleiva.bandhookkotlin $ echo $PWD/code_cache/libtifasts64.so=log,ClassLoad >> chain_agents.txt
Start bandhookkotlin
Examine logcat
Bug: 135627501
Change-Id: Icd97e8cce6c540b8d1ee5e5efd7b2587707786d3
|
|
Add libtifasts. A static NDK agent target that can more easily be run
on android.
Test: am attach-agent com.antonioleiva.bandhookkotlin /data/data/com.antonioleiva.bandhookkotlin/code_cache/libtifasts.so=SingleStep
Change-Id: I3a48581c5af82ddf8c24fad2070d0cf60f4bdfa1
|
|
Calling `make` is no longer supported since
https://android-review.googlesource.com/c/platform/build/+/1092954/.
Test: n/a
Change-Id: Ie2a0bcf7ea45b5ce82b471de31abb848a102c0ad
|
|
Add a small agent that just lists jvmti extensions.
Test: ./test/run-test --host --with-agent liblistextensions.so --dev 001-HelloWorld
Change-Id: I1335206c0a1dfc7ad311ec7ab5d75ee07df63957
|
|
The include_dirs property causes problems when unbundling as they can
directly reference directories inside the runtime module repositories
which will break the unbundled build as those repositories will not be
present. While these usages do not cause problems as they are
references within the runtime module repository they need removing so
that the build can enforce no usage of runtime module repository paths
in the include_dirs property.
This change:
* Replaces include_dirs with local_include_dirs where possible.
* Uses libnativehelper provided header libs, this is possible as they
have been updated to build against the NDK.
* Adds headers for disassembler, libdexfile
* Makes libart_runtime_headers build against NDK.
Test: m checkbuild
Bug: 134379140
Change-Id: Iaf065caf4b6a2fcf252f6d5da8fff5be97a242ea
|
|
Add a python script capable of running the field-count agent across
all processes and collecting the results.
Test: m libfieldcounts; ./tools/jvmti-agents/count-fields.py 'Ljava/lang/Class;.extData:Ldalvik/system/ClassExt;'
Change-Id: I7463dfc0b1e7a2ae21836571f3d4708199d1b706
|
|
This agent is useful for extracting information about the contents of
fields and measuring the memory impact of CLs based on the different
counts of various fields.
Test: manual
Test: ./test/run-test --host --dev --interpreter --runtime-option -Xopaque-jni-ids:true --64 --with-agent $ANDROID_HOST_OUT/lib64/libfieldcountd.so=Ljava/lang/Class\;.extData:Ldalvik/system/ClassExt\;,Ldalvik/system/ClassExt\;.jmethodIDs:Ljava/lang/Object\;,Ldalvik/system/ClassExt\;.staticJfieldIDs:Ljava/lang/Object\;,Ldalvik/system/ClassExt\;.instanceJfieldIDs:Ljava/lang/Object\; 001-HelloWorld
Bug: 134162467
Change-Id: I21cfded08f8d9f7db67a81e2ce88ef7567599d97
|
|
Getting everything setup so jvmti agents can reach libbase can be
tricky. Get libfieldnull building statically.
Test: manual. Install agent
Change-Id: Id889636fd40bc39cca438bbb0d1e678dd0e1110f
|
|
Test: mmma art
Change-Id: Ic85df4770c12ec02836c877b243d4aec234aaada
|
|
This allows it to be used on userdebug builds with non-debuggable
apps.
Test: m libtitrace
Change-Id: I399dbd23f27ccdaee2128e99fc8aecb97c228c24
|
|
This organizes all the various jvmti agents we have into a single,
easy-to-search place.
Test: build
Change-Id: I92aeaf92e70bedabc38000bb14d4aac17a929793
|