[Title] profile as context menu bug fix
authorJaewon Lim <jaewon81.lim@samsung.com>
Fri, 13 Jul 2012 10:20:25 +0000 (19:20 +0900)
committerJaewon Lim <jaewon81.lim@samsung.com>
Fri, 13 Jul 2012 10:20:25 +0000 (19:20 +0900)
[Type] bug fix
[Module] profiler-eplugin
[Priority] major
[Jira#] S1-5611
[Redmine#]
[Problem] "profile as" context menu cause error "binary not found"
[Cause] bada app binary is not executable but shared lib
[Solution] find binary not only executable but also shared library
[TestCase]

org.eclipse.linuxtools.profiling.launch/META-INF/MANIFEST.MF
org.eclipse.linuxtools.profiling.launch/src/org/eclipse/linuxtools/profiling/launch/ProfileLaunchShortcut.java
package/pkginfo.manifest

index 2d6bd91..dc64a7e 100644 (file)
@@ -11,6 +11,7 @@ Import-Package: org.eclipse.cdt.core.model,
  org.eclipse.cdt.debug.core,
  org.eclipse.cdt.launch,
  org.eclipse.cdt.launch.ui,
+ org.eclipse.cdt.managedbuilder.core,
  org.eclipse.cdt.ui,
  org.eclipse.core.resources,
  org.eclipse.debug.core,
index b4bd9f4..7aac480 100644 (file)
@@ -23,6 +23,8 @@ import org.eclipse.cdt.core.model.IBinary;
 import org.eclipse.cdt.core.model.ICProject;
 import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
 import org.eclipse.cdt.launch.AbstractCLaunchDelegate;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
 import org.eclipse.cdt.ui.CElementLabelProvider;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
@@ -206,10 +208,14 @@ public static void showErrorDialog(final String errorMessage, final String reaso
                                                                                if (cproject != null) {
                                                                                        try {
                                                                                                IBinary[] bins = cproject.getBinaryContainer().getBinaries();
+                                                                                               IConfiguration config = ManagedBuildManager.getBuildInfo(r.getProject()).getDefaultConfiguration();
+                                                                                               String activeBuildConfiguration = config.toString();
        
                                                                                                for (int j = 0; j < bins.length; j++) {
-                                                                                                       if (bins[j].isExecutable()) {
-                                                                                                               results.add(bins[j]);
+                                                                                                       if (bins[j].isExecutable() || bins[j].isSharedLib()) {
+                                                                                                               String parentDirName = bins[j].getPath().removeLastSegments(1).lastSegment();
+                                                                                                               if (parentDirName.equals(activeBuildConfiguration))
+                                                                                                                       results.add(bins[j]);
                                                                                                        }
                                                                                                }
                                                                                        } catch (CModelException e) {
index 6480ba4..520a220 100644 (file)
@@ -1,5 +1,5 @@
 Package:profiler-eplugin
-Version:0.2.5
+Version:0.2.6
 OS:linux
 Build-host-os:linux
 Maintainer:Jaewon Lim <jaewon81.lim@samsung.com>, Juyoung Kim
@@ -9,7 +9,7 @@ Install-dependency:base-ide-product [linux], common-eplugin [linux], nativecommo
 Build-dependency:indigo-pde [linux], common-eplugin [linux], nativecpp-eplugin [linux], nativecommon-eplugin [linux]
 
 Package:profiler-eplugin
-Version:0.2.5
+Version:0.2.6
 OS:windows
 Build-host-os:linux
 Maintainer:Jaewon Lim <jaewon81.lim@samsung.com>, Juyoung Kim