Function : remove TYPE column in FUNCTION_ENTRY table
authorheeyoung <heeyoung1008.hwang@samsung.com>
Thu, 18 Jun 2015 06:24:57 +0000 (15:24 +0900)
committerheeyoung <heeyoung1008.hwang@samsung.com>
Mon, 22 Jun 2015 09:35:10 +0000 (18:35 +0900)
Change-Id: Ica343deb7699a0e80b5922c54df9deb102503c37
Signed-off-by: heeyoung <heeyoung1008.hwang@samsung.com>
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/LogParser.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/manager/FileDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionEntryDBTable.java

index 2f9b033..e2daaa2 100755 (executable)
@@ -38,6 +38,7 @@ import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.common.Global;
 import org.tizen.dynamicanalyzer.common.SymbolManager;
 import org.tizen.dynamicanalyzer.communicator.DeviceInfo;
+import org.tizen.dynamicanalyzer.communicator.UnsupportedProtocolException;
 import org.tizen.dynamicanalyzer.control.DataThread;
 import org.tizen.dynamicanalyzer.nl.InformationViewLabels;
 import org.tizen.dynamicanalyzer.protocol.Protocol;
@@ -271,13 +272,25 @@ public class LogParser extends DataThread<List<LogData>> {
                        }
                }
                
