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;
}
}
- 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 {
}
}
+ // make user callstack
Global.getRuntimeCallstackManager().makeUserCallstack(pData,
FunctionUsageProfiler.getInstance().getProfileDataMakerByPid( pData.getPid()));
}
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);
}
}
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;
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);
this.callerPcAddr = callerPcAddr;
}
- public int getProbeType() {
+ public int getProbeType() throws UnsupportedProtocolException {
+ if (protocolVersion != Protocol.VERSION_30.getID()) {
+ throw new UnsupportedProtocolException();
+ }
return probeType;
}
this.probeType = probeType;
}
- public int getProbeSubType() {
+ public int getProbeSubType() throws UnsupportedProtocolException {
+ if (protocolVersion != Protocol.VERSION_30.getID()) {
+ throw new UnsupportedProtocolException();
+ }
return probeSubType;
}
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;
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();
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;
// 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()));
}
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
}
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();
}
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;
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;
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));
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)));
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;