From 7c4b5c9ec49f5d88b2bddb2de918bdac761d567f Mon Sep 17 00:00:00 2001 From: jooyoul_lee Date: Thu, 12 Sep 2013 11:23:31 +0900 Subject: [PATCH] [Title] failed api, sort fixed [Desc.] [Issue] --- .../dynamicanalyzer/common/AnalyzerConstants.java | 2 +- .../dynamicanalyzer/handlers/OpenTraceHandler.java | 4 +- .../org/tizen/dynamicanalyzer/sql/SqlManager.java | 39 ++++--- .../swap/communicator/Communicator30.java | 115 +++++++++++---------- .../swap/logparser/MessageParser.java | 6 +- .../tizen/dynamicanalyzer/swap/model/DATime.java | 16 +-- .../swap/model/RecordEventObject.java | 39 ++++--- .../swap/model/data/BasicDataMessage.java | 8 +- .../swap/model/probe/ReplayLogFormat.java | 12 +-- .../swap/model/probe2/FailedData2.java | 11 +- .../swap/model/probe2/LogDataFactory.java | 8 +- .../swap/model/probe2/ReplayData.java | 10 +- .../dynamicanalyzer/ui/file/FileApiListTable.java | 10 ++ .../ui/summary/failed/FailedApiListView.java | 2 +- .../ui/summary/failed/FailedApiTable.java | 1 + .../ui/summary/warning/WarningData.java | 10 ++ .../ui/summary/warning/WarningTable.java | 94 ++++++++--------- .../ui/toolbar/StopLogProcessor.java | 31 +++--- .../ui/toolbar/TraceStartStopThread.java | 4 +- .../ui/toolbar/opentrace/OpenTraceDialog.java | 2 +- .../dynamicanalyzer/ui/widgets/DAMessageBox.java | 2 - .../ui/widgets/table/DATableComposite.java | 2 +- .../ui/widgets/table/DefaultTableComparator.java | 4 +- 23 files changed, 250 insertions(+), 182 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java index e6833a5..40c358a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java @@ -30,7 +30,7 @@ import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; public class AnalyzerConstants { // if log change occurs then increase save data version!! - public static final String SAVE_DATA_VERSION = "0.86"; //$NON-NLS-1$ + public static final String SAVE_DATA_VERSION = "0.87"; //$NON-NLS-1$ public static final boolean CHECK_INTERNAL = true; public static final String DA_VERSION_SWAP = "3.0"; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java index 94e7679..bc13d97 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java @@ -315,8 +315,8 @@ public class OpenTraceHandler extends AbstractHandler { ProcessInfo process = new ProcessInfo(); process.setPid(Integer.parseInt(info.get(0))); DATime startTime = new DATime(); - startTime.setSec(Long.parseLong(info.get(1))); - startTime.setNano(Long.parseLong(info.get(2))); + startTime.setSec(Integer.parseInt(info.get(1))); + startTime.setNano(Integer.parseInt(info.get(2))); process.setStartTime(startTime); process.setLowestAddress(Long.parseLong(info.get(3))); process.setHighestAddress(Long.parseLong(info.get(4))); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java index 18b4994..308d36e 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java @@ -54,10 +54,10 @@ import org.tizen.dynamicanalyzer.project.Project; import org.tizen.dynamicanalyzer.swap.model.RecordEventObject; import org.tizen.dynamicanalyzer.swap.model.control.TargetInfo; import org.tizen.dynamicanalyzer.swap.model.data.ApiNameManager; -import org.tizen.dynamicanalyzer.swap.model.data.BasicDataMessage; import org.tizen.dynamicanalyzer.swap.model.data.LibraryObject; import org.tizen.dynamicanalyzer.swap.model.data.ProcessInfo; import org.tizen.dynamicanalyzer.swap.model.probe.LogFormat; +import org.tizen.dynamicanalyzer.swap.model.probe.ReplayLogFormat; import org.tizen.dynamicanalyzer.swap.model.probe2.FailedData2; import org.tizen.dynamicanalyzer.swap.model.probe2.LeakData2; import org.tizen.dynamicanalyzer.swap.model.probe2.LogData; @@ -965,39 +965,46 @@ public class SqlManager { return logs; } - public List getReplayLogs() { + public ReplayData getReplayLogs() { String query = null; Statement stat = null; ResultSet rs = null; Connection conn = null; - List logs = null; + ReplayData output = null; try { conn = getConnection(); if (null == conn) { return null; } semaphoreAcquire(); - StringBuilder columns = new StringBuilder(); - columns.append("Rid , ID , SeqNumber , Time , payload "); - query = String.format("select %s from %s ;",//$NON-NLS-1$ - columns.toString(), "replay"); + StringBuffer buffer = new StringBuffer(); + List columnNames = ReplayLogFormat.getInstance() + .getDBColumnNames(); + for (int i = 0; i < columnNames.size(); i++) { + buffer.append(columnNames.get(i)); + if (i + 1 != columnNames.size()) { + buffer.append(","); + } + } + query = String.format("select %s from %s ;", buffer.toString(), + "replay"); stat = conn.createStatement(); rs = stat.executeQuery(query); if (null == rs) { return null; } - logs = new ArrayList(); + output = new ReplayData(); + List eventObjs = output.getRecordEvent(); while (rs.next()) { - BasicDataMessage bdm = new BasicDataMessage(); - bdm.setId(rs.getInt(2)); - bdm.setSeq(rs.getInt(3)); - bdm.setTime(rs.getLong(4)); - bdm.setPayload(rs.getBytes(5)); - logs.add(bdm); + RecordEventObject reObj = new RecordEventObject(); + reObj.loadData(rs); + eventObjs.add(reObj); } + + output.setObjectCount(eventObjs.size()); } catch (SQLException e) { - System.out.println("SQLException - selecte : " + query); + System.out.println("SQLException - select : " + query); e.printStackTrace(); } finally { AnalyzerUtil.tryClose(stat, rs); @@ -1005,7 +1012,7 @@ public class SqlManager { semaphoreRelease(); } } - return logs; + return output; } public List> selectQuery(String dbFilePath, 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 6c8e642..b951fba 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 @@ -46,6 +46,7 @@ import org.tizen.dynamicanalyzer.swap.model.control.RunTimeConfiguration; import org.tizen.dynamicanalyzer.swap.model.control.TargetInfo; import org.tizen.dynamicanalyzer.swap.model.control.UserSpaceInst; import org.tizen.dynamicanalyzer.swap.model.data.BasicDataMessage; +import org.tizen.dynamicanalyzer.swap.model.probe2.ReplayData; import org.tizen.dynamicanalyzer.ui.file.FileChartManager; import org.tizen.dynamicanalyzer.ui.summary.profiling.FunctionUsageProfiler; import org.tizen.dynamicanalyzer.ui.thread.ThreadChartManager; @@ -187,15 +188,14 @@ public class Communicator30 extends BaseCommunicator { // on/off , replay start time, count, event objs int onOff = 1; DATime startTime = ReplayTraceHandler.startTime; - List replayLogs = SqlManager.getInstance() + ReplayData replayData = SqlManager.getInstance() .getReplayLogs(); - int count = replayLogs.size(); + int count = replayData.getObjectCount(); byte[] eventObjs = null; for (int i = 0; i < count; i++) { - eventObjs = ByteUtils.concatByteArray(eventObjs, replayLogs - .get(i).getPayload()); + eventObjs = ByteUtils.concatByteArray(eventObjs, replayData.getRecordEvent() + .get(i).getByteValues()); } - replayEvent = ByteUtils.getByte(onOff, startTime.getSec(), startTime.getNano(), count, eventObjs); } else { @@ -203,11 +203,11 @@ public class Communicator30 extends BaseCommunicator { } // TODO: app inst , replay info added!! - byte[] rear = ByteUtils.getByte(appInfo.getByteValue(), - rt.getByteValue(), getUserSpaceInst().getByteValue(), - replayEvent); -// byte[] rear = ByteUtils.getByte(appInfo.getByteValue(), -// rt.getByteValue(), 0, 0); + byte[] rear = ByteUtils.getByte(appInfo.getByteValue(), + rt.getByteValue(), getUserSpaceInst().getByteValue(), + replayEvent); + // byte[] rear = ByteUtils.getByte(appInfo.getByteValue(), + // rt.getByteValue(), 0, 0); int length = rear.length; byte[] ret = ByteUtils.getByte(AnalyzerConstants.MSG_START_SWAP, @@ -399,43 +399,44 @@ public class Communicator30 extends BaseCommunicator { if (!targetHashCode.equals(localHashCode)) { String destFilePath = AnalyzerPaths.TEMP_FOLDER_PATH; -// + File.separator + selectedApp.getExecFileName(appInfo.getAppType()); - try{ - Runtime rt = Runtime.getRuntime(); - command = "/home/casval/tizen-sdk/tools/sdb root on | /home/casval/tizen-sdk/tools/sdb pull "+ targetPath + " " + destFilePath; - Process process = rt.exec(new String[] { - "/home/casval/tizen-sdk/tools/sdb", "root", "on"}); - process.waitFor(); - BufferedReader reader = new BufferedReader(new InputStreamReader( - process.getInputStream())); - BufferedReader error = new BufferedReader(new InputStreamReader( - process.getErrorStream())); - String line = reader.readLine(); - String errorStr = error.readLine(); - if (null == line) { - System.out.println("host md5sum get failed : " + errorStr); - return HostResult.ERR_BIN_INFO_GET_FAIL; - } + // + File.separator + + // selectedApp.getExecFileName(appInfo.getAppType()); + try { + Runtime rt = Runtime.getRuntime(); + command = "/home/casval/tizen-sdk/tools/sdb root on | /home/casval/tizen-sdk/tools/sdb pull " + + targetPath + " " + destFilePath; + Process process = rt.exec(new String[] { + "/home/casval/tizen-sdk/tools/sdb", "root", "on" }); + process.waitFor(); + BufferedReader reader = new BufferedReader( + new InputStreamReader(process.getInputStream())); + BufferedReader error = new BufferedReader( + new InputStreamReader(process.getErrorStream())); + String line = reader.readLine(); + String errorStr = error.readLine(); + if (null == line) { + System.out.println("host md5sum get failed : " + errorStr); + return HostResult.ERR_BIN_INFO_GET_FAIL; + } - }catch(IOException e) - { + } catch (IOException e) { e.printStackTrace(); - }catch(InterruptedException e) - { + } catch (InterruptedException e) { e.printStackTrace(); } -// -// SyncResult res = CommunicatorUtils.pull(targetPath, destFilePath); -// if (null != res && res.isOk()) { -// System.out.println("binary copy success!!");//$NON-NLS-1$ -// } else { -// System.out.println("Failed to get " + targetPath + " step 2"); //$NON-NLS-1$ -// return HostResult.ERR_BIN_INFO_GET_FAIL; -// } -// String[] splitName = binaryPath.split(CommonConstants.SLASH); -// binaryPath = AnalyzerPaths.TEMP_FOLDER_PATH + File.separator -// + new String(splitName[splitName.length - 1]); -// binInfo.setPath(binaryPath); + // + // SyncResult res = CommunicatorUtils.pull(targetPath, + // destFilePath); + // if (null != res && res.isOk()) { + // System.out.println("binary copy success!!");//$NON-NLS-1$ + // } else { + // System.out.println("Failed to get " + targetPath + " step 2"); //$NON-NLS-1$ + // return HostResult.ERR_BIN_INFO_GET_FAIL; + // } + // String[] splitName = binaryPath.split(CommonConstants.SLASH); + // binaryPath = AnalyzerPaths.TEMP_FOLDER_PATH + File.separator + // + new String(splitName[splitName.length - 1]); + // binInfo.setPath(binaryPath); } binInfo.setPath(binaryPath); @@ -466,18 +467,19 @@ public class Communicator30 extends BaseCommunicator { @Override public HostResult stopTrace() { - byte[] stop = ByteUtils.toBytes(AnalyzerConstants.MSG_STOP_SWAP); - int length = 0; - byte[] stopMsg = ByteUtils.getByte(stop, length); - HostResult result = handleControlMessage( - DACommunicator.getSelectedDevice(), stopMsg); - - if (result.isSuccess()) { - if (isCorrectAck(MSG_STOP_ACK, result)) { - return result; + if (DACommunicator.isRunning()) { + byte[] stop = ByteUtils.toBytes(AnalyzerConstants.MSG_STOP_SWAP); + int length = 0; + byte[] stopMsg = ByteUtils.getByte(stop, length); + HostResult result = handleControlMessage( + DACommunicator.getSelectedDevice(), stopMsg); + + if (result.isSuccess()) { + if (isCorrectAck(MSG_STOP_ACK, result)) { + return result; + } } } - return HostResult.ERR_MSG_STOP_FAIL; } @@ -516,18 +518,23 @@ public class Communicator30 extends BaseCommunicator { controlSock.getOutputStream().write(message); } - System.out.println("wait for ack... [send message : " + message + int msgId = ByteUtils.toInt(message); + System.out.println("wait for ack... [send message : " + msgId + " ]"); int readsize = -1; // read buffer size is sufficient?? byte[] cbuf = new byte[DACommunicator.READ_BUFFER_SIZE * 2]; blocked = true; + System.out.println("blocked"); readsize = controlSock.getInputStream().read(cbuf); blocked = false; + System.out.println("unblocked"); if (readsize > 0) { byte[] buf = new byte[readsize]; System.arraycopy(cbuf, 0, buf, 0, readsize); result = HostResult.SUCCESS; + int ackId = ByteUtils.toInt(buf); + System.out.println("ack id : " + ackId); result.setRet(buf); } else { result = HostResult.ERR_CONTROL_SOCKET_CONNECTION_CLOSED; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java index 50b4505..c7db2e4 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java @@ -147,9 +147,9 @@ public class MessageParser { int index = MSG_HEADER_SIZE; pid = ByteUtils.toInt(data, index); index += INT_SIZE; - long sec = ByteUtils.toInt(data, index); + int sec = ByteUtils.toInt(data, index); index += INT_SIZE; - long nano = ByteUtils.toInt(data, index); + int nano = ByteUtils.toInt(data, index); index += INT_SIZE; startTime.setSec(sec); startTime.setNano(nano); @@ -273,7 +273,7 @@ public class MessageParser { } //LOG! - ByteUtils.printByteArray(header); +// ByteUtils.printByteArray(header); int id = ByteUtils.toInt(header, 0); int payloadSize = ByteUtils.toInt(header, diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java index 719c418..ce4a57a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java @@ -1,23 +1,27 @@ package org.tizen.dynamicanalyzer.swap.model; public class DATime { - private long sec = 0; - private long nano = 0; + private int sec = 0; + private int nano = 0; - public long getSec() { + public int getSec() { return sec; } - public void setSec(long sec) { + public void setSec(int sec) { this.sec = sec; } - public long getNano() { + public int getNano() { return nano; } - public void setNano(long nano) { + public void setNano(int nano) { this.nano = nano; } + public byte[] getByteValues() { + return ByteUtils.getByte(sec, nano); + } + } 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 8c57d43..0053a01 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 @@ -1,12 +1,12 @@ package org.tizen.dynamicanalyzer.swap.model; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; -import org.tizen.dynamicanalyzer.common.AnalyzerConstants; -import org.tizen.dynamicanalyzer.swap.model.probe2.LogDataFactory; +import org.tizen.dynamicanalyzer.swap.model.probe2.LogData; -public class RecordEventObject { +public class RecordEventObject extends LogData { private DATime eventTime = null; private int eventId = 0; private int eventType = 0; @@ -56,15 +56,30 @@ public class RecordEventObject { public void makePreparedStatement(PreparedStatement prep) throws SQLException { - int logNum = LogDataFactory - .getLogCountById(AnalyzerConstants.MSG_DATA_RECORD); + super.makePreparedStatement(prep); + int index = LogData.STATE_COUNT + 1; - prep.setInt(1, logNum); - prep.setLong(2, eventTime.getSec()); - prep.setLong(3, eventTime.getNano()); - prep.setInt(4, eventId); - prep.setInt(5, eventType); - prep.setInt(6, eventCode); - prep.setInt(7, eventValue); + prep.setLong(index++, eventTime.getSec()); + prep.setLong(index++, eventTime.getNano()); + prep.setInt(index++, eventId); + prep.setInt(index++, eventType); + prep.setInt(index++, eventCode); + prep.setInt(index++, eventValue); + } + + public void loadData(ResultSet rs) throws SQLException { + super.loadData(rs); + int index = LogData.STATE_COUNT + 1; + eventTime.setSec(rs.getInt(index++)); + eventTime.setNano(rs.getInt(index++)); + eventId = rs.getInt(index++); + eventType = rs.getInt(index++); + eventCode = rs.getInt(index++); + eventValue = rs.getInt(index++); + } + + public byte[] getByteValues() { + return ByteUtils.getByte(eventTime.getByteValues(), eventId, eventType, + eventCode, eventValue); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/BasicDataMessage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/BasicDataMessage.java index 0eeef98..9fd809b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/BasicDataMessage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/BasicDataMessage.java @@ -79,13 +79,13 @@ public class BasicDataMessage { id = mappingId(id); seq = Integer.parseInt(input[LogCenterConstants.SEQUENCE_NUMBER_INDEX]); time = Long.parseLong(input[LogCenterConstants.TIME_INDEX]); - long sec = time / 10000; - long nano = time % 10000; + int sec = (int)(time / 10000); + int nano = (int)(time % 10000); nano *= 100000; DATime startTime = AnalyzerManager.getProject().getStartTime(); - long startSec = AnalyzerManager.getProject().getStartTime().getSec(); - long startNano = AnalyzerManager.getProject().getStartTime().getNano(); + int startSec = AnalyzerManager.getProject().getStartTime().getSec(); + int startNano = AnalyzerManager.getProject().getStartTime().getNano(); if (0 == startSec && 0 == startNano) { startTime.setSec(sec); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe/ReplayLogFormat.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe/ReplayLogFormat.java index c1e2aba..8ac22c1 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe/ReplayLogFormat.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe/ReplayLogFormat.java @@ -17,21 +17,21 @@ public class ReplayLogFormat extends LogFormat { private ReplayLogFormat() { setName(NAME); - String[] dcn = { "Rid", "SeqNumber", "Nano", "EventId", "EventType", - "EventCode", "EventValue" }; + String[] dcn = { "Rid", "MessageId", "SeqNumber", "Time", "Sec", "Nano", "EventId", + "EventType", "EventCode", "EventValue" }; dbColumnNames = new ArrayList(); dbColumnNames.addAll(Arrays.asList(dcn)); - Integer[] dct = { I, L, L, I, I, I, I }; + Integer[] dct = { I, I, L, L, I, I, I, I, I, I }; dbColumnTypes = new ArrayList(); dbColumnTypes.addAll(Arrays.asList(dct)); - String[] tcn = { "SeqNumber", "Nano", "EventId", "EventType", "EventCode", - "EventValue" }; + String[] tcn = { "Rid", "MessageId", "SeqNumber", "Time", "Sec", "Nano", "EventId", + "EventType", "EventCode", "EventValue" }; tableColumnNames = new ArrayList(); tableColumnNames.addAll(Arrays.asList(tcn)); - Integer[] types = { I, L, L, I, I, I, I }; + Integer[] types = { I, I, L, L, I, I, I, I, I, I }; logColumnTypes = new ArrayList(); logColumnTypes.addAll(Arrays.asList(types)); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/FailedData2.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/FailedData2.java index 3141ead..55c162e 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/FailedData2.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/FailedData2.java @@ -39,7 +39,7 @@ public class FailedData2 { public static final int CALLER_INDEX = 8; private static int LogNum = 0; - // private LogData data; + private LogData data; private int id = -1; private int seq = -1; @@ -60,6 +60,7 @@ public class FailedData2 { ret = plog.getReturn(); err = plog.getErrno(); callerPc = plog.getCallerPcAddr(); + data = log; } public FailedData2(List input) { @@ -110,4 +111,12 @@ public class FailedData2 { public long getCallerPc() { return callerPc; } + + public LogData getData() { + return data; + } + + public void setData(LogData data) { + this.data = data; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/LogDataFactory.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/LogDataFactory.java index ec38343..dc1fcde 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/LogDataFactory.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/LogDataFactory.java @@ -226,10 +226,10 @@ public class LogDataFactory { // system log output = new SystemData(); break; - case MSG_DATA_RECORD: - // replay log - output = new ReplayData(); - break; +// case MSG_DATA_RECORD: +// // replay log +// output = new ReplayData(); +// break; case MSG_CONTEXT_SWITCH_ENTRY: case MSG_CONTEXT_SWITCH_EXIT: output = new ContextSwitchData(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/ReplayData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/ReplayData.java index 1e1b0c8..f9799cd 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/ReplayData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/ReplayData.java @@ -29,9 +29,9 @@ public class ReplayData extends LogData { seq = ByteUtils.toInt(data, index); index += INT_SIZE; - long sec = ByteUtils.toInt(data, index); + int sec = ByteUtils.toInt(data, index); index += INT_SIZE; - long nano = ByteUtils.toInt(data, index); + int nano = ByteUtils.toInt(data, index); index += INT_SIZE; DATime eventTime = new DATime(); eventTime.setSec(sec); @@ -53,6 +53,11 @@ public class ReplayData extends LogData { for (int i = 0; i < count; i++) { RecordEventObject recordObj = new RecordEventObject(); + + recordObj.setId(id); + recordObj.setSeq(seq); + recordObj.setTime(time); + // event time recordObj.setEventTime(eventTime); @@ -89,4 +94,5 @@ public class ReplayData extends LogData { public List getRecordEvent() { return recordEvent; } + } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java index 047b7ad..dae50fa 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java @@ -114,27 +114,37 @@ public class FileApiListTable extends DAApiListTableComposite { content = contents.get(i); FileData contentTemp = content.getContents(); List contentText = new ArrayList(); + List contentData = new ArrayList(); int seq = contentTemp.getSeq(); contentText.add(0, Integer.toString(seq)); + contentData.add(Integer.toString(seq)); long time = contentTemp.getTime(); contentText.add(Formatter.toTimeFormat(time)); + contentData.add(Long.toString(time)); contentText.add(contentTemp.getApiName()); + contentData.add(contentTemp.getApiName()); contentText.add(contentTemp.getArgs()); + contentData.add(contentTemp.getArgs()); contentText.add(Integer.toString(contentTemp.getTid())); + contentData.add(Integer.toString(contentTemp.getTid())); contentText.add(Long.toString(contentTemp.getReturn())); + contentData.add(Long.toString(contentTemp.getReturn())); String errMsg = ErrorCodeManager.getInatance() .getErrorCode(contentTemp.getErrno()).name(); if (null == errMsg) { errMsg = "undefined error code"; //$NON-NLS-1$ } contentText.add(errMsg); + contentData.add(errMsg); contentText.add(Long.toString(contentTemp.getFileSize())); + contentData.add(Long.toString(contentTemp.getFileSize())); DATableDataFormat tableData = new DATableDataFormat( contentTemp.getSeq()); // contentTemp.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX)); tableData.setLogData(contentTemp); + tableData.getData().addAll(contentData); TableInput tableInput = new TableInput(); tableInput.setText(contentText); tableInput.setData(tableData); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiListView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiListView.java index 75498d3..4b3ec49 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiListView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiListView.java @@ -97,7 +97,7 @@ public class FailedApiListView extends DAView { @Override public void updateView() { -// tableComp.updateTable(); + tableComp.updateTable(); } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java index a445de3..eb7ff16 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java @@ -126,6 +126,7 @@ public class FailedApiTable extends DATableComposite { DATableDataFormat tableData = new DATableDataFormat( failedData.getSeq()); tableData.setObject(failedData); + tableData.setLogData(failedData.getData()); TableInput tableInput = new TableInput(); tableInput.setText(text); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningData.java index cedb20b..24bc0aa 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningData.java @@ -40,6 +40,7 @@ public class WarningData { private List data = null; private String key = null; private long callerPc = -1; + private LogData logData = null; public WarningData(int wCase, LogData data, String key) { seq = uNum++; @@ -47,6 +48,7 @@ public class WarningData { warningCase = wCase; this.key = key; callerPc = ((ProbeCommonData) data).getCallerPcAddr(); + logData = data; } public List getData() { @@ -79,4 +81,12 @@ public class WarningData { public long getCallerPc() { return callerPc; } + + public LogData getLogData() { + return logData; + } + + public void setLogData(LogData logData) { + this.logData = logData; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java index 45974ff..6b1bf21 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java @@ -86,52 +86,52 @@ public class WarningTable extends DATableComposite { } protected List makeTableInput() { -// List warningList = null; -// if (isRange) { -// warningList = RangeDataManager.getInstance().getWarningChecker() -// .getWarningData(); -// } else { -// warningList = AnalyzerManager.getWarningChecker().getWarningData(); -// } -// List input = new ArrayList(); -// int size = warningList.size(); -// for (int i = 0; i < size; i++) { -// // create text -// List text = new ArrayList(); -// WarningData warningData = warningList.get(i); -// List warningInput = warningData.getData(); -// -// text.add(warningInput.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX)); -// { -// if (AnalyzerConstants.MSG_PROBE_FILE == warningData -// .getCategory()) { -// String fdType = warningInput -// .get(LogCenterConstants.RESOURCE_FDTYPE_INDEX); -// int type = Integer.parseInt(fdType); -// if (type == LogCenterConstants.FD_TYPE_FILE) { -// text.add(SummaryLabels.WARNING_TABLE_FILE); -// } else { -// text.add(SummaryLabels.WARNING_TABLE_SOCKET); -// } -// } else { -// text.add(LogCenterConstants -// .getLogCenterNameFromId(warningData.getCategory())); -// } -// } -// String message = WarningChecker.messageMaker(warningData, true); -// text.add(message); -// // create images -// -// // create DATableDataFormat -// DATableDataFormat tableData = new DATableDataFormat( -// warningData.getSeq()); -// tableData.getData().addAll(warningData.getData()); -// TableInput tableInput = new TableInput(); -// tableInput.setText(text); -// tableInput.setData(tableData); -// input.add(tableInput); -// } -// return input; - return null; + List warningList = null; + if (isRange) { + warningList = RangeDataManager.getInstance().getWarningChecker() + .getWarningData(); + } else { + warningList = AnalyzerManager.getWarningChecker().getWarningData(); + } + List input = new ArrayList(); + int size = warningList.size(); + for (int i = 0; i < size; i++) { + // create text + List text = new ArrayList(); + WarningData warningData = warningList.get(i); + List warningInput = warningData.getData(); + + text.add(warningInput.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX)); + { + if (AnalyzerConstants.MSG_PROBE_FILE == warningData + .getCategory()) { + String fdType = warningInput + .get(LogCenterConstants.RESOURCE_FDTYPE_INDEX); + int type = Integer.parseInt(fdType); + if (type == LogCenterConstants.FD_TYPE_FILE) { + text.add(SummaryLabels.WARNING_TABLE_FILE); + } else { + text.add(SummaryLabels.WARNING_TABLE_SOCKET); + } + } else { + text.add(LogCenterConstants + .getLogCenterNameFromId(warningData.getCategory())); + } + } + String message = WarningChecker.messageMaker(warningData, true); + text.add(message); + // create images + + // create DATableDataFormat + DATableDataFormat tableData = new DATableDataFormat( + warningData.getSeq()); + tableData.getData().addAll(warningData.getData()); + tableData.setLogData(warningData.getLogData()); + TableInput tableInput = new TableInput(); + tableInput.setText(text); + tableInput.setData(tableData); + input.add(tableInput); + } + return input; } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java index 6f28471..e32c170 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java @@ -72,6 +72,20 @@ public class StopLogProcessor implements Runnable { Project project = AnalyzerManager.getProject(); int percent = 0; + int exitCount = 0; + while (DACommunicator.isWaitControlMessage() && exitCount < 1000) { + System.out.println("wait for STOP ACK message..."); + try { + Thread.sleep(10); + exitCount++; + if (exitCount % 20 == 0) { + StopProcessManager.getInstance().setValue(percent++); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + if (DACommunicator.isSWAPVersion()) { SWAPLogParser.stopLogParser(); } else { @@ -93,33 +107,22 @@ public class StopLogProcessor implements Runnable { percent += 10; StopProcessManager.getInstance().setValue(percent); - LogInserter.stopInsertLogThread(); + UIDataManager.getInstance().stopUpdateLogThread(); percent += 10; StopProcessManager.getInstance().setValue(percent); - UIDataManager.getInstance().stopUpdateLogThread(); + UpdateViewTimer.stop(); percent += 10; StopProcessManager.getInstance().setValue(percent); - UpdateViewTimer.stop(); + LogInserter.stopInsertLogThread(); percent += 10; StopProcessManager.getInstance().setValue(percent); - System.out.println("record thread stop"); UIRecorderTool.getInstance().stop(); percent += 10; StopProcessManager.getInstance().setValue(percent); - int exitCount = 0; - while (DACommunicator.isWaitControlMessage() && exitCount < 60) { - System.out.println("wait for control ack message..."); - try { - Thread.sleep(100); - exitCount++; - } catch (InterruptedException e) { - e.printStackTrace(); - } - } /* save Project */ System.out.println(" save project and others..."); //$NON-NLS-1$ diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/TraceStartStopThread.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/TraceStartStopThread.java index 4d17bfa..9d7c8f3 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/TraceStartStopThread.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/TraceStartStopThread.java @@ -77,8 +77,6 @@ public class TraceStartStopThread implements Runnable { }); ShortCutManager.getInstance().setEnabled(true); } else { - // AnalyzerUtil - // .setRecordState(RecordStateSourceProvider.RECORD_READY); AnalyzerManager.setRunningState(false); final String msg = isStarted.toString(); Display.getDefault().syncExec(new Runnable() { @@ -138,7 +136,7 @@ public class TraceStartStopThread implements Runnable { } }); - // DACommunicator.sendStopMessage(); +// DACommunicator.sendStopMessage(); DACommunicator.stopTrace(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceDialog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceDialog.java index cbe6324..4bfc1a3 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceDialog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceDialog.java @@ -509,7 +509,7 @@ public class OpenTraceDialog extends DAMessageBox { private boolean setDetailsInfo(String path) { boolean isSuccess = true; List pInfo = SqlManager.getInstance().getDetailsInfo(path); - if (null == pInfo || pInfo.isEmpty() || pInfo.size() < 9) { + if (null == pInfo || pInfo.isEmpty() || pInfo.size() < 8) { return false; } createTime = pInfo.get(AnalyzerConstants.PROJECT_CREATE_TIME_INDEX); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DAMessageBox.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DAMessageBox.java index 09c440a..e6167ce 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DAMessageBox.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DAMessageBox.java @@ -26,8 +26,6 @@ package org.tizen.dynamicanalyzer.ui.widgets; -import javax.swing.plaf.basic.BasicInternalFrameTitlePane.CloseAction; - import org.eclipse.jface.window.Window.IExceptionHandler; import org.eclipse.swt.SWT; import org.eclipse.swt.SWTException; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java index f0dc5e2..b7c5c3b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java @@ -352,7 +352,7 @@ public abstract class DATableComposite extends Composite { return; } if (null != comparator) { -// Collections.sort(input, comparator); + Collections.sort(input, comparator); } int[] sels = new int[selSeqs.size()]; int iii = 0; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DefaultTableComparator.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DefaultTableComparator.java index acef260..2b596b0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DefaultTableComparator.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DefaultTableComparator.java @@ -76,8 +76,8 @@ public class DefaultTableComparator implements Comparator { List data1 = tableData1.getData(); List data2 = tableData2.getData(); - str1 = data1.get(sourceColumn); - str2 = data2.get(sourceColumn); + str1 = data1.get(column); + str2 = data2.get(column); } else { List text1 = item1.getText(); List text2 = item2.getText(); -- 2.7.4