From da7eead1b1452434538188864ea6e017e1f9952c Mon Sep 17 00:00:00 2001 From: "Hyunjong,park" Date: Mon, 9 Dec 2013 18:15:32 +0900 Subject: [PATCH] [Title] add feature calltraceTable [Desc.] filtering print log by pid [Issue] - --- .../org/tizen/dynamicanalyzer/sql/SqlManager.java | 10 ++++-- .../swap/channel/data/ProcessInfoPackage.java | 9 ++++++ .../swap/model/data/LogDataFactory.java | 8 ----- .../dynamicanalyzer/ui/file/FileDataMaker.java | 2 +- .../ui/timeline/calltrace/CallTraceTable.java | 37 +++++++++++++++++++--- .../userinterface/control/UIControlListTable.java | 4 +-- .../ui/userinterface/scene/UISceneListTable.java | 3 +- 7 files changed, 55 insertions(+), 18 deletions(-) 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 e75009b..f0103a8 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java @@ -71,8 +71,8 @@ import org.tizen.dynamicanalyzer.ui.summary.profiling.ProfilingData; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; public class SqlManager { -// private static final int PERMIT = 1; -// private Semaphore semaphore = new Semaphore(PERMIT); + // private static final int PERMIT = 1; + // private Semaphore semaphore = new Semaphore(PERMIT); private static SqlManager instance = null; private Connection connection = null; @@ -400,6 +400,12 @@ public class SqlManager { logData = input.get(i); if (logData.getId() != DataChannelConstants.MSG_DATA_RECORD) { logData.makePreparedStatement(prep); + if (logData.getId() == DataChannelConstants.MSG_FUNCTION_ENTRY) { + ProcessInfoPackage processInfoPkg = AnalyzerManager + .getProject().getProcessInfo(logData.getPid()); + processInfoPkg.addFunctionEntryInsertLogCount(); + } + prep.addBatch(); } else { ReplayData replayData = (ReplayData) logData; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfoPackage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfoPackage.java index 884eeda..272e85c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfoPackage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfoPackage.java @@ -10,6 +10,7 @@ public class ProcessInfoPackage { private int pid = -1; private int ppid = -1; private String targetBinaryPath = null; + private int functionEntryInsertLogCount = 0; private List processSnapshots = new ArrayList(); @@ -75,4 +76,12 @@ public class ProcessInfoPackage { } return processSnapshots.get(size - 1); } + + public int getFunctionEntryInsertLogCount() { + return functionEntryInsertLogCount; + } + + public void addFunctionEntryInsertLogCount() { + this.functionEntryInsertLogCount++; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java index 47ed568..e58bb51 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java @@ -89,7 +89,6 @@ public class LogDataFactory { private static int recordLogNum = 0; private static int userFunctionLogNum = 0; private static int gles20LogNum = 0; - private static int profilingEntryLogNum = 0; private static int profilingLogNum = 0; private static int contextSwitchLogNum = 0; @@ -476,9 +475,7 @@ public class LogDataFactory { case MSG_CONTEXT_SWITCH_ENTRY: case MSG_CONTEXT_SWITCH_EXIT: return contextSwitchLogNum++; - case MSG_FUNCTION_ENTRY: - profilingEntryLogNum++; case MSG_FUNCTION_EXIT: case MSG_DATA_SAMPLE: return profilingLogNum++; @@ -504,11 +501,6 @@ public class LogDataFactory { recordLogNum = 0; userFunctionLogNum = 0; gles20LogNum = 0; - profilingEntryLogNum = 0; contextSwitchLogNum = 0; } - - public static int getProfilingLogNum() { - return profilingEntryLogNum; - } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileDataMaker.java index 861cec5..a968245 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileDataMaker.java @@ -351,7 +351,7 @@ public class FileDataMaker { initFileChart(chart, true); } else { DAChartBoardItem parentItem = parent.getItem(); - if (sync.getFD() > 999999999) { + if (sync.getFD() > 0x10000000) { item = new DAChartBoardItem(parentItem, "0x"//$NON-NLS-1$ + Long.toHexString(sync.getFD())); } else { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java index a8f6109..7cd31df 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java @@ -27,7 +27,11 @@ package org.tizen.dynamicanalyzer.ui.timeline.calltrace; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridItem; @@ -40,8 +44,8 @@ import org.tizen.dynamicanalyzer.common.DASelectionData; import org.tizen.dynamicanalyzer.model.TableInput; import org.tizen.dynamicanalyzer.sql.SqlManager; import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants; +import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage; import org.tizen.dynamicanalyzer.swap.model.data.LogData; -import org.tizen.dynamicanalyzer.swap.model.data.LogDataFactory; import org.tizen.dynamicanalyzer.swap.model.data.ProfileData; import org.tizen.dynamicanalyzer.swap.model.data.UserFunctionData; import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; @@ -150,19 +154,43 @@ public class CallTraceTable extends DAWindowingTableComposite { protected int getItemCount() { if (AnalyzerManager.isRunning()) { // trace - setDbInsetedItemCount(LogDataFactory.getProfilingLogNum()); + setDbInsetedItemCount(getItemCountByPid()); } else { if (getDbInsetedItemCount() == 0) { // open setDbInsetedItemCount(SqlManager.getInstance() .getTableItemCount(getDBTableName(), getSelectQueryOption())); - } else if (LogDataFactory.getProfilingLogNum() > 0) { // stop - setDbInsetedItemCount(LogDataFactory.getProfilingLogNum()); + } else if (getItemCountByPid() > 0) { // stop + setDbInsetedItemCount(getItemCountByPid()); } } return getDbInsetedItemCount(); } + private int getItemCountByPid() { + if (null == AnalyzerManager.getProject()) { + return 0; + } + int itemCount = 0; + int selectedPid = ToolbarArea.getInstance().getSelectedPid(); + if (selectedPid != 0) { + ProcessInfoPackage processInfoPkg = AnalyzerManager.getProject() + .getProcessInfo(selectedPid); + itemCount = processInfoPkg.getFunctionEntryInsertLogCount(); + } else { + Set> set = AnalyzerManager + .getProject().getProcessInfoPackHash().entrySet(); + Iterator> itr = set.iterator(); + while (itr.hasNext()) { + Map.Entry e = (Map.Entry) itr + .next(); + ProcessInfoPackage processInfoPkg = e.getValue(); + itemCount += processInfoPkg.getFunctionEntryInsertLogCount(); + } + } + return itemCount; + } + public void setSelectionByTime(long startTime, long endTime) { selectionStartTime = SqlManager.getInstance().getSelectionTime( getDBTableName(), startTime, getSelectQueryOption()); @@ -182,6 +210,7 @@ public class CallTraceTable extends DAWindowingTableComposite { if (selectedPid != 0) { query += " and pid =" + selectedPid;//$NON-NLS-1$ } + query += " order by time"; return query; } } \ No newline at end of file diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/control/UIControlListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/control/UIControlListTable.java index 046fc3e..63c4342 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/control/UIControlListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/control/UIControlListTable.java @@ -265,10 +265,10 @@ public class UIControlListTable extends DATreeComposite { int size = controlList.size(); int nNodeDepth = 0; for (int i = 0; i < size; i++) { - int selectedPid = ToolbarArea.getInstance().getSelectedPid(); if (selectedPid != 0) { - if (!controlList.get(i).getPID().equals(selectedPid)) { + String pid = controlList.get(i).getPID().trim(); + if (!pid.equals(Integer.toString(selectedPid))) { continue; } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/scene/UISceneListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/scene/UISceneListTable.java index f457bd0..10ca92f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/scene/UISceneListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/userinterface/scene/UISceneListTable.java @@ -107,7 +107,8 @@ public class UISceneListTable extends DATableComposite { int selectedPid = ToolbarArea.getInstance().getSelectedPid(); if (selectedPid != 0) { - if (!transfomSceneList.get(i).getPID().equals(selectedPid)) { + if (!transfomSceneList.get(i).getPID() + .equals(Integer.toString(selectedPid))) { continue; } } -- 2.7.4