-               if(pData.getProtocolVersion() == Protocol.VERSION_30.getID() 
-                               && pData.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_FILE) {
-                       return true;
+               // type check about protocol 3.0
+               // 1. file : return(true) without makeUserCallstack()
+               // 2. syscall : return(false). The message does not pass any longer.
+               if(pData.getProtocolVersion() == Protocol.VERSION_30.getID()) {
+                       try {
+                               if (pData.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_FILE) {
+                                       return true;
+                               } else if (pData.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_SYSCALL) {
+                                       // Do nothing about the syscall type data in function entry / exit message.
+                                       return false;   
+                               }
+                       } catch (UnsupportedProtocolException e) {
+                               Logger.exception(e);
+                               return false;
+                       }
                }
 
-               int apiID = SymbolManager.getFuncId(pData, pData.getPcAddr(),
-                               pData.getPid(), pData.getTime());
+               // get functionID
+               int apiID = SymbolManager.getFuncId(pData, pData.getPcAddr(), pData.getPid(), pData.getTime());
                if (apiID < 0) {
                        return false;
                } else {
@@ -289,6 +302,7 @@ public class LogParser extends DataThread<List<LogData>> {
                        }
                }
 
+               // make user callstack
                Global.getRuntimeCallstackManager().makeUserCallstack(pData,
                                FunctionUsageProfiler.getInstance().getProfileDataMakerByPid( pData.getPid()));
 
@@ -412,23 +426,31 @@ public class LogParser extends DataThread<List<LogData>> {
        }
 
        private void packLog(LogData logData, LogPackage logPack) {
-               // a special case for file analysis
+               // a special case for file analysis : change the messageID (MSG_FUCNTION_ENTRY_EXIT.)
+               // protocol 3.0
                if (logData.getProtocolVersion() == Protocol.VERSION_30.getID()) {
                        if (logData.getMsgID() == ProtocolConstants.MSG_FUNCTION_ENTRY
                                        || logData.getMsgID() == ProtocolConstants.MSG_FUNCTION_EXIT) {
                                ProfileData data = (ProfileData) logData;
-                               if (data.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_FILE) {
-                                       logPack.setLogs(ProtocolConstants.MSG_FUCNTION_ENTRY_EXIT, logData);
+                               try {
+                                       if (data.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_FILE) {
+                                               logPack.setLogs(ProtocolConstants.MSG_FUCNTION_ENTRY_EXIT, logData);
+                                               return;
+                                       }
+                               } catch (UnsupportedProtocolException e) {
+                                       Logger.exception(e);
                                        return;
                                }
                        }
-               } else {
+               } else {        // protocol 4.0
                        if (logData.getMsgID() == ProtocolConstants.MSG_FILE_FUNCTION_ENTRY
                                        || logData.getMsgID() == ProtocolConstants.MSG_FILE_FUNCTION_EXIT) {
                                logPack.setLogs(ProtocolConstants.MSG_FUCNTION_ENTRY_EXIT, logData);
                                return;
                        }
                }
+               
+               // set log
                logPack.setLogs(logData.getMsgID(), logData);
        }
 }
index 355d7a9..fd69240 100644 (file)
@@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.swap.model.data;
 
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.common.Global;
+import org.tizen.dynamicanalyzer.communicator.UnsupportedProtocolException;
 import org.tizen.dynamicanalyzer.model.DATime;
 import org.tizen.dynamicanalyzer.protocol.Protocol;
 import org.tizen.dynamicanalyzer.protocol.ProtocolConstants;
@@ -151,6 +152,8 @@ public class ProfileData extends LogData {
                        break;
                }
 
+               // do nothing : 
+               // (protocolversion == Protocol.VERSION_30.getID()) && (probeType == AnalyzerConstants.FUNCTION_TYPE_FILE)
                if (protocolVersion != Protocol.VERSION_30.getID()
                                || probeType != AnalyzerConstants.FUNCTION_TYPE_FILE) {
                        binaryId = Global.getBinaryID(pid, time, pcAddr);
@@ -180,7 +183,10 @@ public class ProfileData extends LogData {
                this.callerPcAddr = callerPcAddr;
        }
 
-       public int getProbeType() {
+       public int getProbeType() throws UnsupportedProtocolException {
+               if (protocolVersion != Protocol.VERSION_30.getID()) {
+                       throw new UnsupportedProtocolException();
+               }
                return probeType;
        }
 
@@ -188,7 +194,10 @@ public class ProfileData extends LogData {
                this.probeType = probeType;
        }
 
-       public int getProbeSubType() {
+       public int getProbeSubType() throws UnsupportedProtocolException {
+               if (protocolVersion != Protocol.VERSION_30.getID()) {
+                       throw new UnsupportedProtocolException();
+               }
                return probeSubType;
        }
 
index f51fe05..6048142 100644 (file)
@@ -39,6 +39,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.tizen.dynamicanalyzer.common.DALimit;
 import org.tizen.dynamicanalyzer.common.Global;
+import org.tizen.dynamicanalyzer.communicator.UnsupportedProtocolException;
 import org.tizen.dynamicanalyzer.constant.CommonConstants;
 import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
 import org.tizen.dynamicanalyzer.nl.FilePageLabels;
@@ -263,7 +264,11 @@ public class FileDataMaker {
                                                String[] splitPath = args.split(",\\s+");
                                                fd = Integer.parseInt(splitPath[1]);
                                                filePath = splitPath[0];
-                                               eventType = profileData.getProbeSubType();
+                                               try {
+                                                       eventType = profileData.getProbeSubType();
+                                               } catch (UnsupportedProtocolException e) {
+                                                       Logger.exception(e);
+                                               }
                                        }else{
                                                fd = fileSyscallData.getFd();
                                                eventType = fileSyscallData.getEventType();
index 6aba1b1..f3ba7b8 100644 (file)
@@ -31,6 +31,7 @@ import java.util.List;
 
 import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
 import org.tizen.dynamicanalyzer.common.Global;
+import org.tizen.dynamicanalyzer.communicator.UnsupportedProtocolException;
 import org.tizen.dynamicanalyzer.project.ProcessInformation;
 import org.tizen.dynamicanalyzer.protocol.Protocol;
 import org.tizen.dynamicanalyzer.protocol.ProtocolConstants;
@@ -104,17 +105,19 @@ public class CallTraceDataManager extends PageDataManager {
 
                                // probe type 4 is for file analysis with non-target process
                                // no need to insert into DB
-                               if(pData.getProtocolVersion() == Protocol.VERSION_30.getID()
-                                               && pData.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_FILE) {
-                                       continue;
+                               try {
+                                       if(pData.getProtocolVersion() == Protocol.VERSION_30.getID()
+                                                       && pData.getProbeType() == AnalyzerConstants.FUNCTION_TYPE_FILE) {
+                                               continue;
+                                       }
+                               } catch (UnsupportedProtocolException e) {
+                                       Logger.exception(e);
                                }
                                
                                try {
                                        insertRowData.add(new Long(pData.getSeq()));
                                        insertRowData.add(new Integer(pData.getPid()));
                                        insertRowData.add(new Integer(pData.getTid()));
-                                       Integer type = new Integer(pData.getProbeType());
-                                       insertRowData.add(new Byte(type.byteValue()));
                                        insertRowData.add(new Integer(pData.getApiId()));
                                        insertRowData.add(new Integer(pData.getBinaryId()));
                                        insertRowData.add(new Long(pData.getTime()));
index 5b1db70..ebb8ab2 100644 (file)
@@ -203,11 +203,10 @@ public class CallTraceTable extends DAWindowingTableComposite {
        }
 
        protected String getSelectQueryOption() {
-               StringBuffer query = new StringBuffer(" type = "
-                               + AnalyzerConstants.FUNCTION_TYPE_APPINST);
+               StringBuffer query = new StringBuffer();
                int selectedPid = Toolbar.INSTANCE.getSelectedPid();
                if (selectedPid != 0) {
-                       query.append(" and pid =" + selectedPid);//$NON-NLS-1$
+                       query.append("pid =" + selectedPid);//$NON-NLS-1$
                }
                /*
                 * ToDo need to revision query or windowing logic of windowing table
@@ -217,11 +216,10 @@ public class CallTraceTable extends DAWindowingTableComposite {
        }
 
        protected String getSelectQueryCountOption() {
-               StringBuffer query = new StringBuffer(" type = "
-                               + AnalyzerConstants.FUNCTION_TYPE_APPINST);
+               StringBuffer query = new StringBuffer();
                int selectedPid = Toolbar.INSTANCE.getSelectedPid();
                if (selectedPid != 0) {
-                       query.append(" and pid =" + selectedPid);//$NON-NLS-1$
+                       query.append("pid =" + selectedPid);//$NON-NLS-1$
                }
                return query.toString();
        }
index e591852..b2933c0 100644 (file)
@@ -47,7 +47,6 @@ import org.tizen.dynamicanalyzer.ui.page.ScreenshotTabComposite;
 import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
 import org.tizen.dynamicanalyzer.ui.widgets.table.DAWindowingTableComposite;
-import org.tizen.dynamicanalyzer.ui.widgets.table.WindowingTableColumnSizePackListener;
 import org.tizen.dynamicanalyzer.util.Logger;
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite;
index 785ff92..b8871be 100644 (file)
@@ -68,13 +68,12 @@ public class FunctionEntryDBTable extends DBTable {
                SEQUENCE_NUMBER(0, DBConstants.DBCOLUMN_SEQUENCE_NUMBER),
                PID(1, DBConstants.DBCOLUMN_PID),
                TID(2, DBConstants.DBCOLUMN_TID),
-               TYPE(3, "TYPE"),
-               FUNCTION_ID(4, DBConstants.DBCOLUMN_FUNCTION_ID),
-               BINARY_ID(5, "BINARY_ID"),
-               START_TIME(6, DBConstants.DBCOLUMN_START_TIME),
-               CALLER_PC_ADDRESS(7, DBConstants.DBCOLUMN_CALLER_PC_ADDRESS),
-               START_PC_ADDRESS(8, "START_PC_ADDRESS"),
-               ARGUMENT(9, DBConstants.DBCOLUMN_ARGUMENT);
+               FUNCTION_ID(3, DBConstants.DBCOLUMN_FUNCTION_ID),
+               BINARY_ID(4, "BINARY_ID"),
+               START_TIME(5, DBConstants.DBCOLUMN_START_TIME),
+               CALLER_PC_ADDRESS(6, DBConstants.DBCOLUMN_CALLER_PC_ADDRESS),
+               START_PC_ADDRESS(7, "START_PC_ADDRESS"),
+               ARGUMENT(8, DBConstants.DBCOLUMN_ARGUMENT);
                
                public final int index;
                public final String name;
@@ -94,7 +93,6 @@ public class FunctionEntryDBTable extends DBTable {
                addColumn(new DBColumn(COLUMN.SEQUENCE_NUMBER.name, DBConstants.PRIMARY_KEY, DBConstants.DBTYPE_LONG));
                addColumn(new DBColumn(COLUMN.PID.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_INT4));
                addColumn(new DBColumn(COLUMN.TID.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_INT4));
-               addColumn(new DBColumn(COLUMN.TYPE.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_INT1));
                addColumn(new DBColumn(COLUMN.FUNCTION_ID.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_INT4));
                addColumn(new DBColumn(COLUMN.BINARY_ID.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_INT4));          
                addColumn(new DBColumn(COLUMN.START_TIME.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_LONG));
@@ -121,7 +119,6 @@ public class FunctionEntryDBTable extends DBTable {
                                prep.setLong(COLUMN.SEQUENCE_NUMBER.index + 1, (Long) (rowData.get(COLUMN.SEQUENCE_NUMBER.index)));
                                prep.setInt(COLUMN.PID.index + 1, (Integer) (rowData.get(COLUMN.PID.index)));
                                prep.setInt(COLUMN.TID.index + 1, (Integer) (rowData.get(COLUMN.TID.index)));                           
-                               prep.setByte(COLUMN.TYPE.index + 1, (Byte) (rowData.get(COLUMN.TYPE.index)));
                                prep.setInt(COLUMN.FUNCTION_ID.index + 1, (Integer) (rowData.get(COLUMN.FUNCTION_ID.index)));
                                prep.setInt(COLUMN.BINARY_ID.index + 1, (Integer) (rowData.get(COLUMN.BINARY_ID.index)));
                                prep.setLong(COLUMN.START_TIME.index + 1, (Long) (rowData.get(COLUMN.START_TIME.index)));
@@ -148,13 +145,12 @@ public class FunctionEntryDBTable extends DBTable {
                        row.add(Long.valueOf(rs.getLong(1)));
                        row.add(Integer.valueOf(rs.getInt(2)));
                        row.add(Integer.valueOf(rs.getInt(3)));
-                       row.add(Byte.valueOf(rs.getByte(4)));
+                       row.add(Integer.valueOf(rs.getInt(4)));
                        row.add(Integer.valueOf(rs.getInt(5)));
-                       row.add(Integer.valueOf(rs.getInt(6)));
+                       row.add(Long.valueOf(rs.getLong(6)));
                        row.add(Long.valueOf(rs.getLong(7)));
                        row.add(Long.valueOf(rs.getLong(8)));
-                       row.add(Long.valueOf(rs.getLong(9)));
-                       row.add(rs.getString(10));
+                       row.add(rs.getString(9));
                } catch (SQLException e) {
                        Logger.exception(e);
                        return null;