From 22811b047e1dc5f041aaf167546f3ba686886ba9 Mon Sep 17 00:00:00 2001 From: jooyoul_lee Date: Fri, 15 Nov 2013 13:49:35 +0900 Subject: [PATCH] [Title] return type changed [Desc.] [Issue] --- .../swap/communicator/Communicator30.java | 6 ++- .../swap/model/data/ContextSwitchData.java | 1 + .../swap/model/data/LogDataUtils.java | 63 ++++++++++++++++++++++ .../swap/model/data/ProbeCommonData.java | 26 ++++----- .../swap/model/data/ProfileData.java | 37 ++++++------- .../swap/model/format/CommonColumns.java | 4 +- .../ui/timeline/logparser/CustomLogParser.java | 6 +-- 7 files changed, 99 insertions(+), 44 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java index 6e3ad63..fee94f8 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java @@ -753,9 +753,10 @@ public class Communicator30 extends BaseCommunicator { int start = symbol.indexOf(CommonConstants.OPEN_BRACKET); int end = symbol.indexOf(CommonConstants.CLOSE_BRACKET); - byte[] emptyRet = new byte[2]; + byte[] emptyRet = new byte[3]; emptyRet[0] = 'p'; emptyRet[1] = 0; + emptyRet[2] = 'n'; if (start < 0 || end < 0) { return emptyRet; } @@ -776,6 +777,9 @@ public class Communicator30 extends BaseCommunicator { ret[i + 1] = (byte) getArgType(arg); } + byte[] test = new byte[1]; + test[0] = 'n'; + ret = ByteUtils.getByte(ret, test); return ret; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ContextSwitchData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ContextSwitchData.java index 4358e22..cdfc88d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ContextSwitchData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ContextSwitchData.java @@ -61,6 +61,7 @@ public class ContextSwitchData extends LogData { tid = ByteUtils.toInt(data, index); index += INT_SIZE; cpuNum = ByteUtils.toInt(data, index); + index += INT_SIZE; } public long getPcAddr() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataUtils.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataUtils.java index 346c292..b3b456e 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataUtils.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataUtils.java @@ -110,6 +110,69 @@ public class LogDataUtils { return args; } + public static ArgsInfo parseReturn(byte[] payload, int index) { + ArgsInfo args = new ArgsInfo(); + StringBuffer buffer = new StringBuffer(); + char c = (char) payload[index]; + index += 1; + switch (c) { + case 'c': + buffer.append((payload[index])); + index += 1; + break; + case 'd': + int iValue = ByteUtils.toInt(payload, index); + buffer.append(iValue); + index += Integer.SIZE / Byte.SIZE; + break; + case 'x': + long lValue = ByteUtils.toLong(payload, index); + buffer.append(lValue); + index += LONG_SIZE; + break; + case 'p': + long pValue = ByteUtils.toLong(payload, index); + buffer.append(AnalyzerUtil.toHexdecimal(pValue)); + index += LONG_SIZE; + break; + case 'f': + float fValue = ByteUtils.toFloat(payload, index); + buffer.append(fValue); + index += FLOAT_SIZE; + break; + case 'w': + double dValue = ByteUtils.toDouble(payload, index); + buffer.append(dValue); + index += DOUBLE_SIZE; + break; + case 'b': + byte b = payload[index++]; + if (b == 0) { + buffer.append("false"); + } else { + buffer.append("true"); + } + break; + case 's': + // System.out.println("args payload size : " + payload.length); + for (int iii = index; iii < payload.length; iii++) { + if (payload[iii] != 0) { + buffer.append((char) payload[iii]); + } else { + index = iii + 1; + break; + } + } + break; + default: + break; + } + + args.setArgs(buffer.toString()); + args.setLastIndex(index); + return args; + } + public static int getStringLength(int start, byte[] payload) { int length = 0; for (int i = start; i < payload.length; i++, length++) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProbeCommonData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProbeCommonData.java index fadd45f..3b03f62 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProbeCommonData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProbeCommonData.java @@ -39,7 +39,6 @@ import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfo; import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage; import org.tizen.dynamicanalyzer.swap.logparser.MessageParser; import org.tizen.dynamicanalyzer.swap.model.ByteUtils; -import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; public class ProbeCommonData extends LogData { @@ -49,7 +48,7 @@ public class ProbeCommonData extends LogData { protected int pid = 0; protected int tid = 0; protected String args = null; - protected long ret = 0; + protected String ret = null; protected long errno = 0; protected int internalCall = 0; protected long callerAddress = 0; @@ -79,8 +78,11 @@ public class ProbeCommonData extends LogData { args = argInfo.getArgs(); index = argInfo.getLastIndex(); - ret = ByteUtils.toLong(data, index); - index += LONG_SIZE; + // ret = ByteUtils.toLong(data, index); + // index += LONG_SIZE; + ArgsInfo retInfo = LogDataUtils.parseReturn(data, index); + ret = retInfo.getArgs(); + index = retInfo.getLastIndex(); errno = ByteUtils.toLong(data, index); index += LONG_SIZE; @@ -145,20 +147,10 @@ public class ProbeCommonData extends LogData { } public String getReturn() { - String retStr = null; - if (ret < 0x10000000) { - retStr = Long.toString(ret); - } else { - retStr = AnalyzerUtil.toHexdecimal(ret); - } - return retStr; - } - - public long getOriginalReturn() { return ret; } - public void setReturn(long ret) { + public void setReturn(String ret) { this.ret = ret; } @@ -231,7 +223,7 @@ public class ProbeCommonData extends LogData { prep.setInt(index++, pid); prep.setInt(index++, tid); prep.setString(index++, args); - prep.setLong(index++, ret); + prep.setString(index++, ret); prep.setLong(index++, errno); prep.setInt(index++, internalCall); prep.setLong(index++, callerAddress); @@ -249,7 +241,7 @@ public class ProbeCommonData extends LogData { pid = rs.getInt(index++); tid = rs.getInt(index++); args = rs.getString(index++); - ret = rs.getLong(index++); + ret = rs.getString(index++); errno = rs.getLong(index++); internalCall = rs.getInt(index++); callerAddress = rs.getLong(index++); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java index 7195645..d69a584 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java @@ -25,13 +25,13 @@ */ package org.tizen.dynamicanalyzer.swap.model.data; +import static org.tizen.dynamicanalyzer.common.CommonConstants.INT_SIZE; +import static org.tizen.dynamicanalyzer.common.CommonConstants.LONG_SIZE; import static org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants.MSG_CONTEXT_SWITCH_ENTRY; import static org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants.MSG_CONTEXT_SWITCH_EXIT; import static org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants.MSG_DATA_SAMPLE; import static org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants.MSG_FUNCTION_ENTRY; import static org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants.MSG_FUNCTION_EXIT; -import static org.tizen.dynamicanalyzer.common.CommonConstants.INT_SIZE; -import static org.tizen.dynamicanalyzer.common.CommonConstants.LONG_SIZE; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -42,7 +42,6 @@ import org.tizen.dynamicanalyzer.swap.channel.control.BinaryInfo; import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfo; import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage; import org.tizen.dynamicanalyzer.swap.model.ByteUtils; -import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; public class ProfileData extends LogData { @@ -55,7 +54,7 @@ public class ProfileData extends LogData { int tid = 0; // profiling common int cpuNum = 0; // profiling common String args = null; // function entry specific - long ret = 0; + String ret = null; String apiName = null; int buildType = -1; @@ -93,6 +92,7 @@ public class ProfileData extends LogData { index += INT_SIZE; ArgsInfo info = LogDataUtils.parseArgs(data, index); args = info.getProfileArgs(); + index = info.getLastIndex(); break; case MSG_FUNCTION_EXIT: logCount++; @@ -106,7 +106,10 @@ public class ProfileData extends LogData { index += LONG_SIZE; cpuNum = ByteUtils.toInt(data, index); index += INT_SIZE; - ret = ByteUtils.toLong(data, index); + ArgsInfo retInfo = LogDataUtils.parseReturn(data, index); + ret = retInfo.getArgs(); + index = retInfo.getLastIndex(); + // ret = ByteUtils.toLong(data, index); break; case MSG_CONTEXT_SWITCH_ENTRY: case MSG_CONTEXT_SWITCH_EXIT: @@ -117,6 +120,7 @@ public class ProfileData extends LogData { tid = ByteUtils.toInt(data, index); index += INT_SIZE; cpuNum = ByteUtils.toInt(data, index); + index += INT_SIZE; break; case MSG_DATA_SAMPLE: pid = ByteUtils.toInt(data, index); @@ -126,6 +130,7 @@ public class ProfileData extends LogData { tid = ByteUtils.toInt(data, index); index += INT_SIZE; cpuNum = ByteUtils.toInt(data, index); + index += INT_SIZE; break; default: @@ -143,7 +148,7 @@ public class ProfileData extends LogData { } else { libName = binInfo.getTargetBinaryPath(); } -// System.out.println("plib name : " + libName); + // System.out.println("plib name : " + libName); } } @@ -212,20 +217,10 @@ public class ProfileData extends LogData { } public String getReturn() { - String retStr = null; - if (ret < 0x10000000) { - retStr = Long.toString(ret); - } else { - retStr = AnalyzerUtil.toHexdecimal(ret); - } - return retStr; + return ret; } - - public String getHexReturn() { - return AnalyzerUtil.toHexdecimal(ret); - } - - public void setRet(long ret) { + + public void setRet(String ret) { this.ret = ret; } @@ -259,7 +254,7 @@ public class ProfileData extends LogData { prep.setInt(index++, tid); prep.setInt(index++, cpuNum); prep.setString(index++, args); - prep.setLong(index++, ret); + prep.setString(index++, ret); prep.setString(index++, apiName); prep.setString(index++, libName); prep.setString(index++, callstack); @@ -277,7 +272,7 @@ public class ProfileData extends LogData { tid = rs.getInt(index++); cpuNum = rs.getInt(index++); args = rs.getString(index++); - ret = rs.getLong(index++); + ret = rs.getString(index++); apiName = rs.getString(index++); libName = rs.getString(index++); callstack = rs.getString(index++); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/format/CommonColumns.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/format/CommonColumns.java index 6832bfc..4877d8d 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/format/CommonColumns.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/format/CommonColumns.java @@ -37,10 +37,10 @@ public class CommonColumns { private static String[] dcn = { "APPID", "PID", "TID", "args", "Return", "Errno", "InternalCall", "CallerPCAddr", "Reserved1", "Reserved2", "LibName" }; - private static Integer[] dct = { I, I, I, T, L, L, I, L, I, I , T}; + private static Integer[] dct = { I, I, I, T, T, L, I, L, I, I , T}; private static String[] tcn = { "App ID", "PID", "TID", "Args", "Return", "Errno", "Internal Call", "Caller PCAddr", "Reserved1", "Reserved2", "LibName" }; - private static Integer[] logTypes = { I, I, I, T, L, L, I, L, I, I, T }; + private static Integer[] logTypes = { I, I, I, T, T, L, I, L, I, I, T }; private static List dbColumnNames = null; private static List dbColumnTypes = null; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/CustomLogParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/CustomLogParser.java index d2adba9..baf6db0 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/CustomLogParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/CustomLogParser.java @@ -79,7 +79,7 @@ public class CustomLogParser { String apiName = log.getApiName(); if (apiName.equals(API_NAME_CREATE_CHART)) { - long chartHandle = log.getOriginalReturn(); + long chartHandle = Long.parseLong(log.getReturn()); String chartName = log.getName(); chartManager.addCustomChart(new UserCustomChart((int) chartHandle, chartName)); @@ -93,7 +93,7 @@ public class CustomLogParser { return; } - long seriesHandle = log.getOriginalReturn(); + long seriesHandle = Long.parseLong(log.getReturn()); int seriesStyle = log.getType(); String seriesName = log.getName(); int colorIndex = log.getColor(); @@ -120,7 +120,7 @@ public class CustomLogParser { return; } - long seriesHandle = log.getOriginalReturn(); + long seriesHandle = Long.parseLong(log.getReturn()); int colorIndex = chart.getUnusedColorIndex(); String seriesName = log.getName(); -- 2.7.4