public final static String CALLSTACK_KEY_PID = "pid";//$NON-NLS-1$\r
public final static String CALLSTACK_KEY_ADDR = "address";//$NON-NLS-1$\r
public final static String CALLSTACK_KEY_TIME = "time";//$NON-NLS-1$\r
+ public final static String CALLSTACK_KEY_LIBNAME = "libName";//$NON-NLS-1$\r
\r
public final static int SASH_WIDTH = 4;\r
}\r
addr = (Long) item.getData(AnalyzerConstants.CALLSTACK_KEY_ADDR);\r
pid = (Integer) item.getData(AnalyzerConstants.CALLSTACK_KEY_PID);\r
time = (Long) item.getData(AnalyzerConstants.CALLSTACK_KEY_TIME);\r
+ libName = (String) item\r
+ .getData(AnalyzerConstants.CALLSTACK_KEY_LIBNAME);\r
break;\r
case AnalyzerConstants.TYPE_TABLE_FAILED:\r
List<String> failedData = tableData.getData();\r
addr = Long.parseLong(failedData.get(8));\r
pid = Integer.parseInt(failedData.get(7));\r
time = Long.parseLong(failedData.get(1));\r
+ libName = failedData.get(9);\r
break;\r
case AnalyzerConstants.TYPE_TABLE_LEAK:\r
List<String> leakData = tableData.getData();\r
addr = Long.parseLong(leakData.get(9));\r
pid = Integer.parseInt(leakData.get(1));\r
time = Long.parseLong(leakData.get(4));\r
+ libName = leakData.get(7);\r
break;\r
case AnalyzerConstants.TYPE_TABLE_WARNING:\r
data = tableData.getLogData();\r
addr = pData.getCallerPcAddr();\r
pid = data.getPid();\r
time = data.getTime();\r
+ libName = pData.getLibName();\r
break;\r
case AnalyzerConstants.TYPE_TABLE_CALLTRACE:\r
data = tableData.getLogData();\r
if (data instanceof UserFunctionData) {\r
addr = ((UserFunctionData) data).getCallerPcAddr();\r
+ libName = ((UserFunctionData) data).getLibName();\r
} else if (data instanceof ProfileData) {\r
// addr = ((ProfileData) data).getPcAddr();\r
// config\r
addr = ((ProfileData) data).getCallerPcAddr();\r
+ libName = ((ProfileData) data).getLibName();\r
}\r
pid = data.getPid();\r
time = data.getTime();\r
addr = wData.getCallerPcAddr();\r
pid = data.getPid();\r
time = data.getTime();\r
+ wData.getLibName();\r
}\r
\r
- libName = getLibPath(item);\r
+ // libName = getLibPath(item);\r
\r
ProcessInfoPackage processInfoPkg = AnalyzerManager.getProject()\r
.getProcessInfo(pid);\r
switch (tableData.getType()) {\r
case AnalyzerConstants.TYPE_TABLE_CALLSTACK:\r
// addr = (Long) tableData.getObject();\r
+ libName = item.getText(2);\r
break;\r
case AnalyzerConstants.TYPE_TABLE_FAILED:\r
List<String> failedData = tableData.getData();\r
- // libName = failedData.get(6));\r
+ libName = failedData.get(9);\r
break;\r
case AnalyzerConstants.TYPE_TABLE_LEAK:\r
List<String> leakData = tableData.getData();\r
if (AnalyzerManager.isProcessInfoArrived() && id > 0x0100
&& id < 0x0200) {
log = LogDataFactory.createInstance(data);
-
- if (log.getId() == DataChannelConstants.MSG_PROBE_MEMORY) {
- ProbeCommonData pdata = (ProbeCommonData) log;
- System.out.println("memory log : " + pdata.getApiName()
- + " internal type : " + pdata.getInternalCall());
- }
if (null != log) {
buffer.add(log);
messageCount++;
int seq = -1;
long time = 0;
+ protected String libName = null;
+
public LogData() {
}
public abstract int getPid();
+ public String getLibName() {
+ return libName;
+ }
+
+ public void setLibName(String libName) {
+ this.libName = libName;
+ }
}
protected int reserved1 = 0;
protected int reserved2 = 0;
- protected String libName = null;
-
private String apiName = null;
public ProbeCommonData() {
long ret = 0;
String apiName = null;
- String libName = null;
-
int buildType = -1;
String binaryPath = null;
cpuNum = ByteUtils.toInt(data, index);
index += INT_SIZE;
ArgsInfo info = LogDataUtils.parseArgs(data, index);
- args = info.getArgs();
+ args = info.getProfileArgs();
break;
case MSG_FUNCTION_EXIT:
logCount++;
}
DATableDataFormat tableData = (DATableDataFormat) items[0]
.getData();
- LogData logData = tableData.getLogData();
- int seqNum = logData.getSeq();
+
+ int seqNum = -1;
+ // long addr = -1;
+ int pid = -1;
+ long time = -1;
+ String libName = null;
+ if (tableData.getType() == AnalyzerConstants.TYPE_TABLE_FAILED) {
+ List<String> failedData = tableData.getData();
+ seqNum = Integer.parseInt(failedData.get(0));
+ // addr = Long.parseLong(failedData.get(8));
+ pid = Integer.parseInt(failedData.get(7));
+ time = Long.parseLong(failedData.get(1));
+ libName = failedData.get(9);
+ } else if (tableData.getType() == AnalyzerConstants.TYPE_TABLE_LEAK) {
+ List<String> leakData = tableData.getData();
+ seqNum = Integer.parseInt(leakData.get(2));
+ // addr = Long.parseLong(leakData.get(9));
+ pid = Integer.parseInt(leakData.get(1));
+ time = Long.parseLong(leakData.get(4));
+ libName = leakData.get(7);
+ } else {
+ LogData logData = tableData.getLogData();
+ seqNum = logData.getSeq();
+ pid = logData.getPid();
+ time = logData.getTime();
+ libName = logData.getLibName();
+ }
+
HashMap<Integer, CallStackData> cdMap = AnalyzerManager
.getCallstackManager().getCallStackDataBySeqMap();
HashMap<Long, CallStackUnit> addrMap = AnalyzerManager
for (int i = 0; i < size; i++) {
CallStackUnit api = addrMap.get(addrs.get(i));
- String addr = Formatter.toHexString(addrs.get(i).toString());
+ String hexAddr = Formatter.toHexString(addrs.get(i).toString());
String path = api.getPath();
// if path has "da_probe.so" then reject
if (path.contains(AnalyzerConstants.PROBE_LIB_TIZEN)
.setType(AnalyzerConstants.TYPE_TABLE_CALLSTACK);
callstackTableData.setObject(address);
gridItem.setData(callstackTableData);
- gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_ADDR, address);
- gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_PID, logData.getPid());
- gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_TIME, logData.getTime());
+ gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_ADDR,
+ address);
+ gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_PID, pid);
+ gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_TIME, time);
+ gridItem.setData(AnalyzerConstants.CALLSTACK_KEY_LIBNAME,
+ libName);
}
- String addrInput = (addrs.get(i) == 0) ? "" : addr; //$NON-NLS-1$
+ String addrInput = (addrs.get(i) == 0) ? "" : hexAddr; //$NON-NLS-1$
gridItem.setText(1, addrInput);
String fName = api.getFunctionName();
package org.tizen.dynamicanalyzer.ui.info.callstack;
+import java.util.List;
+
import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.common.DASelectionData;
import org.tizen.dynamicanalyzer.model.DAView;
}
if (table.getSelectionCount() > 0) {
GridItem[] selection = table.getSelection();
- LogData startData = ((DATableDataFormat) selection[0].getData())
- .getLogData();
- long startTime = startData.getTime();
+ long startTime = -1;
+ DATableDataFormat tableData = (DATableDataFormat) selection[0]
+ .getData();
+ if (tableData.getType() == AnalyzerConstants.TYPE_TABLE_FAILED) {
+ List<String> failedData = tableData.getData();
+ startTime = Long.parseLong(failedData.get(1));
+ } else if (tableData.getType() == AnalyzerConstants.TYPE_TABLE_LEAK) {
+ List<String> leakData = tableData.getData();
+ startTime = Long.parseLong(leakData.get(4));
+ } else {
+ LogData startData = ((DATableDataFormat) selection[0]
+ .getData()).getLogData();
+ startTime = startData.getTime();
+ }
long endTime = startTime;
if (null != selection[selection.length - 1].getData()) {
- LogData endData = ((DATableDataFormat) selection[selection.length - 1]
- .getData()).getLogData();
- endTime = endData.getTime();
+ DATableDataFormat lastTableData = (DATableDataFormat) selection[0]
+ .getData();
+ if (lastTableData.getType() == AnalyzerConstants.TYPE_TABLE_FAILED) {
+ List<String> failedData = tableData.getData();
+ endTime = Long.parseLong(failedData.get(1));
+ } else if (lastTableData.getType() == AnalyzerConstants.TYPE_TABLE_LEAK) {
+ List<String> leakData = tableData.getData();
+ endTime = Long.parseLong(leakData.get(4));
+ } else {
+ LogData endData = ((DATableDataFormat) selection[selection.length - 1]
+ .getData()).getLogData();
+ endTime = endData.getTime();
+ }
}
DASelectionData data = new DASelectionData(observingViews[i],
data.add(Integer.toString(failedData.getPid()));
data.add(Long.toString(failedData.getCallerPc())); // 8
+ data.add(failedData.getLibName()); //9
// create images
currentRadioButton.setLayoutData(data);
currentRadioButton.setForeground(ColorResources.BLACK);
currentRadioButton.setBackground(ColorResources.DIALOG_BG_UPPER);
- currentRadioButton.setText("Current Libarry");
+ currentRadioButton.setText("Current Library");
currentRadioButton.addSelectionListener(currentRadioButtonListener);
radioGroup.addChild(currentRadioButton);
addRadioButton.setLayoutData(data);
addRadioButton.setForeground(ColorResources.BLACK);
addRadioButton.setBackground(ColorResources.DIALOG_BG_UPPER);
- addRadioButton.setText("Add Libarry");
+ addRadioButton.setText("Add Library");
addRadioButton.addSelectionListener(addRadioButtonListener);
radioGroup.addChild(addRadioButton);