From: jooyoul_lee Date: Sat, 28 Sep 2013 05:23:32 +0000 (+0900) Subject: [Title] replay option enabled X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=214f20b3d2742179a4d1c22a021194dd32abaa17;p=sdk%2Ftools%2Fdynamic-analyzer.git [Title] replay option enabled [Desc.] [Issue] - --- diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java index 4328a43..9b2156b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java @@ -32,7 +32,10 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.communicator.DACommunicator; +import org.tizen.dynamicanalyzer.sql.SqlManager; +import org.tizen.dynamicanalyzer.swap.model.ByteUtils; import org.tizen.dynamicanalyzer.swap.model.DATime; +import org.tizen.dynamicanalyzer.swap.model.probe2.ReplayData; import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea; import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialogValues; import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool; @@ -48,6 +51,11 @@ public class ReplayTraceHandler extends AbstractHandler { public static long stopTime = -1; public static String RECORD_DATA_FILE_NAME = "/uirecorder.xml"; //$NON-NLS-1$ + public final static int REPLAY_OFF = 0; + public final static int REPLAY_ON = 1; + + private static byte[] replayEvent = null; + @Override public Object execute(ExecutionEvent event) throws ExecutionException { if (!DACommunicator.isSWAPVersion()) { @@ -67,6 +75,18 @@ public class ReplayTraceHandler extends AbstractHandler { isReplay = true; stopTime = AnalyzerManager.getProject().getStopTime(); startTime = AnalyzerManager.getProject().getStartTime(); + + // make replay event + // on/off , replay start time, count, event objs + ReplayData replayData = SqlManager.getInstance().getReplayLogs(); + int count = replayData.getObjectCount(); + byte[] eventObjs = null; + for (int i = 0; i < count; i++) { + eventObjs = ByteUtils.concatByteArray(eventObjs, replayData + .getRecordEvent().get(i).getByteValues()); + } + replayEvent = ByteUtils.getByte(REPLAY_ON, startTime.getSec(), + startTime.getNano(), count, eventObjs); } return null; } @@ -85,4 +105,9 @@ public class ReplayTraceHandler extends AbstractHandler { }); } } + + public static byte[] getReplayEvent() { + return replayEvent; + } + } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties index e3d9fe2..7b35337 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties @@ -19,7 +19,7 @@ FEATURE_THREAD=Thread FEATURE_USERINTERFACE=UserInterface FEATURE_SCREENSHOT=Screenshot FEATURE_USER_EVENT=Event -FEATURE_RECORDING=Recording +FEATURE_RECORDING=Recording FEATURE_SYSCALL_FILE=System call file FEATURE_SYSCALL_IPC=System call ipc FEATURE_SYSCALL_PROCESS=System call process diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java index 6a955e2..2c6e814 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java @@ -36,8 +36,10 @@ import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.common.AnalyzerPaths; import org.tizen.dynamicanalyzer.common.CommonConstants; import org.tizen.dynamicanalyzer.communicator.DACommunicator; +import org.tizen.dynamicanalyzer.handlers.ReplayTraceHandler; import org.tizen.dynamicanalyzer.model.DeviceInfo; import org.tizen.dynamicanalyzer.sql.SqlManager; +import org.tizen.dynamicanalyzer.swap.model.ByteUtils; import org.tizen.dynamicanalyzer.swap.model.DATime; import org.tizen.dynamicanalyzer.swap.model.control.TargetInfo; import org.tizen.dynamicanalyzer.swap.model.data.ProcessInfo; @@ -58,6 +60,7 @@ public class Project { // public static final int COLUMN_SIZE = 8; private final static int MAX_FILENAME_LENGTH = 50; + private final String DEFAULT_TIME_FORMAT = "_yyyy-MM-dd-HH-mm-ss";//$NON-NLS-1$ private String appName = null; private String pkgId = null; @@ -71,6 +74,8 @@ public class Project { private long lastTime = 0; private long stopTime = -1; + private byte[] replayEvent = null; + // private TargetInfo targetInfo = new TargetInfo(); private ProcessInfo processInfo = new ProcessInfo(); @@ -236,22 +241,20 @@ public class Project { samallImage.mkdirs(); } - // initLogCenters(null); AnalyzerManager.setProject(this); // create table SqlManager.getInstance().createProjectTable(this); -// List ids = LogDataFactory.getLogList(); -// int size = ids.size(); -// for (int i = 0; i < size; i++) { -// if (AnalyzerManager.isExit()) { -// return; -// } -// SqlManager.getInstance().createTable(ids.get(i)); -// } // create save tables SqlManager.getInstance().createProbeTable(); SqlManager.getInstance().createTables(); + + // create replay data + if (ReplayTraceHandler.isReplay) { + replayEvent = ReplayTraceHandler.getReplayEvent(); + } else { + replayEvent = ByteUtils.getByte(ReplayTraceHandler.REPLAY_OFF); + } } public String getSavePath() { @@ -318,4 +321,9 @@ public class Project { return FunctionUsageProfiler.getInstance().getProfileDataMaker() .getTotalSampleCount(); } + + public byte[] getReplayEvent() { + return replayEvent; + } + } 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 25568dd..d6b1bcb 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 @@ -47,6 +47,7 @@ import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; +import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.common.AnalyzerPaths; import org.tizen.dynamicanalyzer.common.AnalyzerShellCommands; import org.tizen.dynamicanalyzer.common.CommonConstants; @@ -208,32 +209,10 @@ public class Communicator30 extends BaseCommunicator { RunTimeConfiguration rt = new RunTimeConfiguration(); rt.setFeatures(ConfigureManager.getInstance().getConfiguration()); - byte[] replayEvent = null; - // check replay mode - if (ReplayTraceHandler.isReplay) { - // make replay event - // on/off , replay start time, count, event objs - int onOff = 1; - DATime startTime = ReplayTraceHandler.startTime; - ReplayData replayData = SqlManager.getInstance().getReplayLogs(); - int count = replayData.getObjectCount(); - byte[] eventObjs = null; - for (int i = 0; i < count; i++) { - eventObjs = ByteUtils.concatByteArray(eventObjs, replayData - .getRecordEvent().get(i).getByteValues()); - } - replayEvent = ByteUtils.getByte(onOff, startTime.getSec(), - startTime.getNano(), count, eventObjs); - } else { - replayEvent = ByteUtils.getByte(0); - } - - // TODO: app inst , replay info added!! + byte[] replayData = AnalyzerManager.getProject().getReplayEvent(); byte[] rear = ByteUtils.getByte(appInfo.getByteValue(), rt.getByteValue(), getUserSpaceInst().getByteValue(), - replayEvent); - // byte[] rear = ByteUtils.getByte(appInfo.getByteValue(), - // rt.getByteValue(), 0, 0); + replayData); int length = rear.length; byte[] ret = ByteUtils.getByte(AnalyzerConstants.MSG_START_SWAP, diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java index ed7c196..3b4114d 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java @@ -329,19 +329,19 @@ public class SWAPLogParser implements Runnable { baseAddr); /** debug code */ - System.out.print("id : "); - AnalyzerUtil.printHexdecimal(input.getId()); - System.out.print(" function name : " + functionName + "[ low :"); - AnalyzerUtil.printHexdecimal(Long.parseLong(baseAddr)); - System.out.print(" high : "); - AnalyzerUtil.printHexdecimal(Long.parseLong(highAddr)); - System.out.print(" pcAddr : "); - AnalyzerUtil.printHexdecimal(Long.parseLong(pcAddr)); - System.out.print(" probe type : "); - AnalyzerUtil.printHexdecimal(input.getProbeType()); - System.out.print(" subtype : "); - AnalyzerUtil.printHexdecimal(input.getProbeSubType()); - System.out.println(" ]"); +// System.out.print("id : "); +// AnalyzerUtil.printHexdecimal(input.getId()); +// System.out.print(" function name : " + functionName + "[ low :"); +// AnalyzerUtil.printHexdecimal(Long.parseLong(baseAddr)); +// System.out.print(" high : "); +// AnalyzerUtil.printHexdecimal(Long.parseLong(highAddr)); +// System.out.print(" pcAddr : "); +// AnalyzerUtil.printHexdecimal(Long.parseLong(pcAddr)); +// System.out.print(" probe type : "); +// AnalyzerUtil.printHexdecimal(input.getProbeType()); +// System.out.print(" subtype : "); +// AnalyzerUtil.printHexdecimal(input.getProbeSubType()); +// System.out.println(" ]"); if (null == functionName || functionName.isEmpty() || functionName.equals("_end")) { //$NON-NLS-1$ diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/RecordEventObject.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/RecordEventObject.java index 0053a01..2b97677 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/RecordEventObject.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/RecordEventObject.java @@ -7,7 +7,7 @@ import java.sql.SQLException; import org.tizen.dynamicanalyzer.swap.model.probe2.LogData; public class RecordEventObject extends LogData { - private DATime eventTime = null; + private DATime eventTime = new DATime(); private int eventId = 0; private int eventType = 0; private int eventCode = 0; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java index 33f7393..f46b980 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java @@ -82,7 +82,9 @@ public class LeakTable extends DATreeComposite { DATableDataFormat dataFormat = (DATableDataFormat) items[0] .getData(); - long time = dataFormat.getLogData().getTime(); + // LeakData2 leakData = (LeakData2) dataFormat.getObject(); + String timeStr = dataFormat.getData().get(3); // 3 -> time + long time = Long.parseLong(timeStr); String id = LeakView.ID; if (isRange) { @@ -149,7 +151,6 @@ public class LeakTable extends DATreeComposite { private TreeInput makeInput(LeakData2 leakData) { DATableDataFormat tableData = new DATableDataFormat( leakData.getLeakSeq()); - tableData.setObject(leakData); List text = new ArrayList(); List data = new ArrayList(); @@ -178,6 +179,7 @@ public class LeakTable extends DATreeComposite { e.printStackTrace(); text.add(Long.toString(time)); } // 3 + tableData.setObject(leakData.getName()); text.add(leakData.getParam()); // 4 data.add(leakData.getParam()); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java index 805a968..7b2832b 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java @@ -28,7 +28,6 @@ package org.tizen.dynamicanalyzer.ui.toolbar; import java.io.File; -import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -61,7 +60,10 @@ import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; +import org.tizen.dynamicanalyzer.sql.SqlManager; import org.tizen.dynamicanalyzer.swap.model.ByteUtils; +import org.tizen.dynamicanalyzer.swap.model.DATime; +import org.tizen.dynamicanalyzer.swap.model.probe2.ReplayData; import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage; import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialog; import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceDialog; @@ -406,14 +408,17 @@ public class ToolbarArea { @Override public void handleClickEvent(DACustomButton button) { - try { - byte[] testbuf = new byte[1024]; - DACommunicator.getSelectedDevice().getDataSock() - .getInputStream().read(testbuf); - ByteUtils.printByteArray(testbuf); - } catch (IOException e) { - e.printStackTrace(); - } +// ReplayData replayData = SqlManager.getInstance().getReplayLogs(); +// DATime startTime = AnalyzerManager.getProject().getStartTime(); +// int count = replayData.getObjectCount(); +// byte[] eventObjs = null; +// for (int i = 0; i < count; i++) { +// eventObjs = ByteUtils.concatByteArray(eventObjs, replayData +// .getRecordEvent().get(i).getByteValues()); +// } +// byte[] replayEvent = ByteUtils.getByte(1, startTime.getSec(), +// startTime.getNano(), count, eventObjs); +// System.out.println(); // TODO : use for test code... // String path = // "/home/casval/work/testApp/DATizenTestApp/Dynamic Analyzer/DATizenTestApp.exe"; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogFeaturesTableCellRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogFeaturesTableCellRenderer.java index 5188d7c..46953b3 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogFeaturesTableCellRenderer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogFeaturesTableCellRenderer.java @@ -95,9 +95,9 @@ public class ConfigurationDialogFeaturesTableCellRenderer extends } else { checkImg = ImageResources.CHECKBOX_UNSELECTED; } - if (item.getText(1).contains(ConfigureLabels.FEATURE_RECORDING)) { // the recording function determined to be always on. - checkImg = ImageResources.CHECKBOX_SELECTED_DISABLE; - } +// if (item.getText(1).contains(ConfigureLabels.FEATURE_RECORDING)) { // the recording function determined to be always on. +// checkImg = ImageResources.CHECKBOX_SELECTED_DISABLE; +// } gc.drawImage(checkImg, 6, getBounds().y + 1); } @@ -177,9 +177,10 @@ public class ConfigurationDialogFeaturesTableCellRenderer extends GridItem item = (GridItem) value; if (event == IInternalWidget.LeftMouseButtonDown) { if (overCheck(item, point)) { - if (item.getText(1).contains(ConfigureLabels.FEATURE_RECORDING)) { // the recording function determined to be always on. - item.setChecked(true); - } else if (item.getChecked() == true) { +// if (item.getText(1).contains(ConfigureLabels.FEATURE_RECORDING)) { // the recording function determined to be always on. +// item.setChecked(true); +// } else + if (item.getChecked() == true) { item.setChecked(false); } else { item.setChecked(true); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogValues.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogValues.java index 6da82ec..81ca8e7 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogValues.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogValues.java @@ -550,9 +550,9 @@ public class ConfigurationDialogValues { String preStatus = mConfig.getValue(featureName); if (featureStatus == Integer.parseInt(preStatus)) { - return true; + return false; } - return false; + return true; } private boolean isChangeFeatuesValues(boolean featureStatus, @@ -606,11 +606,12 @@ public class ConfigurationDialogValues { System.out.println("change values EVENT"); } } else if (featueName.equals(ConfigureLabels.FEATURE_RECORDING)) { + int prev = getRecording(); if (isChangeFeatuesValues(getRecording(), featueName)) { - System.out.println("change values RECORDING"); + System.out.println("change values RECORDING :" + prev + + " to " + getRecording()); } } - else if (featueName.equals(ConfigureLabels.FEATURE_SYSCALL_FILE)) { if (isChangeFeatuesValues(getSyscallFile(), featueName)) { System.out.println("change values syscall file"); @@ -657,7 +658,6 @@ public class ConfigurationDialogValues { System.out.println("change values sampling"); } } - else if (featueName.equals(ConfigureLabels.FEATURE_SYSTEM_CPU)) { if (isChangeFeatuesValues(getSystemCpu(), featueName)) { System.out.println("change values system cpu");