aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Veenstra <veenstra@android.com>2009-05-19 14:41:14 -0700
committerJack Veenstra <veenstra@android.com>2009-05-19 14:41:14 -0700
commite3ea32ffa04468eddaf9c6ce2d36090f7bf43e49 (patch)
treee67776ad849edd8fed6df50efb053670a1415b50
parent013978687addfae64dbb8e8a179af10922bd2802 (diff)
downloadexternal_qemu-e3ea32ffa04468eddaf9c6ce2d36090f7bf43e49.zip
external_qemu-e3ea32ffa04468eddaf9c6ce2d36090f7bf43e49.tar.gz
external_qemu-e3ea32ffa04468eddaf9c6ce2d36090f7bf43e49.tar.bz2
Add support for new trace records for native (JNI) calls.
This change adds new trace record types for entering (and exiting) native code from Java code. There is a corresponding change in the Dalvik interpreter to generate these trace records.
-rw-r--r--hw/goldfish_trace.c3
-rw-r--r--hw/goldfish_trace.h3
-rw-r--r--trace_common.h5
3 files changed, 10 insertions, 1 deletions
diff --git a/hw/goldfish_trace.c b/hw/goldfish_trace.c
index a9f6437..f49b704 100644
--- a/hw/goldfish_trace.c
+++ b/hw/goldfish_trace.c
@@ -205,6 +205,9 @@ static void trace_dev_write(void *opaque, target_phys_addr_t offset, uint32_t va
case TRACE_DEV_REG_METHOD_ENTRY:
case TRACE_DEV_REG_METHOD_EXIT:
case TRACE_DEV_REG_METHOD_EXCEPTION:
+ case TRACE_DEV_REG_NATIVE_ENTRY:
+ case TRACE_DEV_REG_NATIVE_EXIT:
+ case TRACE_DEV_REG_NATIVE_EXCEPTION:
if (tracing) {
int call_type = (offset - 4096) >> 2;
trace_interpreted_method(value, call_type);
diff --git a/hw/goldfish_trace.h b/hw/goldfish_trace.h
index c49745b..11ed906 100644
--- a/hw/goldfish_trace.h
+++ b/hw/goldfish_trace.h
@@ -46,6 +46,9 @@
#define TRACE_DEV_REG_METHOD_ENTRY 1024
#define TRACE_DEV_REG_METHOD_EXIT 1025
#define TRACE_DEV_REG_METHOD_EXCEPTION 1026
+#define TRACE_DEV_REG_NATIVE_ENTRY 1028
+#define TRACE_DEV_REG_NATIVE_EXIT 1029
+#define TRACE_DEV_REG_NATIVE_EXCEPTION 1030
/* the virtual trace device state */
typedef struct {
diff --git a/trace_common.h b/trace_common.h
index 3c4440d..fe84c1a 100644
--- a/trace_common.h
+++ b/trace_common.h
@@ -29,10 +29,13 @@
#define kMethodEnter 0
#define kMethodExit 1
#define kMethodException 2
+#define kNativeEnter 4
+#define kNativeExit 5
+#define kNativeException 6
// The trace identifier string must be less than 16 characters.
#define TRACE_IDENT "qemu_trace_file"
-#define TRACE_VERSION 1
+#define TRACE_VERSION 2
typedef struct TraceHeader {
char ident[16];