[Title] replay option enabled
authorjooyoul_lee <jy.exe.lee@samsung.com>
Sat, 28 Sep 2013 05:23:32 +0000 (14:23 +0900)
committerjooyoul_lee <jy.exe.lee@samsung.com>
Sat, 28 Sep 2013 05:23:32 +0000 (14:23 +0900)
[Desc.]
[Issue] -

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ReplayTraceHandler.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/RecordEventObject.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogFeaturesTableCellRenderer.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/ConfigurationDialogValues.java

index 4328a43..9b2156b 100644 (file)
@@ -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;
+       }
+
 }
index e3d9fe2..7b35337 100644 (file)
@@ -19,7 +19,7 @@ FEATURE_THREAD=Thread
 FEATURE_USERINTERFACE=UserInterface
 FEATURE_SCREENSHOT=Screenshot
 FEATURE_USER_EVENT=Event
-FEATURE_RECORDING=Recording <always on>
+FEATURE_RECORDING=Recording
 FEATURE_SYSCALL_FILE=System call file
 FEATURE_SYSCALL_IPC=System call ipc
 FEATURE_SYSCALL_PROCESS=System call process
index 6a955e2..2c6e814 100755 (executable)
@@ -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<Integer> 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;
+       }
+
 }
index 25568dd..d6b1bcb 100755 (executable)
@@ -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,
index ed7c196..3b4114d 100755 (executable)
@@ -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$
index 0053a01..2b97677 100644 (file)
@@ -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;
index 33f7393..f46b980 100644 (file)
@@ -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<String> text = new ArrayList<String>();
                List<String> data = new ArrayList<String>();
@@ -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());
index 805a968..7b2832b 100755 (executable)
@@ -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";
index 5188d7c..46953b3 100644 (file)
@@ -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);
index 6da82ec..81ca8e7 100644 (file)
@@ -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");