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;
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()) {
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;
}
});
}
}
+
+ public static byte[] getReplayEvent() {
+ return replayEvent;
+ }
+
}
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
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;
// 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;
private long lastTime = 0;
private long stopTime = -1;
+ private byte[] replayEvent = null;
+
// private TargetInfo targetInfo = new TargetInfo();
private ProcessInfo processInfo = new ProcessInfo();
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() {
return FunctionUsageProfiler.getInstance().getProfileDataMaker()
.getTotalSampleCount();
}
+
+ public byte[] getReplayEvent() {
+ return replayEvent;
+ }
+
}
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;
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,
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$
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;
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) {
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>();
e.printStackTrace();
text.add(Long.toString(time));
} // 3
+
tableData.setObject(leakData.getName());
text.add(leakData.getParam()); // 4
data.add(leakData.getParam());
package org.tizen.dynamicanalyzer.ui.toolbar;
import java.io.File;
-import java.io.IOException;
import java.util.HashMap;
import java.util.List;
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;
@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";
} 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);
}
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);
String preStatus = mConfig.getValue(featureName);
if (featureStatus == Integer.parseInt(preStatus)) {
- return true;
+ return false;
}
- return false;
+ return true;
}
private boolean isChangeFeatuesValues(boolean featureStatus,
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");
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");