Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Overholt2011-02-25 05:34:38 +0000
committerAndrew Overholt2011-02-25 05:34:38 +0000
commit54fdb19c42d69e0586a3f0aad9c9c09f50da444d (patch)
treed16179ba1a5d9ca3c2549dfe4b830bc734379e2f
parent6a069bfcf9c8b55fef3da3cc376348885cee0289 (diff)
parentb172d96cc7aa99e42d97889bc6651411745aaaeb (diff)
downloadorg.eclipse.linuxtools-54fdb19c42d69e0586a3f0aad9c9c09f50da444d.tar.gz
org.eclipse.linuxtools-54fdb19c42d69e0586a3f0aad9c9c09f50da444d.tar.xz
org.eclipse.linuxtools-54fdb19c42d69e0586a3f0aad9c9c09f50da444d.zip
Merge valgrind
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/.project17
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/ChangeLog112
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/build.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/epl-v10.html256
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/feature.properties138
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/feature.xml113
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind-feature/license.html107
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/ChangeLog124
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/META-INF/MANIFEST.MF32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/build.properties10
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.cproject927
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.project82
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.cpp54
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.h23
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.cproject577
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.project83
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/parent.cpp42
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AbstractCachegrindTest.java52
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AllTests.java34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/BasicCachegrindTest.java63
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CModelLabelsTest.java142
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CachegrindTestsPlugin.java60
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/DoubleClickTest.java139
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/ExpandCollapseTest.java90
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/LaunchConfigTabTest.java210
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/MultiProcessTest.java110
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/test.xml54
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testBranchSim/template_cachegrind_5190.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testD1Cache/template_cachegrind_5300.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDefaults/template_cachegrind_5885.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFile/template_cachegrind_4919.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFunction/template_cachegrind_5031.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5774.txt244
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5779.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsCPP/template_cachegrind_4644.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsH/template_cachegrind_4699.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileNames/template_cachegrind_4534.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFunctionLabel/template_cachegrind_4754.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testI1Cache/template_cachegrind_5245.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testL2Cache/template_cachegrind_5355.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testMethodLabel/template_cachegrind_4809.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNestedMethodLabel/template_cachegrind_4864.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNoExec/template_cachegrind_5670.txt244
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumFunctions/template_cachegrind_4589.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumPIDs/template_cachegrind_4478.txt250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/ChangeLog140
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/META-INF/MANIFEST.MF28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.xml21
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindCommandConstants.java21
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLabelProvider.java101
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchConstants.java44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java130
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindParser.java142
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindPlugin.java62
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindToolPage.java384
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindViewPart.java359
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CollapseAction.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/ExpandAction.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/messages.properties40
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindDescription.java46
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFile.java89
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFunction.java140
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindLine.java55
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindOutput.java99
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/ICachegrindElement.java23
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/messages.properties1
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/ChangeLog130
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/META-INF/MANIFEST.MF19
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/build.properties7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/plugin.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/plugin.xml13
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/AbstractValgrindMessage.java56
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/CommandLineConstants.java40
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/LaunchConfigurationConstants.java60
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/PluginConstants.java27
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java110
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCoreParser.java114
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindError.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPlugin.java71
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java150
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindStackFrame.java38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/messages.properties5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/IValgrindMessage.java27
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/ValgrindParserUtils.java143
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/.classpath4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/.project22
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/ChangeLog152
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/General-Usage.html214
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/Installing.html68
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/Special-Cases.html84
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/Updating-This-Document.html54
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/User-Guide.html58
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/Using-Cachegrind.html134
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/Using-Massif.html206
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/Using-Memcheck.html144
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/CachegrindOptions.pngbin0 -> 63318 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/CachegrindOutput.pngbin0 -> 66505 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Exportbuttonvalgrindview.gifbin0 -> 347 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Hierarchy.gifbin0 -> 209 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/MassifChartSelect.pngbin0 -> 215396 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/MassifOptions.pngbin0 -> 53685 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/MassifTable.pngbin0 -> 70362 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/MassifTree.pngbin0 -> 78455 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/MemcheckOptions.pngbin0 -> 37313 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/MemcheckOutput.pngbin0 -> 55296 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Screenshot-ProfileConfigurations-valgrind-options-tab.pngbin0 -> 34047 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Screenshot-ProfileConfigurations.pngbin0 -> 160641 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Screenshot-Suppressions.pngbin0 -> 9523 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Shortcut.pngbin0 -> 10030 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/SwitchCachegrind.pngbin0 -> 13261 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/SwitchCoreTool.pngbin0 -> 7033 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/SwitchMassif.pngbin0 -> 12603 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/Thread.gifbin0 -> 223 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/ValgrindExportWizard.pngbin0 -> 49284 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/images/ValgrindSegfault.pngbin0 -> 46321 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/META-INF/MANIFEST.MF10
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/build-helper.xml60
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/build.properties10
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/doc/notices.html22
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/extract-markup.xsl9
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/images/home.gifbin0 -> 582 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/images/next.gifbin0 -> 327 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/images/prev.gifbin0 -> 327 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/plugin.xml13
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/toc-doc.xml5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.doc/toc.xml36
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/.project28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/ChangeLog67
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/META-INF/MANIFEST.MF36
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/OSGI-INF/l10n/bundle.properties6
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/icons/tcf.gifbin0 -> 165 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/icons/valgrind-icon.pngbin0 -> 713 bytes
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/plugin.xml44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/Messages.java44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/RemoteLaunchConstants.java27
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/RemoteLaunchPlugin.java60
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/RemoteLaunchStep.java69
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindRemoteCommand.java153
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindRemoteLaunchDelegate.java607
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindRemoteLaunchShortcut.java17
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindRemoteLaunchTabGroup.java25
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindRemoteProcess.java103
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindRemoteTab.java316
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindTCFInputStream.java127
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/ValgrindTCFOutputStream.java87
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch.remote/src/org/eclipse/linuxtools/internal/valgrind/launch/remote/messages.properties20
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/ChangeLog274
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/META-INF/MANIFEST.MF38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/plugin.properties13
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/plugin.xml133
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/schema/outputDirectoryProviders.exsd124
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/schema/valgrindTools.exsd150
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ExportHandler.java39
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ExportWizardConstants.java19
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindExportWizard.java112
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindExportWizardPage.java237
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindLaunchConfigurationDelegate.java365
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindLaunchConfigurationTabGroup.java26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindLaunchPlugin.java325
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindLaunchShortcut.java39
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindOptionsTab.java684
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/ValgrindOutputDirectoryProvider.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/internal/valgrind/launch/messages.properties56
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/valgrind/launch/IValgrindLaunchDelegate.java63
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/valgrind/launch/IValgrindOutputDirectoryProvider.java29
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.launch/src/org/eclipse/linuxtools/valgrind/launch/IValgrindToolPage.java31
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/ChangeLog168
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/META-INF/MANIFEST.MF38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/build.properties10
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/resources/alloctest/.cproject593
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/resources/alloctest/.project81
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/resources/alloctest/alloctest.c53
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/resources/multiProcTest/.cproject598
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/resources/multiProcTest/.project82
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/resources/multiProcTest/parent.c21
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/AbstractMassifTest.java83
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/AllTests.java38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/BasicMassifTest.java38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/ChartExportTest.java66
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/ChartTests.java176
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/DoubleClickTest.java90
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/ExpandCollapseTest.java88
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/ExportWizardTest.java192
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/LaunchConfigTabTest.java364
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/MassifTestsPlugin.java60
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/MultiProcessTest.java137
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/SortTest.java118
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/src/org/eclipse/linuxtools/internal/valgrind/massif/tests/TreeTest.java70
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/test.xml54
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testAlignment/template_massif_3500.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testAllocFn/template_massif_3140.txt122
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testAllocFnMultiple/template_massif_3180.txt122
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testAllocFnSpace/template_massif_3220.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testByteScalingGiB/template_massif_2637.txt863
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testByteScalingKiB/template_massif_2556.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testByteScalingMiB/template_massif_2596.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testByteScalingTiB/template_massif_2680.txt759
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testChartCallback/template_massif_2779.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testDefaults/template_massif_4357.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testDepth/template_massif_3100.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testDetailedFreq/template_massif_3420.txt195
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testDoubleClickFile/template_massif_2419.txt153
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testDoubleClickLine/template_massif_2469.txt153
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testEditorName/template_massif_2509.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testExec/template_massif_3995.txt71
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testExec/template_massif_4000.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testExport/template_massif_3769.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testHeap/template_massif_2980.txt11
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testHeapAdmin/template_massif_3020.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testMaxSpapshots/template_massif_3460.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testNoDetailed/template_massif_2860.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testNoExec/template_massif_3847.txt71
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testNumSnapshots/template_massif_2900.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testPeakInaccuracy/template_massif_3300.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testStacks/template_massif_4317.txt506
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testThreshold/template_massif_3260.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testTimeUnitBytes/template_massif_3340.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testTimeUnitMilliseconds/template_massif_3380.txt123
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif.tests/valgrindFiles/testTreeNodes/template_massif_2820.txt153
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/ChangeLog250
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/META-INF/MANIFEST.MF52
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/plugin.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/plugin.xml30
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/CollapseAction.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/ExpandAction.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifCommandConstants.java27
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifHeapTreeNode.java141
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifLaunchConstants.java48
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifLaunchDelegate.java136
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifOutput.java34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifParser.java277
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifPidMenuAction.java86
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifPlugin.java117
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifSnapshot.java107
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifToolPage.java419
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifTreeLabelProvider.java36
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifTreeViewer.java108
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/MassifViewPart.java495
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/ChartControl.java259
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/ChartEditor.java86
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/ChartEditorInput.java71
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/ChartLocationsDialog.java80
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/ChartSVG.java133
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/HeapChart.java404
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/birt/messages.properties21
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.massif/src/org/eclipse/linuxtools/internal/valgrind/massif/messages.properties38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/ChangeLog217
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/META-INF/MANIFEST.MF44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/build.properties9
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/.cproject411
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/.project81
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/test suppfile.supp15
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/test.c19
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/testsuppfile.supp15
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/basicTest/testsuppfile2.supp15
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/linkedTest/.cproject411
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/linkedTest/.project81
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/linkedTest/src/test.c19
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/multiProcTest/.cproject598
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/multiProcTest/.project82
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/multiProcTest/parent.c16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/segvtest/.cproject593
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/segvtest/.project81
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/resources/segvtest/main.c6
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/AbstractLinkedResourceMemcheckTest.java64
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/AbstractMemcheckTest.java28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/AllTests.java40
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/BasicMemcheckTest.java40
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/DoubleClickTest.java151
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/ExpandCollapseTest.java88
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LaunchConfigTabTest.java545
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LinkedResourceDoubleClickTest.java112
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LinkedResourceMarkerTest.java83
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/LocationPreferenceTest.java44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/MarkerTest.java94
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/MemcheckTestsPlugin.java57
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/MinVersionTest.java89
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/MultiProcessTest.java54
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/ShortcutTest.java85
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/src/org/eclipse/linuxtools/internal/valgrind/memcheck/tests/SignalTest.java41
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/test.xml55
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testAlignment/template_valgrind_750.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testDefaults/template_valgrind_1770.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testDemangle/template_valgrind_510.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testDoubleClickFile/template_valgrind_32616.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testDoubleClickLine/template_valgrind_32697.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testErrorLimit/template_valgrind_590.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testExec/template_valgrind_1679.txt4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testExec/template_valgrind_1685.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testFreeListVol/template_valgrind_989.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testLeakResolutionHigh/template_valgrind_949.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testLeakResolutionMed/template_valgrind_909.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testLinkedDoubleClickFile/template_valgrind_1354.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testLinkedDoubleClickLine/template_valgrind_1400.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testLinkedMarkers/template_valgrind_1446.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testMainStackFrame/template_valgrind_1149.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testMaxStackframe/template_valgrind_670.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testNoExec/template_valgrind_1595.txt4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testNoLeakCheck/template_valgrind_823.txt12
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testNoLeakCheck/valgrind_823.txt12
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testNumCallers/template_valgrind_550.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testNumErrors/template_valgrind_32575.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testPartialLoads/template_valgrind_1069.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testRunFreeRes/template_valgrind_710.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testSegfault/template_valgrind_1929.txt4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testShowBelowMain/template_valgrind_630.txt36
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testShowReachable/template_valgrind_866.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testSuppressions/template_valgrind_350.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testSuppressionsMultiple/template_valgrind_390.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testSuppressionsSpaces/template_valgrind_430.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testTraceChildren/template_valgrind_470.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testTrackOrigins/template_valgrind_1192.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testUndefValueErrors/template_valgrind_1109.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testValgrindError/template_valgrind_1268.txt1
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testWSSuppresions/template_valgrind_310.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck.tests/valgrindFiles/testWorkaroundGCCBugs/template_valgrind_1029.txt16
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/ChangeLog137
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/META-INF/MANIFEST.MF27
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/build.properties7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/plugin.properties3
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/plugin.xml20
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckCommandConstants.java26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckLaunchConstants.java44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckLaunchDelegate.java58
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckPlugin.java58
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckToolPage.java317
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/MemcheckViewPart.java35
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.memcheck/src/org/eclipse/linuxtools/internal/valgrind/memcheck/messages.properties15
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/.project17
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/ChangeLog12
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/build.properties4
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/epl-v10.html256
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/feature.properties138
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/feature.xml52
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.remote-feature/license.html107
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/.project17
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/ChangeLog78
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/build.properties5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/epl-v10.html256
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/feature.properties138
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/feature.xml88
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.test-feature/license.html107
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/ChangeLog180
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/META-INF/MANIFEST.MF26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/build.properties9
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/plugin.properties12
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/AbstractValgrindTest.java202
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ResourceChangePrinter.java71
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ValgrindStubCommand.java44
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ValgrindStubProcess.java76
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ValgrindStubStreamsProxy.java31
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ValgrindTestLaunchDelegate.java65
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ValgrindTestLaunchShortcut.java29
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/src/org/eclipse/linuxtools/internal/valgrind/tests/ValgrindTestsPlugin.java78
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.tests/test.xml74
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/ChangeLog68
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/META-INF/MANIFEST.MF25
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/OSGI-INF/l10n/bundle.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/about.html26
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/plugin.xml48
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/ColorManager.java42
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/ISuppressionsColorConstants.java23
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionKindRule.java154
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionToolRule.java115
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsConfiguration.java84
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsContentAssistProcessor.java142
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsDocumentProvider.java38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsEditor.java80
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsElementScanner.java98
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsPartitionScanner.java38
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/SuppressionsReconcilingStrategy.java89
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/ValgrindEditorPlugin.java60
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/messages.properties1
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/wizards/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/wizards/NewSuppressionWizard.java180
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui.editor/src/org/eclipse/linuxtools/internal/valgrind/ui/editor/wizards/messages.properties6
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/.classpath7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/.project34
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/ChangeLog76
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/META-INF/MANIFEST.MF24
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/about.html28
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/build.properties8
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/plugin.properties5
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/plugin.xml35
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/schema/valgrindToolViews.exsd133
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/CollapseAction.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/CoreMessagesViewer.java199
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/ExpandAction.java33
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/Messages.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/ValgrindUIPlugin.java206
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/ValgrindViewPart.java191
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/internal/valgrind/ui/messages.properties7
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/valgrind/ui/IValgrindToolView.java32
-rw-r--r--valgrind/org.eclipse.linuxtools.valgrind.ui/src/org/eclipse/linuxtools/valgrind/ui/ValgrindUIConstants.java19
457 files changed, 40644 insertions, 0 deletions
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/.project b/valgrind/org.eclipse.linuxtools.valgrind-feature/.project
new file mode 100644
index 0000000000..2461e0287c
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.valgrind-feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/ChangeLog b/valgrind/org.eclipse.linuxtools.valgrind-feature/ChangeLog
new file mode 100644
index 0000000000..3715a50de0
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/ChangeLog
@@ -0,0 +1,112 @@
+2010-08-24 Elliott Baron <ebaron@fedoraproject.org>
+
+ * feature.xml: Remove rhino from dependencies.
+
+2010-07-26 Elliott Baron <ebaron@fedoraproject.org>
+
+ Bug #320867
+ * feature.xml: Make feature available on Mac OSX.
+
+2010-05-18 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Fix provider name.
+
+2010-04-26 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Match consistent license text (bug #306627). Update
+ copyright year.
+ * license.html: New file. HTML version of SUA (bug #306627).
+ * build.properties: Include license.html.
+
+2010-04-13 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Restrict to os=linux.
+
+2010-04-12 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Match consistent license text (bug #306627).
+
+2009-08-11 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Bump version to 0.3.0.
+
+2009-07-21 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Added ui.editor plugin. Recomputed dependencies.
+
+2009-06-26 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Added doc plugin. Recomputed dependencies.
+
+2009-06-04 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Removing birt.chart from deps.
+
+2009-05-28 Elliott Baron <ebaron@redhat.com>
+
+ * feature.properties: Fix featureProvider key.
+
+2009-05-27 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Removing ".qualifier" from profiling feature dep.
+
+2009-05-26 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Make profiling feature dependency; version >= 0.2.0.
+
+2009-05-25 Elliott Baron <ebaron@redhat.com>
+
+ #275685
+ * feature.xml: Maintenance update for version string issues on Debian.
+
+2009-05-20 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Remove '.feature' from feature ID.
+
+2009-05-19 Andrew Overholt <overholt@redhat.com>
+
+ * feature.properties: Change provider from Eclipse.org to Eclipse.
+
+2009-04-03 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: 0.2.0 version.
+
+2009-03-13 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Add cachegrind plugin.
+
+2009-01-28 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Removed feature dependency, added console deps for launch.
+
+2009-01-14 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Re-add update site information (sorry).
+
+2009-01-14 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Removed update site information.
+
+2009-01-09 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Added all used BIRT plugins as dependencies.
+
+2009-01-08 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Added org.eclipse.linuxtools.profiling-feature to dependencies.
+
+2009-01-06 Andrew Overholt <overholt@redhat.com>
+
+ * feature.xml: Remove Linux requirement to see if it then gets included in all
+ feature. Added update site information.
+
+2008-12-16 Elliott Baron <ebaron@redhat.com>
+
+ * feature.xml: Added dependencies and Linux requirement.
+
+2008-12-10 Andrew Overholt <overholt@redhat.com>
+
+ * build.properties: Inital checkin.
+ * feature.xml: Likewise.
+ * feature.properties: Likewise.
+ * epl-v10.html: Likewise. \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/build.properties b/valgrind/org.eclipse.linuxtools.valgrind-feature/build.properties
new file mode 100644
index 0000000000..b74af86fe4
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/build.properties
@@ -0,0 +1,4 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ license.html
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/epl-v10.html b/valgrind/org.eclipse.linuxtools.valgrind-feature/epl-v10.html
new file mode 100644
index 0000000000..9321f4082e
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/epl-v10.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Eclipse Public License - Version 1.0</title>
+
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style></head><body lang="EN-US">
+
+<p align="center"><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body></html> \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/feature.properties b/valgrind/org.eclipse.linuxtools.valgrind-feature/feature.properties
new file mode 100644
index 0000000000..bf8fff23e8
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/feature.properties
@@ -0,0 +1,138 @@
+#*******************************************************************************
+# Copyright (c) 2008 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat, Inc. - initial API and implementation
+#********************************************************************************
+featureName=Valgrind Tools Integration (Incubation)
+description=Plugins to integrate Valgrind tools into the workbench.
+featureProvider=Eclipse Linux Tools
+copyright=Copyright 2008, 2010 Red Hat, Inc.
+licenseURL=license.html
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/feature.xml b/valgrind/org.eclipse.linuxtools.valgrind-feature/feature.xml
new file mode 100644
index 0000000000..4efafeffaa
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/feature.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.linuxtools.valgrind"
+ label="%featureName"
+ version="0.7.0.qualifier"
+ provider-name="%featureProvider"
+ os="linux,macosx">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <url>
+ <update label="Linux Tools Update Site" url="http://download.eclipse.org/technology/linuxtools/update"/>
+ </url>
+
+ <requires>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.cdt.core"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.cdt.debug.core"/>
+ <import plugin="org.eclipse.cdt.launch"/>
+ <import plugin="org.eclipse.core.expressions"/>
+ <import plugin="org.eclipse.core.filesystem"/>
+ <import plugin="org.eclipse.core.variables"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.linuxtools.profiling.launch"/>
+ <import plugin="org.eclipse.ui.console"/>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.birt.chart.device.swt" version="2.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.birt.chart.device.extension" version="2.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.birt.chart.engine" version="2.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.birt.chart.engine.extension" version="2.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.birt.chart.device.svg" version="2.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.birt.core" version="2.3.1" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.cdt.debug.ui"/>
+ <import plugin="org.eclipse.emf.common"/>
+ <import plugin="org.eclipse.emf.ecore"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.linuxtools.profiling.ui"/>
+ <import plugin="org.eclipse.ui.editors"/>
+ <import plugin="org.eclipse.cdt.ui"/>
+ <import plugin="org.eclipse.help"/>
+ <import feature="org.eclipse.linuxtools.profiling" version="0.7.0" match="greaterOrEqual"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.launch"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.massif"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.memcheck"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.cachegrind"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.doc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.valgrind.ui.editor"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind-feature/license.html b/valgrind/org.eclipse.linuxtools.valgrind-feature/license.html
new file mode 100644
index 0000000000..c184ca36a9
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind-feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.classpath b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.project b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.project
new file mode 100644
index 0000000000..7831c66e46
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.valgrind.cachegrind.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.settings/org.eclipse.jdt.core.prefs b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..f15f655388
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Thu Mar 12 10:51:52 EDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/ChangeLog b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/ChangeLog
new file mode 100644
index 0000000000..c048ab0493
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/ChangeLog
@@ -0,0 +1,124 @@
+2010-07-26 Elliott Baron <ebaron@fedoraproject.org>
+
+ * META-INF/MANIFEST.MF: Bump version to 0.7.0.
+
+2009-12-22 Roland Grunberg <rgrunber@redhat.com>
+
+ * META-INF/MANIFEST.MF: Make necessary changes for switch from JUnit 3 to JUnit 4.
+
+2009-09-28 Elliott Baron <ebaron@fedoraproject.org>
+
+ * valgrindFiles: Regenerated.
+
+2009-08-11 Elliott Baron <ebaron@redhat.com>
+
+ * src/org/eclipse/linuxtools/valgrind/cachegrind: Removed.
+ * META-INF/MANIFEST.MF: Bump version to 0.3.0.
+
+2009-08-07 Andrew Overholt <overholt@redhat.com>
+
+ Bug #285861
+
+ * plugin.properties: Change Provider to Eclipse.
+
+2009-07-30 Elliott Baron <ebaron@redhat.com>
+
+ * src/org/eclipse/linuxtools/valgrind/cachegrind/tests: Removed.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests: New package.
+ * .project: Enabled API analysis.
+ * META-INF/MANIFEST.MF: Export internal package.
+ * test.xml: Update class references.
+
+2009-06-23 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindTestToolPage.java: Removed.
+ * AbstractCachegrindTest.java: Remove reference to TestToolPage.
+ * LaunchConfigTabTest.java (setUp): Use actual ToolPage.
+ (testD1Cache): Fire selection event.
+ (testI1Cache): Likewise.
+ (testL2Cache): Likewise.
+ (initConfig): Use actual ToolPage.
+
+2009-04-30 Elliott Baron <ebaron@redhat.com>
+
+ * MultiProcessTest.java: Delete referenced project.
+
+2009-04-21 Elliott Baron <ebaron@redhat.com>
+
+ * plugin.properties: Added "(Incubation)" to plugin name.
+ * BasicCachegrindTest.java (tearDown): Call super last.
+ * CModelLabelsTest.java (tearDown): Likewise.
+ * DoubleClickTest.java (tearDown): Likewise.
+ * ExpandCollapseTest.java (tearDown): Likewise.
+ * LaunchConfigTabTest.java (tearDown): Likewise.
+ * MultiProcessTest.java (tearDown): Likewise.
+
+2009-04-03 Elliott Baron <ebaron@redhat.com>
+
+ * META-INF/MANIFEST.MF: 0.2.0 version.
+
+2009-03-31 Elliott Baron <ebaron@redhat.com>
+
+ * ExpandCollapseTest.java: New file.
+ * AllTests.java (suite): Added ExpandCollapseTest.
+
+2009-03-26 Elliott Baron <ebaron@redhat.com>
+
+ * resources/multiProcTest: New test project.
+ * MultiProcessTest.java: New file.
+ * AllTests.java (suite): Added MultiProcessTest.
+
+2009-03-18 Elliott Baron <ebaron@redhat.com>
+
+ * BasicCachegrindTest.java (setUp): Refactoring from profiling.tests.
+ * CModelLabelsTest.java (setUp): Likewise.
+ * DoubleClickTest.java (setUp): Likewise.
+ * LaunchConfigTabTest.java (setUp): Likewise.
+
+2009-03-17 Elliott Baron <ebaron@redhat.com>
+
+ * LaunchConfigTabTest.java: New file.
+ * CachegrindTestToolPage.java (checkL2Enablement): Subclassed as public.
+ (checkD1Enablement): Likewise.
+ (checkI1Enablement): Likewise.
+ * test.xml: In cleanup change classname to cachegrind_classname.
+ * DoubleClickTest.java: New file.
+ * META-INF/MANIFEST.MF: New deps.
+ * AllTests.java (suite): Added DoubleClickTest and LaunchConfigTabTest.
+
+2009-03-16 Elliott Baron <ebaron@redhat.com>
+
+ * CModelLabelsTest.java: New file.
+ * AllTests.java (suite): New test case.
+ * META-INF/MANIFEST.MF: Added cdt.ui to deps.
+ * AbstractCachegrindTest.java (getFileByName): Extracted method.
+ (getFunctionByName): Likewise.
+ * BasicCachegrindTest.java: Likewise.
+
+2009-03-13 Andrew Overholt <overholt@redhat.com>
+
+ * about.html: Initial checkin.
+ * build.properties: Add test.xml, etc. to build.
+
+2009-03-13 Andrew Overholt <overholt@redhat.com>
+
+ * test.xml: Initial checkin.
+
+2009-03-12 Elliott Baron <ebaron@redhat.com>
+
+ * .classpath: New file.
+ * .project: New file.
+ * .settings/org.eclipse.jdt.core.prefs: New file.
+ * build.properties: New file.
+ * META-INF/MANIFEST.MF: New file.
+ * plugin.properties: New file.
+ * resources/cpptest/.cproject: New file.
+ * resources/cpptest/.project: New file.
+ * resources/cpptest/cpptest.cpp: New file.
+ * resources/cpptest/cpptest.h: New file.
+ * resources/cpptest/Debug: New file.
+ * AbstractCachegrindTest.java: New file.
+ * BasicCachegrindTest.java: New file.
+ * CachegrindTestsPlugin.java: New file.
+ * CachegrindTestToolPage.java: New file.
+ * valgrindFiles: New directory. \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/META-INF/MANIFEST.MF b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..89bf3eea5e
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,32 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.linuxtools.valgrind.cachegrind.tests
+Bundle-Version: 0.7.0.qualifier
+Bundle-Activator: org.eclipse.linuxtools.internal.valgrind.cachegrind.tests.CachegrindTestsPlugin
+Bundle-Vendor: %Bundle-Vendor.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.junit;bundle-version="4.7.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
+Import-Package: org.eclipse.cdt.core.model,
+ org.eclipse.cdt.ui,
+ org.eclipse.core.resources,
+ org.eclipse.debug.core,
+ org.eclipse.debug.core.model,
+ org.eclipse.debug.ui,
+ org.eclipse.jface.text,
+ org.eclipse.linuxtools.internal.valgrind.cachegrind,
+ org.eclipse.linuxtools.internal.valgrind.cachegrind.model,
+ org.eclipse.linuxtools.internal.valgrind.core,
+ org.eclipse.linuxtools.internal.valgrind.launch,
+ org.eclipse.linuxtools.internal.valgrind.tests,
+ org.eclipse.linuxtools.internal.valgrind.ui,
+ org.eclipse.linuxtools.profiling.tests,
+ org.eclipse.linuxtools.valgrind.launch,
+ org.eclipse.linuxtools.valgrind.ui,
+ org.eclipse.ui,
+ org.eclipse.ui.texteditor
+Export-Package: org.eclipse.linuxtools.internal.valgrind.cachegrind.tests
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/about.html b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/about.html
new file mode 100644
index 0000000000..e6a2741fc0
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>October 24, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/build.properties b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/build.properties
new file mode 100644
index 0000000000..118522991a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ resources/,\
+ about.html,\
+ valgrindFiles/,\
+ test.xml
+
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/plugin.properties b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/plugin.properties
new file mode 100644
index 0000000000..d852c5097e
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.linuxtools.valgrind.cachegrind.tests
+Bundle-Vendor.0 = Eclipse Linux Tools
+Bundle-Name.0 = Cachegrind Tests Plug-in (Incubation) \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.cproject b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.cproject
new file mode 100644
index 0000000000..08a4ce3e63
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.cproject
@@ -0,0 +1,927 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1463910690">
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1463910690" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<configuration artifactName="cpptest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1463910690" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
+<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1463910690." name="/" resourcePath="">
+<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.149960898" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
+<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1500334364" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
+<builder buildPath="${workspace_loc:/cpptest/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.328121746" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
+<tool id="cdt.managedbuild.tool.gnu.archiver.base.1298736048" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1953407560" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
+<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1473633174" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+<option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1312827060" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.968970650" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.652886580" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
+<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.971220945" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
+<option id="gnu.c.compiler.exe.debug.option.debugging.level.441208182" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.957338308" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.934477526" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.278234789" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
+<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1399405690" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+</inputType>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1699028925" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
+<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1876371051" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+</tool>
+</toolChain>
+</folderInfo>
+</configuration>
+</storageModule>
+<storageModule moduleId="scannerConfiguration">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1753505102;cdt.managedbuild.config.gnu.exe.release.1753505102.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.275019146;cdt.managedbuild.tool.gnu.c.compiler.input.1753556205">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1463910690;cdt.managedbuild.config.gnu.exe.debug.1463910690.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.652886580;cdt.managedbuild.tool.gnu.c.compiler.input.957338308">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1753505102;cdt.managedbuild.config.gnu.exe.release.1753505102.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.456235642;cdt.managedbuild.tool.gnu.cpp.compiler.input.340493281">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1463910690;cdt.managedbuild.config.gnu.exe.debug.1463910690.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1953407560;cdt.managedbuild.tool.gnu.cpp.compiler.input.968970650">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+</storageModule>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1753505102">
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1753505102" moduleId="org.eclipse.cdt.core.settings" name="Release">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<configuration artifactName="cpptest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1753505102" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
+<folderInfo id="cdt.managedbuild.config.gnu.exe.release.1753505102." name="/" resourcePath="">
+<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.385921575" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
+<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.366626344" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
+<builder buildPath="${workspace_loc:/cpptest/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1887182313" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
+<tool id="cdt.managedbuild.tool.gnu.archiver.base.368404610" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.456235642" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
+<option id="gnu.cpp.compiler.exe.release.option.optimization.level.1052231562" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+<option id="gnu.cpp.compiler.exe.release.option.debugging.level.1912250672" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
+<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.340493281" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.275019146" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
+<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1405936688" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
+<option id="gnu.c.compiler.exe.release.option.debugging.level.355786697" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
+<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1753556205" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.176412242" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1791495231" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
+<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.862229990" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+</inputType>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1904268286" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
+<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1462248242" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+</tool>
+</toolChain>
+</folderInfo>
+</configuration>
+</storageModule>
+<storageModule moduleId="scannerConfiguration">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1753505102;cdt.managedbuild.config.gnu.exe.release.1753505102.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.275019146;cdt.managedbuild.tool.gnu.c.compiler.input.1753556205">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1463910690;cdt.managedbuild.config.gnu.exe.debug.1463910690.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.652886580;cdt.managedbuild.tool.gnu.c.compiler.input.957338308">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1753505102;cdt.managedbuild.config.gnu.exe.release.1753505102.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.456235642;cdt.managedbuild.tool.gnu.cpp.compiler.input.340493281">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1463910690;cdt.managedbuild.config.gnu.exe.debug.1463910690.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1953407560;cdt.managedbuild.tool.gnu.cpp.compiler.input.968970650">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+</storageModule>
+</cconfiguration>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<project id="cpptest.cdt.managedbuild.target.gnu.exe.1242136619" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
+</storageModule>
+</cproject>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.project b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.project
new file mode 100644
index 0000000000..0c43235ddd
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/.project
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>cpptest</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/cpptest/Debug}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.cpp b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.cpp
new file mode 100644
index 0000000000..bd52aef5a3
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.cpp
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+#include "cpptest.h"
+
+int x = 3;
+
+class A {
+public:
+ A() : y(6) {}
+ int c() {
+ B b = B();
+ b.d();
+ return b.x + y;
+ }
+private:
+ class B {
+ public:
+ B() : x(5) {}
+ void d() {
+ x++;
+ e();
+ }
+ int x;
+ private:
+ void e() {
+ x--;
+ }
+ };
+ int y;
+};
+
+int Foo::bar(int z) {
+ return x + baz(y, z);
+}
+
+int Foo::baz(int a, int b) {
+ return a + b;
+}
+
+int main(int argc, char **argv) {
+ Foo f = Foo();
+ A a = A();
+ f.bar(5);
+ a.c();
+ return 0;
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.h b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.h
new file mode 100644
index 0000000000..2f82087fbe
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/cpptest/cpptest.h
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+#ifndef CPPTEST_H_
+#define CPPTEST_H_
+
+class Foo {
+public:
+ Foo() : y(4) {}
+ int bar(int);
+private:
+ int baz(int, int);
+ int y;
+};
+
+#endif /* CPPTEST_H_ */
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.cproject b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.cproject
new file mode 100644
index 0000000000..42551e0bab
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.cproject
@@ -0,0 +1,577 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1403986992">
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1403986992" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<configuration artifactName="multiProcTest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1403986992" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
+<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1403986992." name="/" resourcePath="">
+<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.278021374" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
+<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.89398874" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
+<builder buildPath="${workspace_loc:/multiProcTest/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.408442332" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
+<tool id="cdt.managedbuild.tool.gnu.archiver.base.2144670746" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.308805987" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
+<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1510340022" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+<option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1758201535" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1518367575" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
+<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.684491426" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
+<option id="gnu.c.compiler.exe.debug.option.debugging.level.1940432447" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1656745772" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.191481253" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"/>
+<tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1051360222" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"/>
+</toolChain>
+</folderInfo>
+</configuration>
+</storageModule>
+<storageModule moduleId="scannerConfiguration">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1403986992;cdt.managedbuild.config.gnu.exe.debug.1403986992.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1518367575;cdt.managedbuild.tool.gnu.c.compiler.input.1512497663">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1403986992;cdt.managedbuild.config.gnu.exe.debug.1403986992.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.308805987;cdt.managedbuild.tool.gnu.cpp.compiler.input.406930381">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+</storageModule>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.206269348">
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.206269348" moduleId="org.eclipse.cdt.core.settings" name="Release">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<configuration artifactName="multiProcTest" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.206269348" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
+<folderInfo id="cdt.managedbuild.config.gnu.exe.release.206269348." name="/" resourcePath="">
+<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1614180026" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
+<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.680850049" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
+<builder buildPath="${workspace_loc:/multiProcTest/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1001753861" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
+<tool id="cdt.managedbuild.tool.gnu.archiver.base.1866479351" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.1048530434" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
+<option id="gnu.cpp.compiler.exe.release.option.optimization.level.193324125" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+<option id="gnu.cpp.compiler.exe.release.option.debugging.level.65680841" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.53104544" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
+<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1277454231" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
+<option id="gnu.c.compiler.exe.release.option.debugging.level.1754602421" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
+</tool>
+<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.790479271" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
+<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1251386839" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
+<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1731287201" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release"/>
+</toolChain>
+</folderInfo>
+</configuration>
+</storageModule>
+<storageModule moduleId="scannerConfiguration">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1403986992;cdt.managedbuild.config.gnu.exe.debug.1403986992.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1518367575;cdt.managedbuild.tool.gnu.c.compiler.input.1512497663">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1403986992;cdt.managedbuild.config.gnu.exe.debug.1403986992.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.308805987;cdt.managedbuild.tool.gnu.cpp.compiler.input.406930381">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+</storageModule>
+</cconfiguration>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<project id="multiProcTest.cdt.managedbuild.target.gnu.exe.962066261" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
+</storageModule>
+</cproject>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.project b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.project
new file mode 100644
index 0000000000..b7e2857347
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/.project
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>multiProcTest</name>
+ <comment></comment>
+ <projects>
+ <project>cpptest</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/multiProcTest/Debug}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/parent.cpp b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/parent.cpp
new file mode 100644
index 0000000000..6c9860528a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/resources/multiProcTest/parent.cpp
@@ -0,0 +1,42 @@
+#include <cstdio>
+#include <unistd.h>
+
+int x = 3;
+
+class A {
+public:
+ A() : y(6) {}
+ int c() {
+ B b = B();
+ b.d();
+ return b.x + y;
+ }
+private:
+ class B {
+ public:
+ B() : x(5) {}
+ void d() {
+ x++;
+ e();
+ }
+ int x;
+ private:
+ void e() {
+ x--;
+ }
+ };
+ int y;
+};
+
+int main() {
+ if (fork()) {
+ A a = A();
+ a.c();
+ }
+ else {
+ execv("../cpptest/Debug/cpptest", NULL);
+ perror("execv");
+ }
+ return 0;
+}
+
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AbstractCachegrindTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AbstractCachegrindTest.java
new file mode 100644
index 0000000000..5a8d4b8b8f
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AbstractCachegrindTest.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindPlugin;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.tests.AbstractValgrindTest;
+import org.osgi.framework.Bundle;
+
+public abstract class AbstractCachegrindTest extends AbstractValgrindTest {
+
+ @Override
+ protected Bundle getBundle() {
+ return CachegrindTestsPlugin.getDefault().getBundle();
+ }
+
+ @Override
+ protected String getToolID() {
+ return CachegrindPlugin.TOOL_ID;
+ }
+
+ protected CachegrindFile getFileByName(CachegrindOutput output, String name) {
+ CachegrindFile file = null;
+ for (CachegrindFile f : output.getFiles()) {
+ if (f.getName().equals(name)) {
+ file = f;
+ }
+ }
+ return file;
+ }
+
+ protected CachegrindFunction getFunctionByName(CachegrindFile file, String name) {
+ CachegrindFunction function = null;
+ for (CachegrindFunction f : file.getFunctions()) {
+ if (f.getName().equals(name)) {
+ function = f;
+ }
+ }
+ return function;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AllTests.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AllTests.java
new file mode 100644
index 0000000000..36d6e65969
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/AllTests.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindPlugin;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(
+ "Tests for " + CachegrindPlugin.PLUGIN_ID); //$NON-NLS-1$
+ //$JUnit-BEGIN$
+ suite.addTestSuite(BasicCachegrindTest.class);
+ suite.addTestSuite(CModelLabelsTest.class);
+ suite.addTestSuite(DoubleClickTest.class);
+ suite.addTestSuite(LaunchConfigTabTest.class);
+ suite.addTestSuite(MultiProcessTest.class);
+ suite.addTestSuite(ExpandCollapseTest.class);
+ //$JUnit-END$
+ return suite;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/BasicCachegrindTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/BasicCachegrindTest.java
new file mode 100644
index 0000000000..5f7fc0cfe1
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/BasicCachegrindTest.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.ui.ValgrindUIPlugin;
+
+public class BasicCachegrindTest extends AbstractCachegrindTest {
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ proj = createProjectAndBuild("cpptest"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ deleteProject(proj);
+ super.tearDown();
+ }
+
+ public void testNumPIDs() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testNumPIDs"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ assertEquals(1, view.getOutputs().length);
+ }
+
+ public void testFileNames() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testFileNames"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ assertNotNull(file);
+ file = getFileByName(output, "cpptest.h"); //$NON-NLS-1$
+ assertNotNull(file);
+ }
+
+ public void testNumFunctions() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testNumFunctions"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ assertNotNull(file);
+ assertEquals(8, file.getFunctions().length);
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CModelLabelsTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CModelLabelsTest.java
new file mode 100644
index 0000000000..01f300b0fe
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CModelLabelsTest.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.cdt.core.model.IFunction;
+import org.eclipse.cdt.core.model.IMethod;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.ui.CElementLabelProvider;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindLabelProvider;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.ICachegrindElement;
+import org.eclipse.linuxtools.internal.valgrind.ui.ValgrindUIPlugin;
+import org.eclipse.swt.widgets.TreeItem;
+
+public class CModelLabelsTest extends AbstractCachegrindTest {
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ proj = createProjectAndBuild("cpptest"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ deleteProject(proj);
+ super.tearDown();
+ }
+
+ public void testFileLabelsCPP() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testFileLabelsCPP"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+
+ assertTrue(file.getModel() instanceof ITranslationUnit);
+
+ checkLabelProvider(file);
+ }
+
+ public void testFileLabelsH() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testFileLabelsH"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.h"); //$NON-NLS-1$
+
+ assertTrue(file.getModel() instanceof ITranslationUnit);
+ assertTrue(((ITranslationUnit) file.getModel()).isHeaderUnit());
+
+ checkLabelProvider(file);
+ }
+
+ public void testFunctionLabel() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testFunctionLabel"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ CachegrindFunction func = getFunctionByName(file, "main"); //$NON-NLS-1$
+
+ assertTrue(func.getModel() instanceof IFunction);
+
+ checkLabelProvider(func, file);
+ }
+
+ public void testMethodLabel() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testMethodLabel"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ CachegrindFunction func = getFunctionByName(file, "A::A()"); //$NON-NLS-1$
+
+ assertTrue(func.getModel() instanceof IMethod);
+
+ checkLabelProvider(func, file);
+ }
+
+ public void testNestedMethodLabel() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testNestedMethodLabel"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ CachegrindFunction func = getFunctionByName(file, "A::B::e()"); //$NON-NLS-1$
+
+ assertTrue(func.getModel() instanceof IMethod);
+
+ checkLabelProvider(func, file);
+ }
+
+ private void checkLabelProvider(CachegrindFile file) {
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ TreeViewer viewer = view.getViewer();
+
+ TreePath path = new TreePath(new Object[] { view.getOutputs()[0], file });
+ checkLabelProvider(viewer, path, file);
+ }
+
+ private void checkLabelProvider(CachegrindFunction func, CachegrindFile file) {
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ TreeViewer viewer = view.getViewer();
+
+ TreePath path = new TreePath(new Object[] { view.getOutputs()[0], file, func });
+ checkLabelProvider(viewer, path, func);
+ }
+
+ private void checkLabelProvider(TreeViewer viewer, TreePath path, ICachegrindElement element) {
+ // expand only the interesting item
+ viewer.expandToLevel(element, TreeViewer.ALL_LEVELS);
+ TreeSelection selection = new TreeSelection(path);
+ viewer.setSelection(selection);
+ TreeItem item = viewer.getTree().getSelection()[0];
+
+ // ensure the CElementLabelProvider is called correctly
+ CElementLabelProvider provider = ((CachegrindLabelProvider) viewer.getLabelProvider(0)).getCLabelProvider();
+ assertEquals(provider.getText(element.getModel()), item.getText());
+ assertEquals(provider.getImage(element.getModel()), item.getImage());
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CachegrindTestsPlugin.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CachegrindTestsPlugin.java
new file mode 100644
index 0000000000..65e5581344
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/CachegrindTestsPlugin.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class CachegrindTestsPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.linuxtools.valgrind.cachegrind.tests"; //$NON-NLS-1$
+
+ // The shared instance
+ private static CachegrindTestsPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public CachegrindTestsPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static CachegrindTestsPlugin getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/DoubleClickTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/DoubleClickTest.java
new file mode 100644
index 0000000000..a2e9c83507
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/DoubleClickTest.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import java.io.File;
+
+import org.eclipse.cdt.core.model.IFunction;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindLine;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.ICachegrindElement;
+import org.eclipse.linuxtools.internal.valgrind.ui.ValgrindUIPlugin;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+public class DoubleClickTest extends AbstractCachegrindTest {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ proj = createProjectAndBuild("cpptest"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ deleteProject(proj);
+ super.tearDown();
+ }
+
+ private void doDoubleClick(TreePath path) {
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ TreeViewer treeViewer = (TreeViewer) view.getViewer();
+
+ ICachegrindElement element = (ICachegrindElement) path.getLastSegment();
+ treeViewer.expandToLevel(element, TreeViewer.ALL_LEVELS);
+ TreeSelection selection = new TreeSelection(path);
+
+ IDoubleClickListener listener = view.getDoubleClickListener();
+ listener.doubleClick(new DoubleClickEvent(treeViewer, selection));
+ }
+
+ public void testDoubleClickFile() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testDoubleClickFile"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ TreePath path = new TreePath(new Object[] { output, file });
+
+ doDoubleClick(path);
+
+ checkFile(file);
+ }
+
+ public void testDoubleClickFunction() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testDoubleClickFunction"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ CachegrindFunction func = getFunctionByName(file, "main"); //$NON-NLS-1$
+ TreePath path = new TreePath(new Object[] { output, file, func });
+
+ doDoubleClick(path);
+
+ // check file in editor
+ IEditorPart editor = checkFile(file);
+
+ // check line number
+ ITextEditor textEditor = (ITextEditor) editor;
+
+ ISelection selection = textEditor.getSelectionProvider().getSelection();
+ TextSelection textSelection = (TextSelection) selection;
+ int line = textSelection.getStartLine() + 1; // zero-indexed
+
+ int expectedLine = ((IFunction) func.getModel()).getSourceRange().getStartLine();
+ assertEquals(expectedLine, line);
+ }
+
+ public void testDoubleClickLine() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testDoubleClickFunction"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ CachegrindOutput output = view.getOutputs()[0];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ CachegrindFunction func = getFunctionByName(file, "main"); //$NON-NLS-1$
+ CachegrindLine line = func.getLines()[0];
+ TreePath path = new TreePath(new Object[] { output, file, func });
+
+ doDoubleClick(path);
+
+ // check file in editor
+ IEditorPart editor = checkFile(file);
+
+ // check line number
+ ITextEditor textEditor = (ITextEditor) editor;
+
+ ISelection selection = textEditor.getSelectionProvider().getSelection();
+ TextSelection textSelection = (TextSelection) selection;
+ int actualLine = textSelection.getStartLine() + 1; // zero-indexed
+
+ assertEquals(line.getLine(), actualLine);
+ }
+
+ private IEditorPart checkFile(CachegrindFile file) {
+ IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+ IEditorInput input = editor.getEditorInput();
+ IFileEditorInput fileInput = (IFileEditorInput) input;
+ IResource expectedResource = proj.getProject().findMember(file.getName());
+ File expectedFile = expectedResource.getLocation().toFile();
+ File actualFile = fileInput.getFile().getLocation().toFile();
+ assertEquals(expectedFile, actualFile);
+ return editor;
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/ExpandCollapseTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/ExpandCollapseTest.java
new file mode 100644
index 0000000000..c402d15d92
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/ExpandCollapseTest.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.ICachegrindElement;
+import org.eclipse.linuxtools.internal.valgrind.ui.ValgrindUIPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Menu;
+
+public class ExpandCollapseTest extends AbstractCachegrindTest {
+
+ protected TreeViewer viewer;
+ protected Menu contextMenu;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ proj = createProjectAndBuild("cpptest"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ deleteProject(proj);
+ super.tearDown();
+ }
+
+ public void testExpand() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testDefaults"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ viewer = view.getViewer();
+ contextMenu = viewer.getTree().getMenu();
+
+ // Select first snapshot and expand it
+ CachegrindOutput[] outputs = (CachegrindOutput[]) viewer.getInput();
+ CachegrindOutput output = outputs[0];
+ TreeSelection selection = new TreeSelection(new TreePath(new Object[] { output }));
+ viewer.setSelection(selection);
+ contextMenu.notifyListeners(SWT.Show, null);
+ contextMenu.getItem(0).notifyListeners(SWT.Selection, null);
+
+ checkExpanded(output, true);
+ }
+
+ public void testCollapse() throws Exception {
+ // Expand the element first
+ testExpand();
+
+ // Then collapse it
+ CachegrindOutput[] outputs = (CachegrindOutput[]) viewer.getInput();
+ CachegrindOutput output = outputs[0];
+ TreeSelection selection = new TreeSelection(new TreePath(new Object[] { output }));
+ viewer.setSelection(selection);
+ contextMenu.notifyListeners(SWT.Show, null);
+ contextMenu.getItem(1).notifyListeners(SWT.Selection, null);
+
+ checkExpanded(output, false);
+ }
+
+ private void checkExpanded(ICachegrindElement element, boolean expanded) {
+ if (element.getChildren() != null && element.getChildren().length > 0) {
+ // only applicable to internal nodes
+ if (expanded) {
+ assertTrue(viewer.getExpandedState(element));
+ }
+ else {
+ assertFalse(viewer.getExpandedState(element));
+ }
+ for (ICachegrindElement child : element.getChildren()) {
+ checkExpanded(child, expanded);
+ }
+ }
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/LaunchConfigTabTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/LaunchConfigTabTest.java
new file mode 100644
index 0000000000..e5f272e32a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/LaunchConfigTabTest.java
@@ -0,0 +1,210 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import java.util.Arrays;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.debug.ui.ILaunchConfigurationTab;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindPlugin;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindToolPage;
+import org.eclipse.linuxtools.internal.valgrind.launch.ValgrindOptionsTab;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+public class LaunchConfigTabTest extends AbstractCachegrindTest {
+
+ protected ILaunchConfiguration config;
+ protected Shell testShell;
+ protected ValgrindOptionsTab tab;
+ protected CachegrindToolPage dynamicTab;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ proj = createProjectAndBuild("cpptest"); //$NON-NLS-1$
+
+ config = createConfiguration(proj.getProject());
+
+ testShell = new Shell(Display.getDefault());
+ testShell.setLayout(new GridLayout());
+ tab = new ValgrindOptionsTab();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ tab.dispose();
+ testShell.dispose();
+ deleteProject(proj);
+ super.tearDown();
+ }
+
+ private ILaunchConfigurationWorkingCopy initConfig() throws CoreException {
+ ILaunchConfigurationWorkingCopy wc = config.getWorkingCopy();
+ tab.setDefaults(wc);
+ tab.createControl(testShell);
+ tab.initializeFrom(config);
+ int ix = Arrays.asList(tab.getTools()).indexOf(CachegrindPlugin.TOOL_ID);
+ tab.getToolsCombo().select(ix);
+ ILaunchConfigurationTab dynamicTab = tab.getDynamicTab();
+ this.dynamicTab = (CachegrindToolPage) dynamicTab;
+ return wc;
+ }
+
+ private ILaunch saveAndLaunch(ILaunchConfigurationWorkingCopy wc, String testName)
+ throws Exception {
+ tab.performApply(wc);
+ config = wc.doSave();
+
+ ILaunch launch = doLaunch(config, testName);
+ return launch;
+ }
+
+ public void testDefaults() throws Exception {
+ ILaunchConfigurationWorkingCopy wc = initConfig();
+ ILaunch launch = saveAndLaunch(wc, "testDefaults"); //$NON-NLS-1$
+ IProcess[] p = launch.getProcesses();
+ if (p.length > 0) {
+ String cmd = p[0].getAttribute(IProcess.ATTR_CMDLINE);
+ assertEquals(0, p[0].getExitValue());
+ assertTrue(cmd.contains("--tool=cachegrind")); //$NON-NLS-1$
+ assertFalse(cmd.contains("--xml=yes")); //$NON-NLS-1$
+ assertTrue(cmd.contains("-q")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--trace-children=no")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--child-silent-after-fork=yes")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--demangle=yes")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--num-callers=12")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--error-limit=yes")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--show-below-main=no")); //$NON-NLS-1$
+ assertFalse(cmd.contains("--suppressions")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--max-stackframe=2000000")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--run-libc-freeres=yes")); //$NON-NLS-1$
+
+ assertTrue(cmd.contains("--cache-sim=yes")); //$NON-NLS-1$
+ assertTrue(cmd.contains("--branch-sim=no")); //$NON-NLS-1$
+ }
+ else {
+ fail();
+ }
+ }
+
+ public void testNoSim() throws Exception {
+ ILaunchConfigurationWorkingCopy wc = initConfig();
+ dynamicTab.getCacheButton().setSelection(false);
+ tab.performApply(wc);
+ wc.doSave();
+
+ assertFalse(tab.isValid(config));
+ }
+
+ public void testBranchSim() throws Exception {
+ ILaunchConfigurationWorkingCopy wc = initConfig();
+ dynamicTab.getBranchButton().setSelection(true);
+ tab.performApply(wc);
+ wc.doSave();
+
+ ILaunch launch = saveAndLaunch(wc, "testBranchSim"); //$NON-NLS-1$
+ IProcess[] p = launch.getProcesses();
+ if (p.length > 0) {
+ String cmd = p[0].getAttribute(IProcess.ATTR_CMDLINE);
+ assertEquals(0, p[0].getExitValue());
+ assertTrue(cmd.contains("--branch-sim=yes")); //$NON-NLS-1$
+ }
+ else {
+ fail();
+ }
+ }
+
+ public void testI1Cache() throws Exception {
+ ILaunchConfigurationWorkingCopy wc = initConfig();
+
+ assertFalse(dynamicTab.getI1SizeSpinner().isEnabled());
+ dynamicTab.getI1Button().setSelection(true);
+ dynamicTab.getI1Button().notifyListeners(SWT.Selection, null);
+ assertTrue(dynamicTab.getI1SizeSpinner().isEnabled());
+
+ dynamicTab.getI1SizeSpinner().setSelection(16384);
+ dynamicTab.getI1AssocSpinner().setSelection(1);
+ dynamicTab.getI1LineSizeSpinner().setSelection(16);
+
+ tab.performApply(wc);
+ wc.doSave();
+
+ ILaunch launch = saveAndLaunch(wc, "testI1Cache"); //$NON-NLS-1$
+ IProcess[] p = launch.getProcesses();
+ if (p.length > 0) {
+ String cmd = p[0].getAttribute(IProcess.ATTR_CMDLINE);
+ assertTrue(cmd.contains("--I1=16384,1,16")); //$NON-NLS-1$
+ }
+ else {
+ fail();
+ }
+ }
+
+ public void testD1Cache() throws Exception {
+ ILaunchConfigurationWorkingCopy wc = initConfig();
+
+ assertFalse(dynamicTab.getD1SizeSpinner().isEnabled());
+ dynamicTab.getD1Button().setSelection(true);
+ dynamicTab.getD1Button().notifyListeners(SWT.Selection, null);
+ assertTrue(dynamicTab.getD1SizeSpinner().isEnabled());
+
+ dynamicTab.getD1SizeSpinner().setSelection(16384);
+ dynamicTab.getD1AssocSpinner().setSelection(1);
+ dynamicTab.getD1LineSizeSpinner().setSelection(16);
+
+ tab.performApply(wc);
+ wc.doSave();
+
+ ILaunch launch = saveAndLaunch(wc, "testD1Cache"); //$NON-NLS-1$
+ IProcess[] p = launch.getProcesses();
+ if (p.length > 0) {
+ String cmd = p[0].getAttribute(IProcess.ATTR_CMDLINE);
+ assertTrue(cmd.contains("--D1=16384,1,16")); //$NON-NLS-1$
+ }
+ else {
+ fail();
+ }
+ }
+
+ public void testL2Cache() throws Exception {
+ ILaunchConfigurationWorkingCopy wc = initConfig();
+
+ assertFalse(dynamicTab.getL2SizeSpinner().isEnabled());
+ dynamicTab.getL2Button().setSelection(true);
+ dynamicTab.getL2Button().notifyListeners(SWT.Selection, null);
+ assertTrue(dynamicTab.getL2SizeSpinner().isEnabled());
+
+ dynamicTab.getL2SizeSpinner().setSelection(16384);
+ dynamicTab.getL2AssocSpinner().setSelection(1);
+ dynamicTab.getL2LineSizeSpinner().setSelection(16);
+
+ tab.performApply(wc);
+ wc.doSave();
+
+ ILaunch launch = saveAndLaunch(wc, "testL2Cache"); //$NON-NLS-1$
+ IProcess[] p = launch.getProcesses();
+ if (p.length > 0) {
+ String cmd = p[0].getAttribute(IProcess.ATTR_CMDLINE);
+ assertTrue(cmd.contains("--L2=16384,1,16")); //$NON-NLS-1$
+ }
+ else {
+ fail();
+ }
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/MultiProcessTest.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/MultiProcessTest.java
new file mode 100644
index 0000000000..63a68d525f
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/tests/MultiProcessTest.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.tests;
+
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.core.LaunchConfigurationConstants;
+import org.eclipse.linuxtools.internal.valgrind.ui.ValgrindUIPlugin;
+
+public class MultiProcessTest extends AbstractCachegrindTest {
+ ICProject refProj;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ refProj = createProjectAndBuild("cpptest"); //$NON-NLS-1$
+ proj = createProjectAndBuild("multiProcTest"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ deleteProject(proj);
+ deleteProject(refProj);
+ super.tearDown();
+ }
+
+ public void testNoExec() throws Exception {
+ ILaunchConfiguration config = createConfiguration(proj.getProject());
+ doLaunch(config, "testNoExec"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ assertEquals(1, view.getOutputs().length);
+ }
+
+ public void testNumPids() throws Exception {
+ ILaunchConfigurationWorkingCopy config = createConfiguration(proj.getProject()).getWorkingCopy();
+ config.setAttribute(LaunchConfigurationConstants.ATTR_GENERAL_TRACECHILD, true);
+ config.doSave();
+ doLaunch(config, "testExec"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+ assertEquals(2, view.getOutputs().length);
+ }
+
+ public void testFileNames() throws Exception {
+ ILaunchConfigurationWorkingCopy config = createConfiguration(proj.getProject()).getWorkingCopy();
+ config.setAttribute(LaunchConfigurationConstants.ATTR_GENERAL_TRACECHILD, true);
+ config.doSave();
+ doLaunch(config, "testExec"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+
+ int pidIx = 0;
+ CachegrindOutput output = view.getOutputs()[pidIx];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ if (file == null) {
+ pidIx = 1;
+ output = view.getOutputs()[pidIx];
+ file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ }
+ assertNotNull(file);
+ file = getFileByName(output, "cpptest.h"); //$NON-NLS-1$
+ assertNotNull(file);
+
+ // test other pid
+ pidIx = (pidIx + 1) % 2;
+ output = view.getOutputs()[pidIx];
+ file = getFileByName(output, "parent.cpp"); //$NON-NLS-1$
+ assertNotNull(file);
+ }
+
+ public void testNumFunctions() throws Exception {
+ ILaunchConfigurationWorkingCopy config = createConfiguration(proj.getProject()).getWorkingCopy();
+ config.setAttribute(LaunchConfigurationConstants.ATTR_GENERAL_TRACECHILD, true);
+ config.doSave();;
+ doLaunch(config, "testExec"); //$NON-NLS-1$
+
+ CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
+
+ int pidIx = 0;
+ CachegrindOutput output = view.getOutputs()[pidIx];
+ CachegrindFile file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ if (file == null) {
+ pidIx = 1;
+ output = view.getOutputs()[pidIx];
+ file = getFileByName(output, "cpptest.cpp"); //$NON-NLS-1$
+ }
+ assertNotNull(file);
+ assertEquals(8, file.getFunctions().length);
+
+ // test other pid
+ pidIx = (pidIx + 1) % 2;
+ output = view.getOutputs()[pidIx];
+ file = getFileByName(output, "parent.cpp"); //$NON-NLS-1$
+ assertNotNull(file);
+ assertEquals(6, file.getFunctions().length);
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/test.xml b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/test.xml
new file mode 100644
index 0000000000..a431252ffe
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/test.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+ <property name="cachegrind_classname" value="org.eclipse.linuxtools.internal.valgrind.cachegrind.tests.AllTests" />
+ <property name="cachegrind-plugin-name" value="org.eclipse.linuxtools.valgrind.cachegrind.tests" />
+
+ <property name="library-file" value="${eclipse-home}/dropins/${subProjectName2}/plugins/org.eclipse.test/library.xml" />
+
+ <!-- The property ${eclipse-home} should be passed into this script -->
+ <!-- Set a meaningful default value for when it is not. -->
+ <property name="eclipse-home" value="${basedir}/../.." />
+
+ <!-- This target holds all initialization code that needs to be done for -->
+ <!-- all tests that are to be run. Initialization for individual tests -->
+ <!-- should be done within the body of the suite target. -->
+ <target name="init">
+ <tstamp />
+ <delete>
+ <fileset dir="${eclipse-home}" includes="org*.xml" />
+ </delete>
+ </target>
+
+ <!-- This target defines the tests that need to be run. -->
+ <target name="cachegrind_suite">
+ <property name="cachegrind-folder" value="${eclipse-home}/cachegrind_folder" />
+ <delete dir="${cachegrind-folder}" quiet="true" />
+ <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="data-dir" value="${cachegrind-folder}" />
+ <property name="plugin-name" value="${cachegrind-plugin-name}" />
+ <property name="classname" value="${cachegrind_classname}" />
+ </ant>
+ </target>
+
+ <!-- This target holds code to cleanup the testing environment after -->
+ <!-- after all of the tests have been run. You can use this target to -->
+ <!-- delete temporary files that have been created. -->
+ <target name="cleanup">
+ <mkdir dir="${results}/consolelogs" />
+ <copy failonerror="false" file="${eclipse-home}/results/${cachegrind_classname}.txt" tofile="${results}/consolelogs/${cachegrind_classname}_${platform}.metadata.log.txt" />
+ </target>
+
+ <!-- This target runs the test suite. Any actions that need to happen -->
+ <!-- after all the tests have been run should go here. -->
+ <target name="run" depends="init,cachegrind_suite,cleanup">
+ <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="includes" value="org*.xml" />
+ <property name="output-file" value="${cachegrind-plugin-name}.xml" />
+ </ant>
+ </target>
+
+ <target name="all" depends="run" description="Dummy target to run all tests">
+ </target>
+
+</project>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testBranchSim/template_cachegrind_5190.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testBranchSim/template_cachegrind_5190.txt
new file mode 100644
index 0000000000..da3ecbe7ae
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testBranchSim/template_cachegrind_5190.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw Bc Bcm Bi Bim
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0 0 0 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0 0 0 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0 0 0 0 0
+28 5 0 0 3 0 0 1 0 0 0 0 0 0
+29 3 0 0 1 0 0 1 0 0 0 0 0 0
+30 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0 0 0 0 0
+34 5 0 0 3 0 0 1 0 0 0 0 0 0
+35 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0 0 0 0 0
+19 3 0 0 0 0 0 1 0 0 0 0 0 0
+20 3 0 0 0 0 0 1 0 0 0 0 0 0
+21 4 0 0 3 0 0 0 0 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0 0 0 0 0
+41 9 0 0 5 0 0 1 0 0 0 0 0 0
+42 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0 0 0 0 0
+45 3 0 0 2 0 0 0 0 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0 0 0 0 0
+49 3 0 0 0 0 0 1 0 0 0 0 0 0
+50 3 0 0 0 0 0 1 0 0 0 0 0 0
+51 4 0 0 0 0 0 1 0 0 0 0 0 0
+52 3 0 0 0 0 0 1 0 0 0 0 0 0
+53 1 0 0 0 0 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0 0 0 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0 7 1 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8 73 34 105 16
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0 10 5 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0 17 7 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1 3 0 0 0
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0 54 16 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1 3 0 0 0
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0 1 1 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0 1 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0 2 0 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0 122 33 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0 24 13 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0 1 0 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1 0 0 0 0
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0 4 3 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0 2 2 0 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1 17 4 0 0
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28 231 11 0 0
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0 787 53 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2 12 3 0 0
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0 22 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28 388 91 0 0
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0 22 2 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0 11 3 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1 15 4 0 0
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0 94 24 0 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0 59 2 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3 34 16 0 0
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0 10 8 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3 245 15 0 0
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0 255 54 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0 59165 1255 0 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9 492 85 0 0
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2 739 96 0 0
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55 864 163 0 0
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2 796 49 0 0
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36 182 83 0 0
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0 96 27 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0 2 0 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0 8 0 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0 0 0 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490 28971 664 2141 11
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0 0 0 6 3
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1 14 0 0 0
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0 163 41 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12 74 25 0 0
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0 3 1 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2 86 24 16 12
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0 1 0 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0 2 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0 12 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4 12 7 0 0
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0 32 5 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0 1 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1 2 0 0 0
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0 459 111 0 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0 38 11 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0 14 12 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0 9409 25 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0 6 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14 323 91 0 0
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0 48859 2855 0 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0 1 0 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0 16 5 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0 2 0 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4 95 43 0 0
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1 20 6 0 0
+fn=index
+0 687 2 2 62 7 7 0 0 0 63 38 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3 15 5 0 0
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0 20 11 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0 176 11 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1 160 44 0 0
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0 4 0 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0 0 0 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0 273 29 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15 203 87 0 0
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11 571 149 0 0
+fn=memset
+0 1042 3 3 7 0 0 515 67 67 123 49 0 0
+fn=mmap
+0 108 2 2 18 0 0 0 0 0 18 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0 9 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0 1 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0 31 4 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1 338 49 0 0
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4 432 101 0 0
+fn=openaux
+0 231 2 2 88 0 0 44 1 1 0 0 0 0
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3 89 33 2 2
+fn=read
+0 25 1 1 5 0 0 0 0 0 5 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0 15 4 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1 3 1 0 0
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0 30555 1530 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0 73 32 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0 1350 20 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0 1 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0 1 1 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817 188014 8300 2270 44
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testD1Cache/template_cachegrind_5300.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testD1Cache/template_cachegrind_5300.txt
new file mode 100644
index 0000000000..50e2cdedfa
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testD1Cache/template_cachegrind_5300.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 16384 B, 16 B, direct-mapped
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 1 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 1 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 3 0 17 0 0
+fn=???
+0 718 79 74 300 95 11 185 32 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 3 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 1 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 3 1
+fn=__cxa_finalize
+0 279 6 6 72 7 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 3 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 1 0
+fn=__libc_fini
+0 6 0 0 3 1 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 2 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 7 0 206 16 0
+fn=__new_exitfn
+0 111 6 6 30 7 5 10 3 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 1 0 104 18 1
+fn=__unregister_atfork
+0 32 2 2 12 4 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 5 0 10 3 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 9 0 18 3 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 112 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 34 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 7 0 204 19 2
+fn=_dl_check_all_versions
+0 124 3 3 19 4 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 105 15 403 112 28
+fn=_dl_debug_initialize
+0 76 3 3 24 8 1 4 1 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 2 1 11 1 0
+fn=_dl_discover_osversion
+0 87 4 4 12 2 1 4 2 1
+fn=_dl_fini
+0 409 12 12 134 46 0 43 9 0
+fn=_dl_fixup
+0 437 6 6 158 49 1 42 4 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 13 3
+fn=_dl_init
+0 104 5 5 25 11 0 15 1 0
+fn=_dl_init_paths
+0 1752 17 17 249 4 1 42 15 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 48 30 66 2 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 6076 1065 27255 266 0
+fn=_dl_map_object
+0 2229 23 23 566 69 1 331 34 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 111 2 191 27 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 185 47 459 164 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 190 0 798 14 2
+fn=_dl_new_object
+0 1241 13 13 237 13 8 231 91 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 43 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 1 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 5 0 8 1 0
+fn=_dl_receive_error
+0 28 2 2 10 5 0 12 1 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 8100 2097 14356 2100 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 2 0 48 1 0
+fn=_dl_setup_hash
+0 203 2 2 49 12 10 42 19 1
+fn=_dl_sort_fini
+0 666 6 6 172 23 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 34 12 40 28 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 1 0
+fn=_dl_sysdep_start
+0 395 13 13 108 58 15 27 9 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 2 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 7 1 18 6 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 1 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 5 0
+fn=call_init
+0 307 5 5 105 31 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 907 99 5915 73 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 102 19 128 44 14
+fn=do_lookup_x
+0 326670 13 13 104430 10226 504 46233 1368 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 1 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 2 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 23 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 6 1
+fn=index
+0 687 2 2 62 27 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 5 3
+fn=init_tls
+0 86 4 4 22 10 1 14 4 0
+fn=intel_02_known_compare
+0 1218 1 1 528 25 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 5 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 1 0
+fn=match_symbol
+0 1251 4 4 465 90 24 144 3 0
+fn=memcpy
+0 862 6 6 143 0 0 119 44 15
+fn=mempcpy
+0 2443 6 6 384 19 1 305 38 11
+fn=memset
+0 1042 3 3 7 0 0 515 259 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 2 0
+fn=open_path
+0 2236 14 14 802 24 0 239 10 1
+fn=open_verify
+0 1879 11 11 604 23 7 325 26 4
+fn=openaux
+0 231 2 2 88 10 0 44 6 1
+fn=process_envvars
+0 230 9 9 74 8 4 16 9 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 5 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 1 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 235 20 0 0 0
+fn=strlen
+0 776 2 2 99 5 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 1 0 2 0 0
+summary: 1273787 700 694 302365 27165 4096 100676 5075 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDefaults/template_cachegrind_5885.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDefaults/template_cachegrind_5885.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDefaults/template_cachegrind_5885.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFile/template_cachegrind_4919.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFile/template_cachegrind_4919.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFile/template_cachegrind_4919.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFunction/template_cachegrind_5031.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFunction/template_cachegrind_5031.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testDoubleClickFunction/template_cachegrind_5031.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5774.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5774.txt
new file mode 100644
index 0000000000..2c6ddb24af
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5774.txt
@@ -0,0 +1,244 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/multiProcTest/Debug/multiProcTest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/multiProcTest/Debug/../parent.cpp
+fn=A::A()
+8 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+18 4 0 0 0 0 0 2 0 0
+19 5 0 0 3 0 0 1 0 0
+20 3 1 1 1 0 0 1 0 0
+21 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+24 3 0 0 0 0 0 2 0 0
+25 5 0 0 3 0 0 1 0 0
+26 2 0 0 2 0 0 0 0 0
+fn=A::c()
+9 4 0 0 0 0 0 2 0 0
+10 3 0 0 0 0 0 1 0 0
+11 3 0 0 0 0 0 1 0 0
+12 4 0 0 3 0 0 0 0 0
+13 2 0 0 2 0 0 0 0 0
+fn=main
+31 3 0 0 0 0 0 1 0 0
+32 5 1 1 0 0 0 1 0 0
+33 3 0 0 0 0 0 1 0 0
+34 4 0 0 0 0 0 1 0 0
+40 1 0 0 0 0 0 0 0 0
+41 2 0 0 2 0 0 0 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 723 79 74 303 53 10 187 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 11 8 14 0 0
+fn=_IO_list_lock
+0 12 2 2 6 1 1 1 0 0
+fn=_IO_list_unlock
+0 11 1 1 4 0 0 2 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 2 2 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 0 0 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 14 14 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 511 6 6 185 34 2 49 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525566 10 10 81654 1223 1065 27278 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5288 2 2 1419 15 0 818 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183718 36 36 47179 2861 2100 14356 753 490
+fn=_dl_runtime_resolve
+0 147 2 2 63 0 0 56 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68308 7 7 23580 165 102 5922 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 327134 13 13 104586 1864 506 46308 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=fork
+0 45 6 6 11 1 1 9 0 0
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 723 2 2 66 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 3 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 123 3 3 7 3 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 111123 2 2 32706 73 22 0 0 0
+fn=strlen
+0 800 2 2 103 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1275078 708 702 302765 6655 4105 100816 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5779.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5779.txt
new file mode 100644
index 0000000000..1c726b97b1
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testExec/template_cachegrind_5779.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: ../cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 303 2 2 104 22 22 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 398 13 13 109 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1135 63 63 291 32 19 129 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 8 8 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 870 6 6 144 0 0 120 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 52 3 3 3 1 0 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5185 3 3 826 0 0 10 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273789 700 694 302373 6647 4095 100680 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsCPP/template_cachegrind_4644.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsCPP/template_cachegrind_4644.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsCPP/template_cachegrind_4644.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsH/template_cachegrind_4699.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsH/template_cachegrind_4699.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileLabelsH/template_cachegrind_4699.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileNames/template_cachegrind_4534.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileNames/template_cachegrind_4534.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFileNames/template_cachegrind_4534.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFunctionLabel/template_cachegrind_4754.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFunctionLabel/template_cachegrind_4754.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testFunctionLabel/template_cachegrind_4754.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testI1Cache/template_cachegrind_5245.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testI1Cache/template_cachegrind_5245.txt
new file mode 100644
index 0000000000..15a8a7922f
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testI1Cache/template_cachegrind_5245.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 16384 B, 16 B, direct-mapped
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 2 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 1 0 0 0 0 2 0 0
+28 5 1 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 1 0 0 0 0 2 0 0
+34 5 1 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 1 0 0 0 0 2 0 0
+19 3 1 0 0 0 0 1 0 0
+20 3 1 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 1 0 0 0 0 3 0 0
+41 9 1 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 1 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 2 1 0 0 0 3 0 0
+49 3 1 0 0 0 0 1 0 0
+50 3 1 0 0 0 0 1 0 0
+51 4 1 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 2 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 18 4 17 2 0 17 0 0
+fn=???
+0 718 202 74 300 55 11 185 12 8
+fn=_Exit
+0 8 3 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 9 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 15 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 11 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 19 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 6 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 8 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 2 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 3 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 61 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 26 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 2 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 26 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 3 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 6 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 25 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 10 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 10 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 39 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 7 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 56 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 17 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 2 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 19 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 11 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 41 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 113 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 48 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 12 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 54 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 5 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 91 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 154 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 128 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 114 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 220 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 36 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 94 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 4 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 3 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 5 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 8 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 174 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 7 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 7 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 20 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 53 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 11 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 45 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 1 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 4 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 2 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 4 1 6 0 0 0 0 0
+fn=_init
+0 136 30 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 3 1 16 0 0 13 0 0
+fn=access
+0 11 3 1 1 0 0 1 0 0
+fn=brk
+0 11 3 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 9 3 416 0 0 585 1 0
+fn=call_init
+0 307 21 5 105 17 0 60 0 0
+fn=calloc
+0 126 18 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 22 7 23556 162 99 5915 0 0
+fn=close
+0 30 2 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 224 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 52 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 9 3 7 0 0 9 0 0
+fn=exit
+0 76 13 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 9 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 42 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 16 4 26 0 0 45 1 1
+fn=index
+0 687 8 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 22 8 4 0 0 10 3 3
+fn=init_tls
+0 86 13 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 20 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 5 1 8 0 0 16 0 0
+fn=malloc
+0 114 6 0 0 0 0 0 0 0
+fn=map_doit
+0 15 4 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 13 4 465 24 24 144 0 0
+fn=memcpy
+0 862 26 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 26 6 384 2 1 305 11 11
+fn=memset
+0 1042 33 3 7 0 0 515 67 67
+fn=mmap
+0 108 4 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 1 0 1 0 0 0 0 0
+fn=open
+0 305 13 1 31 0 0 25 0 0
+fn=open_path
+0 2236 46 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 130 11 604 7 7 325 4 4
+fn=openaux
+0 231 38 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 24 9 74 4 4 16 3 3
+fn=read
+0 25 5 1 5 0 0 0 0 0
+fn=rindex
+0 105 9 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 1 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 1 0 2 0 0 0 0 0
+fn=sbrk
+0 17 5 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 3 2 32622 70 20 0 0 0
+fn=strlen
+0 776 54 2 99 2 2 0 0 0
+fn=strsep
+0 5157 8 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 3 1 4 0 0 2 0 0
+summary: 1273787 3095 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testL2Cache/template_cachegrind_5355.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testL2Cache/template_cachegrind_5355.txt
new file mode 100644
index 0000000000..3a320448b9
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testL2Cache/template_cachegrind_5355.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 16384 B, 16 B, direct-mapped
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 2 17 0 0
+fn=???
+0 718 79 79 300 55 52 185 12 12
+fn=_Exit
+0 8 1 1 1 1 1 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 12 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 1 5 2 2
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 3 10 1 1
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 4 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 2 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 2 43 3 3
+fn=_dl_fixup
+0 437 6 6 158 34 30 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 3 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1217 27255 2 2
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 3 191 3 3
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 11 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2775 14356 753 744
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 5 24 0 0
+fn=_dl_start
+0 397 17 17 48 14 14 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 16 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 1 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 4 18 5 5
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 1
+fn=call_init
+0 307 5 5 105 17 17 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 159 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 31 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 1624 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 2 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 2 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 2 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 68 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 700 302365 6648 6300 100676 1095 1085
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testMethodLabel/template_cachegrind_4809.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testMethodLabel/template_cachegrind_4809.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testMethodLabel/template_cachegrind_4809.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNestedMethodLabel/template_cachegrind_4864.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNestedMethodLabel/template_cachegrind_4864.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNestedMethodLabel/template_cachegrind_4864.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNoExec/template_cachegrind_5670.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNoExec/template_cachegrind_5670.txt
new file mode 100644
index 0000000000..2c6ddb24af
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNoExec/template_cachegrind_5670.txt
@@ -0,0 +1,244 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/multiProcTest/Debug/multiProcTest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/multiProcTest/Debug/../parent.cpp
+fn=A::A()
+8 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+18 4 0 0 0 0 0 2 0 0
+19 5 0 0 3 0 0 1 0 0
+20 3 1 1 1 0 0 1 0 0
+21 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+24 3 0 0 0 0 0 2 0 0
+25 5 0 0 3 0 0 1 0 0
+26 2 0 0 2 0 0 0 0 0
+fn=A::c()
+9 4 0 0 0 0 0 2 0 0
+10 3 0 0 0 0 0 1 0 0
+11 3 0 0 0 0 0 1 0 0
+12 4 0 0 3 0 0 0 0 0
+13 2 0 0 2 0 0 0 0 0
+fn=main
+31 3 0 0 0 0 0 1 0 0
+32 5 1 1 0 0 0 1 0 0
+33 3 0 0 0 0 0 1 0 0
+34 4 0 0 0 0 0 1 0 0
+40 1 0 0 0 0 0 0 0 0
+41 2 0 0 2 0 0 0 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 723 79 74 303 53 10 187 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 11 8 14 0 0
+fn=_IO_list_lock
+0 12 2 2 6 1 1 1 0 0
+fn=_IO_list_unlock
+0 11 1 1 4 0 0 2 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 2 2 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 0 0 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 14 14 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 511 6 6 185 34 2 49 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525566 10 10 81654 1223 1065 27278 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5288 2 2 1419 15 0 818 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183718 36 36 47179 2861 2100 14356 753 490
+fn=_dl_runtime_resolve
+0 147 2 2 63 0 0 56 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68308 7 7 23580 165 102 5922 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 327134 13 13 104586 1864 506 46308 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=fork
+0 45 6 6 11 1 1 9 0 0
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 723 2 2 66 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 3 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 123 3 3 7 3 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 111123 2 2 32706 73 22 0 0 0
+fn=strlen
+0 800 2 2 103 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1275078 708 702 302765 6655 4105 100816 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumFunctions/template_cachegrind_4589.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumFunctions/template_cachegrind_4589.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumFunctions/template_cachegrind_4589.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumPIDs/template_cachegrind_4478.txt b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumPIDs/template_cachegrind_4478.txt
new file mode 100644
index 0000000000..6ebabc9785
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind.tests/valgrindFiles/testNumPIDs/template_cachegrind_4478.txt
@@ -0,0 +1,250 @@
+desc: I1 cache: 32768 B, 64 B, 8-way associative
+desc: D1 cache: 32768 B, 64 B, 8-way associative
+desc: L2 cache: 6291456 B, 64 B, 24-way associative
+cmd: XXXXXXXXXXXX/cpptest/Debug/cpptest
+events: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.cpp
+fn=A::A()
+17 7 1 1 3 0 0 3 0 0
+fn=A::B::B()
+26 7 1 1 3 0 0 3 0 0
+fn=A::B::d()
+27 4 0 0 0 0 0 2 0 0
+28 5 0 0 3 0 0 1 0 0
+29 3 0 0 1 0 0 1 0 0
+30 2 0 0 2 0 0 0 0 0
+fn=A::B::e()
+33 3 0 0 0 0 0 2 0 0
+34 5 0 0 3 0 0 1 0 0
+35 2 0 0 2 0 0 0 0 0
+fn=A::c()
+18 4 0 0 0 0 0 2 0 0
+19 3 0 0 0 0 0 1 0 0
+20 3 0 0 0 0 0 1 0 0
+21 4 0 0 3 0 0 0 0 0
+22 2 0 0 2 0 0 0 0 0
+fn=Foo::bar(int)
+40 5 0 0 0 0 0 3 0 0
+41 9 0 0 5 0 0 1 0 0
+42 2 0 0 2 0 0 0 0 0
+fn=Foo::baz(int, int)
+44 5 0 0 0 0 0 4 0 0
+45 3 0 0 2 0 0 0 0 0
+46 2 0 0 2 0 0 0 0 0
+fn=main
+48 5 1 1 0 0 0 3 0 0
+49 3 0 0 0 0 0 1 0 0
+50 3 0 0 0 0 0 1 0 0
+51 4 0 0 0 0 0 1 0 0
+52 3 0 0 0 0 0 1 0 0
+53 1 0 0 0 0 0 0 0 0
+54 2 0 0 2 0 0 0 0 0
+fl=XXXXXXXXXXXX/cpptest/Debug/../cpptest.h
+fn=Foo::Foo()
+16 7 1 1 3 0 0 3 0 0
+fl=???
+fn=(below main)
+0 57 4 4 17 2 0 17 0 0
+fn=???
+0 718 79 74 300 55 11 185 12 8
+fn=_Exit
+0 8 1 1 1 1 0 0 0 0
+fn=_IO_cleanup
+0 53 3 3 15 1 1 9 0 0
+fn=_IO_flush_all_lockp
+0 82 7 7 22 12 9 14 0 0
+fn=__cxa_atexit
+0 75 3 3 15 0 0 24 1 1
+fn=__cxa_finalize
+0 279 6 6 72 1 1 28 0 0
+fn=__init_misc
+0 24 2 2 7 1 0 5 2 1
+fn=__libc_csu_init
+0 25 3 3 7 0 0 7 0 0
+fn=__libc_fini
+0 6 0 0 3 0 0 1 0 0
+fn=__libc_global_ctors
+0 13 2 2 4 1 1 2 0 0
+fn=__libc_memalign
+0 1076 4 4 210 0 0 206 0 0
+fn=__new_exitfn
+0 111 6 6 30 5 5 10 0 0
+fn=__sigjmp_save
+0 9 0 0 2 0 0 2 0 0
+fn=__sigsetjmp
+0 246 5 5 64 0 0 104 1 1
+fn=__unregister_atfork
+0 32 2 2 12 1 1 4 0 0
+fn=_dl_add_to_slotinfo
+0 40 4 4 16 4 0 10 1 0
+fn=_dl_allocate_tls_init
+0 133 8 8 44 4 0 18 1 1
+fn=_dl_allocate_tls_storage
+0 267 3 3 7 0 0 229 28 28
+fn=_dl_cache_libcmp
+0 3198 5 5 431 26 26 0 0 0
+fn=_dl_catch_error
+0 432 3 3 144 0 0 204 2 2
+fn=_dl_check_all_versions
+0 124 3 3 19 0 0 11 0 0
+fn=_dl_check_map_versions
+0 3224 15 15 1055 15 15 403 28 28
+fn=_dl_debug_initialize
+0 76 3 3 24 2 1 4 0 0
+fn=_dl_debug_state
+0 2 0 0 2 0 0 0 0 0
+fn=_dl_determine_tlsoffset
+0 101 6 6 20 1 1 11 0 0
+fn=_dl_discover_osversion
+0 87 4 4 12 1 1 4 1 1
+fn=_dl_fini
+0 409 12 12 134 2 0 43 3 0
+fn=_dl_fixup
+0 437 6 6 158 34 1 42 0 0
+fn=_dl_important_hwcaps
+0 257 16 16 49 0 0 38 3 3
+fn=_dl_init
+0 104 5 5 25 3 0 15 0 0
+fn=_dl_init_paths
+0 1752 17 17 249 1 1 42 3 3
+fn=_dl_initial_error_catch_tsd
+0 26 1 1 13 0 0 0 0 0
+fn=_dl_load_cache_lookup
+0 1051 13 13 218 30 30 66 0 0
+fn=_dl_lookup_symbol_x
+0 525437 10 10 81620 1224 1065 27255 2 0
+fn=_dl_map_object
+0 2229 23 23 566 1 1 331 9 9
+fn=_dl_map_object_deps
+0 2706 28 28 517 3 2 191 3 2
+fn=_dl_map_object_from_fd
+0 4446 46 46 936 47 47 459 55 55
+fn=_dl_name_match_p
+0 5158 2 2 1384 15 0 798 2 2
+fn=_dl_new_object
+0 1241 13 13 237 8 8 231 36 36
+fn=_dl_next_ld_env_entry
+0 296 2 2 102 23 23 2 0 0
+fn=_dl_next_tls_modid
+0 16 1 1 6 0 0 2 0 0
+fn=_dl_protect_relro
+0 80 2 2 24 0 0 8 0 0
+fn=_dl_receive_error
+0 28 2 2 10 0 0 12 0 0
+fn=_dl_relocate_object
+0 183682 36 36 47167 2860 2097 14356 753 490
+fn=_dl_runtime_resolve
+0 126 2 2 54 0 0 48 0 0
+fn=_dl_setup_hash
+0 203 2 2 49 10 10 42 1 1
+fn=_dl_sort_fini
+0 666 6 6 172 5 0 24 0 0
+fn=_dl_start
+0 397 17 16 48 14 12 40 12 12
+fn=_dl_sysdep_read_whole_file
+0 42 3 3 6 0 0 9 0 0
+fn=_dl_sysdep_start
+0 395 13 13 108 16 15 27 2 2
+fn=_dl_sysdep_start_cleanup
+0 1 0 0 1 0 0 0 0 0
+fn=_dl_unload_cache
+0 10 0 0 3 0 0 2 0 0
+fn=_dl_vdso_vsym
+0 16 1 1 6 1 0 0 0 0
+fn=_fxstat
+0 60 1 1 6 0 0 0 0 0
+fn=_init
+0 136 9 9 22 4 1 18 5 4
+fn=_setjmp
+0 2 1 1 0 0 0 0 0 0
+fn=_xstat
+0 199 1 1 16 0 0 13 0 0
+fn=access
+0 11 1 1 1 0 0 1 0 0
+fn=brk
+0 11 1 1 1 0 0 1 1 1
+fn=bsearch
+0 3388 3 3 416 0 0 585 1 0
+fn=call_init
+0 307 5 5 105 17 0 60 0 0
+fn=calloc
+0 126 2 2 0 0 0 0 0 0
+fn=check_match.8652
+0 68242 7 7 23556 162 99 5915 0 0
+fn=close
+0 30 0 0 6 0 0 0 0 0
+fn=dl_main
+0 1126 63 63 289 32 19 128 14 14
+fn=do_lookup_x
+0 326670 13 13 104430 1862 504 46233 1 0
+fn=do_preload
+0 28 3 3 7 0 0 9 0 0
+fn=exit
+0 76 4 4 11 1 1 10 0 0
+fn=expand_dynamic_string_token
+0 32 3 3 6 0 0 9 0 0
+fn=fillin_rpath
+0 513 16 16 94 0 0 85 4 4
+fn=handle_intel
+0 195 4 4 26 0 0 45 1 1
+fn=index
+0 687 2 2 62 7 7 0 0 0
+fn=init_cacheinfo
+0 106 8 8 4 0 0 10 3 3
+fn=init_tls
+0 86 4 4 22 2 1 14 0 0
+fn=intel_02_known_compare
+0 1218 1 1 528 20 20 0 0 0
+fn=intel_check_word
+0 921 7 7 95 0 0 146 1 1
+fn=local_strdup
+0 68 1 1 8 0 0 16 0 0
+fn=malloc
+0 114 0 0 0 0 0 0 0 0
+fn=map_doit
+0 15 2 2 6 0 0 4 0 0
+fn=match_symbol
+0 1251 4 4 465 24 24 144 0 0
+fn=memcpy
+0 862 6 6 143 0 0 119 15 15
+fn=mempcpy
+0 2443 6 6 384 2 1 305 11 11
+fn=memset
+0 1042 3 3 7 0 0 515 67 67
+fn=mmap
+0 108 2 2 18 0 0 0 0 0
+fn=mprotect
+0 45 1 1 9 0 0 0 0 0
+fn=munmap
+0 5 0 0 1 0 0 0 0 0
+fn=open
+0 305 1 1 31 0 0 25 0 0
+fn=open_path
+0 2236 14 14 802 0 0 239 1 1
+fn=open_verify
+0 1879 11 11 604 7 7 325 4 4
+fn=openaux
+0 231 2 2 88 0 0 44 1 1
+fn=process_envvars
+0 230 9 9 74 4 4 16 3 3
+fn=read
+0 25 1 1 5 0 0 0 0 0
+fn=rindex
+0 105 3 3 6 2 1 0 0 0
+fn=rtld_lock_default_lock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=rtld_lock_default_unlock_recursive
+0 2 0 0 2 0 0 0 0 0
+fn=sbrk
+0 17 2 2 5 0 0 2 1 1
+fn=strcmp
+0 110867 2 2 32622 70 20 0 0 0
+fn=strlen
+0 776 2 2 99 2 2 0 0 0
+fn=strsep
+0 5157 3 3 821 0 0 8 0 0
+fn=uname
+0 5 1 1 1 0 0 0 0 0
+fn=version_check_doit
+0 10 1 1 4 0 0 2 0 0
+summary: 1273787 700 694 302365 6648 4096 100676 1095 817
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.classpath b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.project b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.project
new file mode 100644
index 0000000000..3f300e83dc
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.valgrind.cachegrind</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.settings/org.eclipse.jdt.core.prefs b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..19e83eb4ce
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Mon Jan 12 11:11:35 EST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/ChangeLog b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/ChangeLog
new file mode 100644
index 0000000000..ead127f0fb
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/ChangeLog
@@ -0,0 +1,140 @@
+2010-08-06 Elliott Baron <ebaron@fedoraproject.org>
+
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java (initializeView): Check that outputs are not null.
+
+2010-08-03 Elliott Baron <ebaron@fedoraproject.org>
+
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CollapseAction.java: New file.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/ExpandAction.java: New file.
+ * META-INF/MANIFEST.MF: Remove internal dependencies.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java (parseOutput): API change.
+ (getCommandArray): Likewise.
+ (initializeView): Likewise.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindParser.java (parse): Superclass moved to static utils class.
+ (parseData): Likewise.
+ (parseDescription): Likewise.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindPlugin.java: Remove internals use.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindToolPage.java (setValgrindVersion): API change.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindViewPart.java: Remove internals use.
+
+2010-07-26 Elliott Baron <ebaron@fedoraproject.org>
+
+ * META-INF/MANIFEST.MF: Bump version to 0.7.0.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java: Remove dependence on
+ internal Valgrind launch delegate.
+
+2009-08-11 Elliott Baron <ebaron@redhat.com>
+
+ * src/org/eclipse/linuxtools/valgrind/cachegrind: Removed.
+ * META-INF/MANIFEST.MF: Bump version to 0.3.0.
+
+2009-08-07 Andrew Overholt <overholt@redhat.com>
+
+ Bug #285861
+
+ * plugin.properties: Change Provider to Eclipse.
+
+2009-07-30 Elliott Baron <ebaron@redhat.com>
+
+ * src/org/eclipse/linuxtools/valgrind/cachegrind: Removed.
+ * src/org/eclipse/linuxtools/valgrind/cachegrind/model: Removed.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind: New package.
+ * src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model: New package.
+ * .project: Enabled API analysis.
+ * META-INF/MANIFEST.MF: Export internal packages.
+ * plugin.xml: Update class references.
+
+2009-06-23 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindToolPage.java (getD1LineSizeSpinner): Created getter.
+ (getI1SizeSpinner): Likewise.
+ (getBranchButton): Likewise.
+ (getI1AssocSpinner): Likewise.
+ (getD1Button): Likewise.
+ (getD1AssocSpinner): Likewise.
+ (getL2Button): Likewise.
+ (getL2LineSizeSpinner): Likewise.
+ (getL2AssocSpinner): Likewise.
+ (getD1SizeSpinner): Likewise.
+ (getL2SizeSpinner): Likewise.
+ (getI1Button): Likewise.
+ (getCacheButton): Likewise.
+ (getI1LineSizeSpinner): Likewise.
+
+2009-04-30 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindParser.java: Pull up constants.
+
+2009-04-23 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindViewPart.java (.widgetSelected): Default sorting now ascending.
+
+2009-04-21 Elliott Baron <ebaron@redhat.com>
+
+ * plugin.properties: Add "(Incubation)" to Plugin name.
+
+2009-04-03 Elliott Baron <ebaron@redhat.com>
+
+ * META-INF/MANIFEST.MF: 0.2.0 version.
+
+2009-03-31 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindViewPart.java (createPartControl): Added expand/collapse actions.
+
+2009-03-17 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindLaunchDelegate.java (handleLaunch): Bounds checking on number of output files.
+ * CachegrindToolPage.java (checkL2Enablement): Change visibility to protected.
+ (checkD1Enablement): Likewise.
+ (checkI1Enablement): Likewise.
+ * CachegrindViewPart.java (getDoubleClickListener): New getter.
+
+2009-03-16 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindParser.java (parse): Explicitly close file.
+ * CachegrindLine.java (getModel): Return null.
+ * CachegrindOutput.java (getModel): Return null.
+ * ICachegrindElement.java: Added getModel to interface.
+ * CachegrindLabelProvider.java: New file.
+ * CachegrindViewPart.java (getViewer): Getter for TreeViewer.
+ (CachegrindTreeContentProvider): Extracted.
+
+2009-03-13 Andrew Overholt <overholt@redhat.com>
+
+ * build.properties: Add icons to binary build.
+
+2009-03-11 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindToolPage.java (createControl): Added vertical spacer.
+
+2009-02-25 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindLaunchDelegate.java (handleLaunch): Renamed method.
+
+2009-02-20 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindParser.java (parse): Removed Arrays.copyOf().
+ * model/CachegrindOutput.java (getEvents): Replaced Arrays.copyOfRange().
+ (getParent): Likewise.
+ (getSummary): Likewise.
+
+2009-02-12 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindCommandConstants.java: New file.
+ * CachegrindLaunchConstants.java: New file.
+ * CachegrindLaunchDelegate.java: Better output directory path handling, command line
+ arguments extracted to CachegrindCommandConstants.
+ * CachegrindToolPage.java: Launch config constants extracted to CachegrindLaunchConstants.
+
+2009-01-22 Elliott Baron <ebaron@redhat.com>
+
+ * CachegrindViewPart: Added sorting to TreeViewer, full event names
+ to tooltip, improvements to LabelProvider for C++, double-click event
+ spawing editor on file, function or line.
+ * ICachegrindElement: Extend Comparable<T> for sorting by first column.
+ * CachegrindFile: Likewise, added getName().
+ * CachegrindLine: Likewise.
+ * CachegrindOutput: Likewise.
+ * CachegrindFunction: Likewise, vastly improved handling of CModel
+ with C++ classes.
+ * META-INF/MANIFEST.MF: New dependency org.eclipse.cdt.core.model.util. \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/META-INF/MANIFEST.MF b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..41b6949e58
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.linuxtools.valgrind.cachegrind;singleton:=true
+Bundle-Version: 0.7.0.qualifier
+Bundle-Activator: org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindPlugin
+Bundle-Vendor: %Bundle-Vendor.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
+Import-Package: org.eclipse.cdt.core.dom.ast,
+ org.eclipse.cdt.core.model,
+ org.eclipse.cdt.core.model.util,
+ org.eclipse.cdt.debug.core,
+ org.eclipse.cdt.launch,
+ org.eclipse.cdt.ui,
+ org.eclipse.core.resources,
+ org.eclipse.debug.core,
+ org.eclipse.debug.ui,
+ org.eclipse.jface.text,
+ org.eclipse.linuxtools.profiling.ui,
+ org.eclipse.linuxtools.valgrind.core,
+ org.eclipse.linuxtools.valgrind.launch,
+ org.eclipse.linuxtools.valgrind.ui
+Export-Package: org.eclipse.linuxtools.internal.valgrind.cachegrind,
+ org.eclipse.linuxtools.internal.valgrind.cachegrind.model
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/about.html b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/about.html
new file mode 100644
index 0000000000..23506a4bae
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/build.properties b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/build.properties
new file mode 100644
index 0000000000..c9b4de5252
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml,\
+ about.html,\
+ icons/
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.properties b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.properties
new file mode 100644
index 0000000000..ded39d70c7
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.linuxtools.valgrind.cachegrind
+Bundle-Vendor.0 = Eclipse Linux Tools
+Bundle-Name.0 = Cachegrind Plug-in (Incubation) \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.xml b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.xml
new file mode 100644
index 0000000000..24746eb332
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.linuxtools.valgrind.launch.valgrindTools">
+ <tool
+ delegate="org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindLaunchDelegate"
+ id="org.eclipse.linuxtools.valgrind.launch.cachegrind"
+ name="cachegrind"
+ page="org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindToolPage">
+ </tool>
+ </extension>
+ <extension
+ point="org.eclipse.linuxtools.valgrind.ui.valgrindToolViews">
+ <view
+ class="org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart"
+ definitionId="org.eclipse.linuxtools.valgrind.launch.cachegrind">
+ </view>
+ </extension>
+
+</plugin>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindCommandConstants.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindCommandConstants.java
new file mode 100644
index 0000000000..3c7b5656ee
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindCommandConstants.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+public final class CachegrindCommandConstants {
+ // Valgrind program arguments
+ public static final String OPT_CACHEGRIND_OUTFILE = "--cachegrind-out-file"; //$NON-NLS-1$
+ public static final String OPT_I1 = "--I1"; //$NON-NLS-1$
+ public static final String OPT_D1 = "--D1"; //$NON-NLS-1$
+ public static final String OPT_L2 = "--L2"; //$NON-NLS-1$
+ public static final String OPT_CACHE_SIM = "--cache-sim"; //$NON-NLS-1$
+ public static final String OPT_BRANCH_SIM = "--branch-sim"; //$NON-NLS-1$
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLabelProvider.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLabelProvider.java
new file mode 100644
index 0000000000..742705db22
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLabelProvider.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import java.text.DecimalFormat;
+
+import org.eclipse.cdt.core.model.util.CElementBaseLabels;
+import org.eclipse.cdt.ui.CElementLabelProvider;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindLine;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.ICachegrindElement;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+
+public class CachegrindLabelProvider extends CellLabelProvider {
+
+ protected CElementLabelProvider cLabelProvider = new CElementLabelProvider(CElementLabelProvider.SHOW_SMALL_ICONS | CElementLabelProvider.SHOW_PARAMETERS | CElementLabelProvider.SHOW_RETURN_TYPE) {
+ @Override
+ public int getTextFlags() {
+ int flags = super.getTextFlags();
+ return flags |= CElementBaseLabels.M_FULLY_QUALIFIED;
+ }
+ };
+
+ protected DecimalFormat df = new DecimalFormat("#,##0"); //$NON-NLS-1$
+
+ protected static final Image FUNC_IMG = CachegrindPlugin.imageDescriptorFromPlugin(CachegrindPlugin.PLUGIN_ID, "icons/function_obj.gif").createImage(); //$NON-NLS-1$
+
+ @Override
+ public void update(ViewerCell cell) {
+ ICachegrindElement element = ((ICachegrindElement) cell.getElement());
+ int index = cell.getColumnIndex();
+
+ if (index == 0) {
+ if (element instanceof CachegrindFile) {
+ // Try to use the CElementLabelProvider
+ IAdaptable model = ((CachegrindFile) element).getModel();
+ if (model != null) {
+ cell.setText(cLabelProvider.getText(model));
+ cell.setImage(cLabelProvider.getImage(model));
+ }
+ else { // Fall back
+ String name = ((CachegrindFile) element).getName();
+ cell.setText(name);
+ cell.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE));
+ }
+ }
+ else if (element instanceof CachegrindFunction) {
+ // Try to use the CElementLabelProvider
+ IAdaptable model = ((CachegrindFunction) element).getModel();
+ if (model != null) {
+ cell.setText(cLabelProvider.getText(model));
+ cell.setImage(cLabelProvider.getImage(model));
+ }
+ else { // Fall back
+ String name = ((CachegrindFunction) element).getName();
+ cell.setText(name);
+ cell.setImage(FUNC_IMG);
+ }
+ }
+ else if (element instanceof CachegrindLine) {
+ cell.setText(NLS.bind(Messages.getString("CachegrindViewPart.line"), ((CachegrindLine) element).getLine())); //$NON-NLS-1$
+ cell.setImage(DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_INSTRUCTION_POINTER_TOP));
+ }
+ else if (element instanceof CachegrindOutput) {
+ cell.setText(NLS.bind(Messages.getString("CachegrindViewPart.Total_PID"), ((CachegrindOutput) element).getPid())); //$NON-NLS-1$
+ cell.setImage(DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_REGISTER));
+ }
+ }
+ else if (element instanceof CachegrindFunction) {
+ cell.setText(df.format(((CachegrindFunction) element).getTotals()[index - 1]));
+ }
+ else if (element instanceof CachegrindLine) {
+ cell.setText(df.format(((CachegrindLine) element).getValues()[index - 1]));
+ }
+ else if (element instanceof CachegrindOutput) {
+ cell.setText(df.format(((CachegrindOutput) element).getSummary()[index - 1]));
+ }
+ }
+
+ public CElementLabelProvider getCLabelProvider() {
+ return cLabelProvider;
+ }
+} \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchConstants.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchConstants.java
new file mode 100644
index 0000000000..d7062754b8
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchConstants.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+public final class CachegrindLaunchConstants {
+ // LaunchConfiguration attributes
+ public static final String ATTR_CACHEGRIND_CACHE_SIM = CachegrindPlugin.PLUGIN_ID + ".CACHE_SIM"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_BRANCH_SIM = CachegrindPlugin.PLUGIN_ID + ".BRANCH_SIM"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_I1 = CachegrindPlugin.PLUGIN_ID + ".I1"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_I1_SIZE = CachegrindPlugin.PLUGIN_ID + ".I1_SIZE"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_I1_ASSOC = CachegrindPlugin.PLUGIN_ID + ".I1_ASSOC"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_I1_LSIZE = CachegrindPlugin.PLUGIN_ID + ".I1_LSIZE"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_D1 = CachegrindPlugin.PLUGIN_ID + ".D1"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_D1_SIZE = CachegrindPlugin.PLUGIN_ID + ".D1_SIZE"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_D1_ASSOC = CachegrindPlugin.PLUGIN_ID + ".D1_ASSOC"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_D1_LSIZE = CachegrindPlugin.PLUGIN_ID + ".D1_LSIZE"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_L2 = CachegrindPlugin.PLUGIN_ID + ".L2"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_L2_SIZE = CachegrindPlugin.PLUGIN_ID + ".L2_SIZE"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_L2_ASSOC = CachegrindPlugin.PLUGIN_ID + ".L2_ASSOC"; //$NON-NLS-1$
+ public static final String ATTR_CACHEGRIND_L2_LSIZE = CachegrindPlugin.PLUGIN_ID + ".L2_LSIZE"; //$NON-NLS-1$
+
+ public static final boolean DEFAULT_CACHEGRIND_CACHE_SIM = true;
+ public static final boolean DEFAULT_CACHEGRIND_BRANCH_SIM = false;
+ public static final boolean DEFAULT_CACHEGRIND_I1 = false;
+ public static final int DEFAULT_CACHEGRIND_I1_SIZE = 0;
+ public static final int DEFAULT_CACHEGRIND_I1_ASSOC = 0;
+ public static final int DEFAULT_CACHEGRIND_I1_LSIZE = 0;
+ public static final boolean DEFAULT_CACHEGRIND_D1 = false;
+ public static final int DEFAULT_CACHEGRIND_D1_SIZE = 0;
+ public static final int DEFAULT_CACHEGRIND_D1_ASSOC = 0;
+ public static final int DEFAULT_CACHEGRIND_D1_LSIZE = 0;
+ public static final boolean DEFAULT_CACHEGRIND_L2 = false;
+ public static final int DEFAULT_CACHEGRIND_L2_SIZE = 0;
+ public static final int DEFAULT_CACHEGRIND_L2_ASSOC = 0;
+ public static final int DEFAULT_CACHEGRIND_L2_LSIZE = 0;
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java
new file mode 100644
index 0000000000..3f882e1ba1
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindLaunchDelegate.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.valgrind.launch.IValgrindLaunchDelegate;
+import org.eclipse.linuxtools.valgrind.ui.IValgrindToolView;
+import org.osgi.framework.Version;
+
+public class CachegrindLaunchDelegate implements IValgrindLaunchDelegate {
+ protected static final String OUT_PREFIX = "cachegrind_"; //$NON-NLS-1$
+ protected static final String OUT_FILE = OUT_PREFIX + "%p.txt"; //$NON-NLS-1$
+ protected static final FileFilter CACHEGRIND_FILTER = new FileFilter() {
+ public boolean accept(File pathname) {
+ return pathname.getName().startsWith(OUT_PREFIX);
+ }
+ };
+
+ private static final String COMMA = ","; //$NON-NLS-1$
+ private static final String EQUALS = "="; //$NON-NLS-1$
+ private static final String NO = "no"; //$NON-NLS-1$
+ private static final String YES = "yes"; //$NON-NLS-1$
+ private CachegrindOutput[] outputs;
+
+ public void handleLaunch(ILaunchConfiguration config, ILaunch launch, IPath logDir, IProgressMonitor monitor) throws CoreException {
+ try {
+ monitor.beginTask(Messages.getString("CachegrindLaunchDelegate.Parsing_Cachegrind_Output"), 3); //$NON-NLS-1$
+
+ File[] cachegrindOutputs = logDir.toFile().listFiles(CACHEGRIND_FILTER);
+
+ if (cachegrindOutputs.length > 0) {
+ parseOutput(cachegrindOutputs, monitor);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ abort(Messages.getString("CachegrindLaunchDelegate.Error_parsing_output"), e, ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR); //$NON-NLS-1$
+ } finally {
+ monitor.done();
+ }
+ }
+
+ protected void parseOutput(File[] cachegrindOutputs, IProgressMonitor monitor) throws IOException {
+ outputs = new CachegrindOutput[cachegrindOutputs.length];
+
+ for (int i = 0; i < cachegrindOutputs.length; i++) {
+ outputs[i] = new CachegrindOutput();
+ CachegrindParser.getParser().parse(outputs[i], cachegrindOutputs[i]);
+ }
+ monitor.worked(2);
+ }
+
+ public String[] getCommandArray(ILaunchConfiguration config, Version ver, IPath logDir) throws CoreException {
+ ArrayList<String> opts = new ArrayList<String>();
+
+ opts.add(CachegrindCommandConstants.OPT_CACHEGRIND_OUTFILE + EQUALS + logDir.append(OUT_FILE).toOSString());
+ opts.add(CachegrindCommandConstants.OPT_CACHE_SIM + EQUALS + (config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_CACHE_SIM, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_CACHE_SIM) ? YES : NO));
+ opts.add(CachegrindCommandConstants.OPT_BRANCH_SIM + EQUALS + (config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_BRANCH_SIM, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_BRANCH_SIM) ? YES : NO));
+ if (config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1)) {
+ opts.add(CachegrindCommandConstants.OPT_I1 + EQUALS + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_SIZE)
+ + COMMA + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_ASSOC)
+ + COMMA + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_LSIZE));
+ }
+ if (config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1)) {
+ opts.add(CachegrindCommandConstants.OPT_D1 + EQUALS + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_SIZE)
+ + COMMA + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_ASSOC)
+ + COMMA + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_LSIZE));
+ }
+ if (config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2)) {
+ opts.add(CachegrindCommandConstants.OPT_L2 + EQUALS + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_SIZE)
+ + COMMA + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_ASSOC)
+ + COMMA + config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_LSIZE));
+ }
+ return opts.toArray(new String[opts.size()]);
+ }
+
+ public void initializeView(IValgrindToolView view, String contentDescription, IProgressMonitor monitor)
+ throws CoreException {
+ if (outputs != null && view instanceof CachegrindViewPart) {
+ ((CachegrindViewPart) view).setOutputs(outputs);
+ }
+ monitor.worked(1);
+ }
+
+ /**
+ * Throws a core exception with an error status object built from the given
+ * message, lower level exception, and error code.
+ *
+ * @param message
+ * the status message
+ * @param exception
+ * lower level exception associated with the error, or
+ * <code>null</code> if none
+ * @param code
+ * error code
+ */
+ private void abort(String message, Throwable exception, int code) throws CoreException {
+ IStatus status;
+ if (exception != null) {
+ MultiStatus multiStatus = new MultiStatus(CachegrindPlugin.PLUGIN_ID, code, message, exception);
+ multiStatus.add(new Status(IStatus.ERROR, CachegrindPlugin.PLUGIN_ID, code, exception.getLocalizedMessage(), exception));
+ status= multiStatus;
+ } else {
+ status= new Status(IStatus.ERROR, CachegrindPlugin.PLUGIN_ID, code, message, null);
+ }
+ throw new CoreException(status);
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindParser.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindParser.java
new file mode 100644
index 0000000000..cf9b3abcec
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindParser.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindDescription;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindLine;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.valgrind.core.ValgrindParserUtils;
+
+public class CachegrindParser {
+ private static final String COLON = ":"; //$NON-NLS-1$
+ private static final String SPACE = " "; //$NON-NLS-1$
+ private static final String EQUALS = "="; //$NON-NLS-1$
+
+ private static final String CMD = "cmd"; //$NON-NLS-1$
+ private static final String DESC = "desc"; //$NON-NLS-1$
+ private static final String FL = "fl"; //$NON-NLS-1$
+ private static final String FN = "fn"; //$NON-NLS-1$
+ private static final String EVENTS = "events"; //$NON-NLS-1$
+ private static final String SUMMARY = "summary"; //$NON-NLS-1$
+
+ private static final String COMMA = ","; //$NON-NLS-1$
+
+ protected static CachegrindParser instance;
+
+ protected CachegrindParser() {
+ }
+
+ public static CachegrindParser getParser() {
+ if (instance == null) {
+ instance = new CachegrindParser();
+ }
+ return instance;
+ }
+
+ public void parse(CachegrindOutput output, File cgOut) throws IOException {
+ BufferedReader br = null;
+ try {
+ br = new BufferedReader(new FileReader(cgOut));
+ output.setPid(ValgrindParserUtils.parsePID(cgOut.getName(), CachegrindLaunchDelegate.OUT_PREFIX));
+
+ String line;
+ CachegrindFile curFl = null;
+ CachegrindFunction curFn = null;
+ while ((line = br.readLine()) != null) {
+ if (line.startsWith(EVENTS + COLON)) {
+ output.setEvents(ValgrindParserUtils.parseStrValue(line, COLON + SPACE).split(SPACE));
+ }
+ else if (line.startsWith(CMD + COLON)) {
+ output.setCommand(ValgrindParserUtils.parseStrValue(line, COLON + SPACE));
+ }
+ else if (line.startsWith(DESC + COLON)) {
+ CachegrindDescription description = parseDescription(line);
+ output.addDescription(description);
+ }
+ else if (line.startsWith(FL + EQUALS)) {
+ curFl = new CachegrindFile(output, ValgrindParserUtils.parseStrValue(line, EQUALS));
+ output.addFile(curFl);
+ }
+ else if (line.startsWith(FN + EQUALS)) {
+ if (curFl != null) {
+ curFn = new CachegrindFunction(curFl, ValgrindParserUtils.parseStrValue(line, EQUALS));
+ curFl.addFunction(curFn);
+ }
+ else {
+ ValgrindParserUtils.fail(line);
+ }
+ }
+ else if (line.startsWith(SUMMARY + COLON)) {
+ long[] summary = parseData(line, ValgrindParserUtils.parseStrValue(line, COLON + SPACE).split(SPACE));
+ output.setSummary(summary);
+ }
+ else { // line data
+ String[] tokens = line.split(SPACE, 2);
+ if (ValgrindParserUtils.isNumber(tokens[0])) {
+ int lineNo = Integer.parseInt(tokens[0]);
+
+ long[] data = parseData(line, tokens[1].split(SPACE));
+ if (curFn != null) {
+ curFn.addLine(new CachegrindLine(curFn, lineNo, data));
+ }
+ else {
+ ValgrindParserUtils.fail(line);
+ }
+ }
+ else {
+ ValgrindParserUtils.fail(line);
+ }
+ }
+ }
+ } finally {
+ if (br != null) {
+ br.close();
+ }
+ }
+ }
+
+ private long[] parseData(String line, String[] data) throws IOException {
+ long[] result = new long[data.length];
+ for (int i = 0; i < data.length; i++) {
+ if (!ValgrindParserUtils.isNumber(data[i])) {
+ ValgrindParserUtils.fail(line);
+ }
+ result[i] = Long.parseLong(data[i]);
+ }
+ return result;
+ }
+
+ private CachegrindDescription parseDescription(String line) throws IOException {
+ CachegrindDescription desc = null;
+ String[] tokens = line.split(COLON + "\\s+"); //$NON-NLS-1$
+ if (tokens.length == 3) {
+ String name = tokens[1];
+ tokens = tokens[2].split(COMMA + SPACE);
+ if (tokens.length == 3) {
+ desc = new CachegrindDescription(name, tokens[0], tokens[1], tokens[2]);
+ }
+ else {
+ ValgrindParserUtils.fail(line);
+ }
+ }
+ else {
+ ValgrindParserUtils.fail(line);
+ }
+ return desc;
+ }
+} \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindPlugin.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindPlugin.java
new file mode 100644
index 0000000000..a1e1e75d50
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindPlugin.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class CachegrindPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.linuxtools.valgrind.cachegrind"; //$NON-NLS-1$
+
+ // The shared instance
+ private static CachegrindPlugin plugin;
+
+ public static final String TOOL_ID = "org.eclipse.linuxtools.valgrind.launch.cachegrind";
+
+ /**
+ * The constructor
+ */
+ public CachegrindPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static CachegrindPlugin getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindToolPage.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindToolPage.java
new file mode 100644
index 0000000000..7c2719ea45
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindToolPage.java
@@ -0,0 +1,384 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
+import org.eclipse.linuxtools.valgrind.launch.IValgrindToolPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Spinner;
+import org.osgi.framework.Version;
+
+public class CachegrindToolPage extends AbstractLaunchConfigurationTab
+ implements IValgrindToolPage {
+ public static final String CACHEGRIND = "cachegrind"; //$NON-NLS-1$
+ public static final String PLUGIN_ID = CachegrindPlugin.PLUGIN_ID;
+
+ // Cachegrind controls
+ protected Button cacheButton;
+ protected Button branchButton;
+ protected Composite i1Top;
+ protected Spinner i1SizeSpinner;
+ protected Spinner i1AssocSpinner;
+ protected Spinner i1LineSizeSpinner;
+ protected Button i1Button;
+ protected Composite d1Top;
+ protected Spinner d1SizeSpinner;
+ protected Spinner d1AssocSpinner;
+ protected Spinner d1LineSizeSpinner;
+ protected Button d1Button;
+ protected Composite l2Top;
+ protected Spinner l2SizeSpinner;
+ protected Spinner l2AssocSpinner;
+ protected Spinner l2LineSizeSpinner;
+ protected Button l2Button;
+
+ protected boolean isInitializing = false;
+ protected SelectionListener selectListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ updateLaunchConfigurationDialog();
+ }
+ };
+ protected ModifyListener modifyListener = new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ updateLaunchConfigurationDialog();
+ }
+ };
+
+ public void createControl(Composite parent) {
+ Composite top = new Composite(parent, SWT.NONE);
+ top.setLayout(new GridLayout());
+ top.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ // Event options
+ cacheButton = new Button(top, SWT.CHECK);
+ cacheButton.setText(Messages.getString("CachegrindToolPage.Profile_Cache")); //$NON-NLS-1$
+ cacheButton.addSelectionListener(selectListener);
+
+ branchButton = new Button(top, SWT.CHECK);
+ branchButton.setText(Messages.getString("CachegrindToolPage.Profile_Branch")); //$NON-NLS-1$
+ branchButton.addSelectionListener(selectListener);
+
+ createVerticalSpacer(top, 1);
+
+ Group cacheGroup = new Group(top, SWT.SHADOW_OUT);
+ cacheGroup.setLayout(new GridLayout(2, false));
+ cacheGroup.setText(Messages.getString("CachegrindToolPage.Manually_Set_Cache")); //$NON-NLS-1$
+
+ // I1 Cache
+ i1Button = new Button(cacheGroup, SWT.CHECK);
+ i1Button.setText(Messages.getString("CachegrindToolPage.I1_Cache")); //$NON-NLS-1$
+ i1Button.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ checkI1Enablement();
+ updateLaunchConfigurationDialog();
+ }
+ });
+
+ i1Top = new Composite(cacheGroup, SWT.BORDER);
+ GridLayout i1Layout = new GridLayout(6, false);
+ i1Layout.horizontalSpacing = 10;
+ i1Top.setLayout(i1Layout);
+
+ Label i1SizeLabel = new Label(i1Top, SWT.NONE);
+ i1SizeLabel.setText(Messages.getString("CachegrindToolPage.Size")); //$NON-NLS-1$
+
+ i1SizeSpinner = new Spinner(i1Top, SWT.BORDER);
+ i1SizeSpinner.setMaximum(Integer.MAX_VALUE);
+ i1SizeSpinner.addModifyListener(modifyListener);
+
+ Label i1AssocLabel = new Label(i1Top, SWT.NONE);
+ i1AssocLabel.setText(Messages.getString("CachegrindToolPage.Assoc")); //$NON-NLS-1$
+
+ i1AssocSpinner = new Spinner(i1Top, SWT.BORDER);
+ i1AssocSpinner.setMaximum(Integer.MAX_VALUE);
+ i1AssocSpinner.addModifyListener(modifyListener);
+
+ Label i1LineSizeLabel = new Label(i1Top, SWT.NONE);
+ i1LineSizeLabel.setText(Messages.getString("CachegrindToolPage.Line_Size")); //$NON-NLS-1$
+
+ i1LineSizeSpinner = new Spinner(i1Top, SWT.BORDER);
+ i1LineSizeSpinner.setMaximum(Integer.MAX_VALUE);
+ i1LineSizeSpinner.addModifyListener(modifyListener);
+
+ // D1 Cache
+ d1Button = new Button(cacheGroup, SWT.CHECK);
+ d1Button.setText(Messages.getString("CachegrindToolPage.D1_Cache")); //$NON-NLS-1$
+ d1Button.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ checkD1Enablement();
+ updateLaunchConfigurationDialog();
+ }
+ });
+
+ d1Top = new Composite(cacheGroup, SWT.BORDER);
+ GridLayout d1Layout = new GridLayout(6, false);
+ d1Layout.horizontalSpacing = 10;
+ d1Top.setLayout(d1Layout);
+
+ Label d1SizeLabel = new Label(d1Top, SWT.NONE);
+ d1SizeLabel.setText(Messages.getString("CachegrindToolPage.Size")); //$NON-NLS-1$
+
+ d1SizeSpinner = new Spinner(d1Top, SWT.BORDER);
+ d1SizeSpinner.setMaximum(Integer.MAX_VALUE);
+ d1SizeSpinner.addModifyListener(modifyListener);
+
+ Label d1AssocLabel = new Label(d1Top, SWT.NONE);
+ d1AssocLabel.setText(Messages.getString("CachegrindToolPage.Assoc")); //$NON-NLS-1$
+
+ d1AssocSpinner = new Spinner(d1Top, SWT.BORDER);
+ d1AssocSpinner.setMaximum(Integer.MAX_VALUE);
+ d1AssocSpinner.addModifyListener(modifyListener);
+
+ Label d1LineSizeLabel = new Label(d1Top, SWT.NONE);
+ d1LineSizeLabel.setText(Messages.getString("CachegrindToolPage.Line_Size")); //$NON-NLS-1$
+
+ d1LineSizeSpinner = new Spinner(d1Top, SWT.BORDER);
+ d1LineSizeSpinner.setMaximum(Integer.MAX_VALUE);
+ d1LineSizeSpinner.addModifyListener(modifyListener);
+
+ // D1 Cache
+ l2Button = new Button(cacheGroup, SWT.CHECK);
+ l2Button.setText(Messages.getString("CachegrindToolPage.L2_Cache")); //$NON-NLS-1$
+ l2Button.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ checkL2Enablement();
+ updateLaunchConfigurationDialog();
+ }
+ });
+
+ l2Top = new Composite(cacheGroup, SWT.BORDER);
+ GridLayout l2Layout = new GridLayout(6, false);
+ l2Layout.horizontalSpacing = 10;
+ l2Top.setLayout(l2Layout);
+
+ Label l2SizeLabel = new Label(l2Top, SWT.NONE);
+ l2SizeLabel.setText(Messages.getString("CachegrindToolPage.Size")); //$NON-NLS-1$
+
+ l2SizeSpinner = new Spinner(l2Top, SWT.BORDER);
+ l2SizeSpinner.setMaximum(Integer.MAX_VALUE);
+ l2SizeSpinner.addModifyListener(modifyListener);
+
+ Label l2AssocLabel = new Label(l2Top, SWT.NONE);
+ l2AssocLabel.setText(Messages.getString("CachegrindToolPage.Assoc")); //$NON-NLS-1$
+
+ l2AssocSpinner = new Spinner(l2Top, SWT.BORDER);
+ l2AssocSpinner.setMaximum(Integer.MAX_VALUE);
+ l2AssocSpinner.addModifyListener(modifyListener);
+
+ Label l2LineSizeLabel = new Label(l2Top, SWT.NONE);
+ l2LineSizeLabel.setText(Messages.getString("CachegrindToolPage.Line_Size")); //$NON-NLS-1$
+
+ l2LineSizeSpinner = new Spinner(l2Top, SWT.BORDER);
+ l2LineSizeSpinner.setMaximum(Integer.MAX_VALUE);
+ l2LineSizeSpinner.addModifyListener(modifyListener);
+ }
+
+ public String getName() {
+ return Messages.getString("CachegrindToolPage.Cachegrind_Options"); //$NON-NLS-1$
+ }
+
+ public void initializeFrom(ILaunchConfiguration config) {
+ try {
+ cacheButton.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_CACHE_SIM, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_CACHE_SIM));
+ branchButton.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_BRANCH_SIM, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_BRANCH_SIM));
+
+ i1Button.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1));
+ i1SizeSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_SIZE));
+ i1AssocSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_ASSOC));
+ i1LineSizeSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_LSIZE));
+ checkI1Enablement();
+
+ d1Button.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1));
+ d1SizeSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_SIZE));
+ d1AssocSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_ASSOC));
+ d1LineSizeSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_LSIZE));
+ checkD1Enablement();
+
+ l2Button.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2));
+ l2SizeSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_SIZE));
+ l2AssocSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_ASSOC));
+ l2LineSizeSpinner.setSelection(config.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_LSIZE));
+ checkL2Enablement();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void performApply(ILaunchConfigurationWorkingCopy config) {
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_CACHE_SIM, cacheButton.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_BRANCH_SIM, branchButton.getSelection());
+
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1, i1Button.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_SIZE, i1SizeSpinner.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_ASSOC, i1AssocSpinner.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_LSIZE, i1LineSizeSpinner.getSelection());
+
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1, d1Button.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_SIZE, d1SizeSpinner.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_ASSOC, d1AssocSpinner.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_LSIZE, d1LineSizeSpinner.getSelection());
+
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2, l2Button.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_SIZE, l2SizeSpinner.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_ASSOC, l2AssocSpinner.getSelection());
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_LSIZE, l2LineSizeSpinner.getSelection());
+ }
+
+ public void setDefaults(ILaunchConfigurationWorkingCopy config) {
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_CACHE_SIM, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_CACHE_SIM);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_BRANCH_SIM, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_BRANCH_SIM);
+
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_SIZE);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_ASSOC);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_I1_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_I1_LSIZE);
+
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_SIZE);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_ASSOC);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_D1_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_D1_LSIZE);
+
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_SIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_SIZE);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_ASSOC, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_ASSOC);
+ config.setAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_L2_LSIZE, CachegrindLaunchConstants.DEFAULT_CACHEGRIND_L2_LSIZE);
+ }
+
+ @Override
+ public boolean isValid(ILaunchConfiguration launchConfig) {
+ setErrorMessage(null);
+
+ boolean result = false;
+ try {
+ result = launchConfig.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_CACHE_SIM, true)
+ || launchConfig.getAttribute(CachegrindLaunchConstants.ATTR_CACHEGRIND_BRANCH_SIM, false);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ if (!result) {
+ setErrorMessage(Messages.getString("CachegrindToolPage.At_least_one_of")); //$NON-NLS-1$
+ }
+ return result;
+ }
+
+ public void setValgrindVersion(Version ver) {
+ // Not used
+ }
+
+ protected void createHorizontalSpacer(Composite comp, int numlines) {
+ Label lbl = new Label(comp, SWT.NONE);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = numlines;
+ lbl.setLayoutData(gd);
+ }
+
+ @Override
+ protected void updateLaunchConfigurationDialog() {
+ if (!isInitializing) {
+ super.updateLaunchConfigurationDialog();
+ }
+ }
+
+ protected void checkI1Enablement() {
+ boolean checked = i1Button.getSelection();
+ i1SizeSpinner.setEnabled(checked);
+ i1AssocSpinner.setEnabled(checked);
+ i1LineSizeSpinner.setEnabled(checked);
+ }
+
+ protected void checkD1Enablement() {
+ boolean checked = d1Button.getSelection();
+ d1SizeSpinner.setEnabled(checked);
+ d1AssocSpinner.setEnabled(checked);
+ d1LineSizeSpinner.setEnabled(checked);
+ }
+
+ protected void checkL2Enablement() {
+ boolean checked = l2Button.getSelection();
+ l2SizeSpinner.setEnabled(checked);
+ l2AssocSpinner.setEnabled(checked);
+ l2LineSizeSpinner.setEnabled(checked);
+ }
+
+ public Button getCacheButton() {
+ return cacheButton;
+ }
+
+ public Button getBranchButton() {
+ return branchButton;
+ }
+
+ public Spinner getI1SizeSpinner() {
+ return i1SizeSpinner;
+ }
+
+ public Spinner getI1AssocSpinner() {
+ return i1AssocSpinner;
+ }
+
+ public Spinner getI1LineSizeSpinner() {
+ return i1LineSizeSpinner;
+ }
+
+ public Button getI1Button() {
+ return i1Button;
+ }
+
+ public Spinner getD1SizeSpinner() {
+ return d1SizeSpinner;
+ }
+
+ public Spinner getD1AssocSpinner() {
+ return d1AssocSpinner;
+ }
+
+ public Spinner getD1LineSizeSpinner() {
+ return d1LineSizeSpinner;
+ }
+
+ public Button getD1Button() {
+ return d1Button;
+ }
+
+ public Spinner getL2SizeSpinner() {
+ return l2SizeSpinner;
+ }
+
+ public Spinner getL2AssocSpinner() {
+ return l2AssocSpinner;
+ }
+
+ public Spinner getL2LineSizeSpinner() {
+ return l2LineSizeSpinner;
+ }
+
+ public Button getL2Button() {
+ return l2Button;
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindViewPart.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindViewPart.java
new file mode 100644
index 0000000000..6633886e21
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CachegrindViewPart.java
@@ -0,0 +1,359 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import java.util.Arrays;
+
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.ISourceRange;
+import org.eclipse.cdt.core.model.ISourceReference;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.TreeViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindLine;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput;
+import org.eclipse.linuxtools.internal.valgrind.cachegrind.model.ICachegrindElement;
+import org.eclipse.linuxtools.profiling.ui.ProfileUIUtils;
+import org.eclipse.linuxtools.valgrind.ui.IValgrindToolView;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.ViewPart;
+
+public class CachegrindViewPart extends ViewPart implements IValgrindToolView {
+
+ protected CachegrindOutput[] outputs;
+ protected TreeViewer viewer;
+
+ protected static final int COLUMN_SIZE = 75;
+ protected CachegrindLabelProvider labelProvider;
+ protected CachegrindTreeContentProvider contentProvider;
+ protected IDoubleClickListener doubleClickListener;
+ protected ExpandAction expandAction;
+ protected CollapseAction collapseAction;
+
+ // Events - Cache
+ protected static final String IR = "Ir"; //$NON-NLS-1$
+ protected static final String I1MR = "I1mr"; //$NON-NLS-1$
+ protected static final String I2MR = "I2mr"; //$NON-NLS-1$
+ protected static final String DR = "Dr"; //$NON-NLS-1$
+ protected static final String D1MR = "D1mr"; //$NON-NLS-1$
+ protected static final String D2MR = "D2mr"; //$NON-NLS-1$
+ protected static final String DW = "Dw"; //$NON-NLS-1$
+ protected static final String D1MW = "D1mw"; //$NON-NLS-1$
+ protected static final String D2MW = "D2mw"; //$NON-NLS-1$
+
+ // Events - Branch
+ protected static final String BC = "Bc"; //$NON-NLS-1$
+ protected static final String BCM = "Bcm"; //$NON-NLS-1$
+ protected static final String BI = "Bi"; //$NON-NLS-1$
+ protected static final String BIM = "Bim"; //$NON-NLS-1$
+
+ @Override
+ public void createPartControl(Composite parent) {
+ Composite top = new Composite(parent, SWT.NONE);
+ GridLayout topLayout = new GridLayout();
+ topLayout.marginHeight = topLayout.marginWidth = 0;
+ top.setLayout(topLayout);
+ top.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ viewer = new TreeViewer(top, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL
+ | SWT.FULL_SELECTION);
+
+ labelProvider = new CachegrindLabelProvider();
+
+ Tree tree = viewer.getTree();
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+ tree.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
+ column.getColumn().setText(Messages.getString("CachegrindViewPart.Location")); //$NON-NLS-1$
+ column.getColumn().setWidth(COLUMN_SIZE * 4);
+ column.getColumn().setResizable(true);
+ column.getColumn().addSelectionListener(getHeaderListener());
+ column.setLabelProvider(labelProvider);
+
+ contentProvider = new CachegrindTreeContentProvider();
+ viewer.setContentProvider(contentProvider);
+ viewer.setLabelProvider(labelProvider);
+ viewer.setAutoExpandLevel(2);
+ doubleClickListener = new IDoubleClickListener() {
+ public void doubleClick(DoubleClickEvent event) {
+ Object selection = ((StructuredSelection) event.getSelection()).getFirstElement();
+ String path = null;
+ int line = 0;
+ if (selection instanceof CachegrindFile) {
+ path = ((CachegrindFile) selection).getPath();
+ }
+ else if (selection instanceof CachegrindLine) {
+ CachegrindLine element = (CachegrindLine) selection;
+ CachegrindFile file = (CachegrindFile) element.getParent().getParent();
+ path = file.getPath();
+ line = element.getLine();
+ }
+ else if (selection instanceof CachegrindFunction) {
+ CachegrindFunction function = (CachegrindFunction) selection;
+ path = ((CachegrindFile) function.getParent()).getPath();
+ if (function.getModel() instanceof ISourceReference) {
+ ISourceReference model = (ISourceReference) function.getModel();
+ try {
+ ISourceRange sr = model.getSourceRange();
+ if (sr != null) {
+ line = sr.getStartLine();
+ }
+ } catch (CModelException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ if (path != null) {
+ try {
+ ProfileUIUtils.openEditorAndSelect(path, line);
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ } catch (BadLocationException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ };
+ viewer.addDoubleClickListener(doubleClickListener);
+
+ expandAction = new ExpandAction(viewer);
+ collapseAction = new CollapseAction(viewer);
+
+ MenuManager manager = new MenuManager();
+ manager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager manager) {
+ ITreeSelection selection = (ITreeSelection) viewer.getSelection();
+ ICachegrindElement element = (ICachegrindElement) selection.getFirstElement();
+ if (contentProvider.hasChildren(element)) {
+ manager.add(expandAction);
+ manager.add(collapseAction);
+ }
+ }
+ });
+
+ manager.setRemoveAllWhenShown(true);
+ Menu contextMenu = manager.createContextMenu(viewer.getTree());
+ viewer.getControl().setMenu(contextMenu);
+ }
+
+ @Override
+ public void setFocus() {
+ viewer.getTree().setFocus();
+ }
+
+ public IAction[] getToolbarActions() {
+ return null;
+ }
+
+ public void refreshView() {
+ if (outputs != null && outputs.length > 0) {
+ String[] events = outputs[0].getEvents();
+ for (int i = 0; i < events.length; i++) {
+ TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
+ column.getColumn().setText(events[i]);
+ column.getColumn().setWidth(COLUMN_SIZE);
+ column.getColumn().setToolTipText(getFullEventName(events[i]));
+ column.getColumn().setResizable(true);
+ column.getColumn().addSelectionListener(getHeaderListener());
+ column.setLabelProvider(labelProvider);
+ }
+ viewer.setInput(outputs);
+ viewer.getTree().layout(true);
+ }
+ }
+
+ public void setOutputs(CachegrindOutput[] outputs) {
+ this.outputs = outputs;
+ }
+
+ public CachegrindOutput[] getOutputs() {
+ return outputs;
+ }
+
+ public TreeViewer getViewer() {
+ return viewer;
+ }
+
+ public IDoubleClickListener getDoubleClickListener() {
+ return doubleClickListener;
+ }
+
+ private SelectionListener getHeaderListener() {
+ return new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ TreeColumn column = (TreeColumn) e.widget;
+ Tree tree = viewer.getTree();
+ if (column.equals(tree.getSortColumn())) {
+ int direction = tree.getSortDirection() == SWT.UP ? SWT.DOWN
+ : SWT.UP;
+ tree.setSortDirection(direction);
+ } else {
+ tree.setSortDirection(SWT.UP);
+ }
+ tree.setSortColumn(column);
+ viewer.setComparator(new ViewerComparator() {
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ Tree tree = ((TreeViewer) viewer).getTree();
+ int direction = tree.getSortDirection();
+ ICachegrindElement o1 = (ICachegrindElement) e1;
+ ICachegrindElement o2 = (ICachegrindElement) e2;
+ long result = 0;
+
+ int sortIndex = Arrays.asList(tree.getColumns()).indexOf(tree.getSortColumn());
+ if (sortIndex == 0) { // use compareTo
+ result = o1.compareTo(o2);
+ }
+ else {
+ long[] v1 = null;
+ long[] v2 = null;
+ if (o1 instanceof CachegrindFunction && o2 instanceof CachegrindFunction) {
+ v1 = ((CachegrindFunction) o1).getTotals();
+ v2 = ((CachegrindFunction) o2).getTotals();
+ }
+ else if (o1 instanceof CachegrindLine && o2 instanceof CachegrindLine) {
+ v1 = ((CachegrindLine) o1).getValues();
+ v2 = ((CachegrindLine) o2).getValues();
+ }
+ else if (o1 instanceof CachegrindOutput && o2 instanceof CachegrindOutput) {
+ v1 = ((CachegrindOutput) o1).getSummary();
+ v2 = ((CachegrindOutput) o2).getSummary();
+ }
+
+ if (v1 != null && v2 != null) {
+ result = v1[sortIndex - 1] - v2[sortIndex - 1];
+ }
+ }
+
+ // ascending or descending
+ result = direction == SWT.UP ? result : -result;
+
+ // overflow check
+ if (result > Integer.MAX_VALUE) {
+ result = Integer.MAX_VALUE;
+ } else if (result < Integer.MIN_VALUE) {
+ result = Integer.MIN_VALUE;
+ }
+
+ return (int) result;
+ }
+ });
+ }
+ };
+ }
+
+ private String getFullEventName(String event) {
+ String result = event;
+ if (event.equals(IR)) {
+ result = Messages.getString("CachegrindViewPart.Ir_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(I1MR)) {
+ result = Messages.getString("CachegrindViewPart.I1mr_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(I2MR)) {
+ result = Messages.getString("CachegrindViewPart.I2mr_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(DR)) {
+ result = Messages.getString("CachegrindViewPart.Dr_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(D1MR)) {
+ result = Messages.getString("CachegrindViewPart.D1mr_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(D2MR)) {
+ result = Messages.getString("CachegrindViewPart.D2mr_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(DW)) {
+ result = Messages.getString("CachegrindViewPart.Dw_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(D1MW)) {
+ result = Messages.getString("CachegrindViewPart.D1mw_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(D2MW)) {
+ result = Messages.getString("CachegrindViewPart.D2mw_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(BC)) {
+ result = Messages.getString("CachegrindViewPart.Bc_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(BCM)) {
+ result = Messages.getString("CachegrindViewPart.Bcm_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(BI)) {
+ result = Messages.getString("CachegrindViewPart.Bi_long"); //$NON-NLS-1$
+ }
+ else if (event.equals(BIM)) {
+ result = Messages.getString("CachegrindViewPart.Bim_long"); //$NON-NLS-1$
+ }
+ return result;
+ }
+
+ protected class CachegrindTreeContentProvider implements ITreeContentProvider {
+
+ public Object[] getChildren(Object parentElement) {
+ Object[] result = null;
+ if (parentElement instanceof CachegrindOutput[]) {
+ result = (CachegrindOutput[]) parentElement;
+ }
+ else if (parentElement instanceof ICachegrindElement) {
+ result = ((ICachegrindElement) parentElement).getChildren();
+ }
+ return result;
+ }
+
+ public Object getParent(Object element) {
+ return ((ICachegrindElement) element).getParent();
+ }
+
+ public boolean hasChildren(Object element) {
+ ICachegrindElement[] children = (ICachegrindElement[]) getChildren(element);
+ return children != null && children.length > 0;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ }
+
+
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CollapseAction.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CollapseAction.java
new file mode 100644
index 0000000000..9a350635c3
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/CollapseAction.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+
+public class CollapseAction extends Action {
+
+ protected TreeViewer viewer;
+
+ public CollapseAction(TreeViewer viewer) {
+ super(Messages.getString("CollapseAction.Text")); //$NON-NLS-1$
+ this.viewer = viewer;
+ }
+
+ @Override
+ public void run() {
+ ITreeSelection selection = (ITreeSelection) viewer.getSelection();
+ Object element = selection.getFirstElement();
+ viewer.collapseToLevel(element, TreeViewer.ALL_LEVELS);
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/ExpandAction.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/ExpandAction.java
new file mode 100644
index 0000000000..71c06cba0c
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/ExpandAction.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+
+public class ExpandAction extends Action {
+
+ protected TreeViewer viewer;
+
+ public ExpandAction(TreeViewer viewer) {
+ super(Messages.getString("ExpandAction.Text")); //$NON-NLS-1$
+ this.viewer = viewer;
+ }
+
+ @Override
+ public void run() {
+ ITreeSelection selection = (ITreeSelection) viewer.getSelection();
+ Object element = selection.getFirstElement();
+ viewer.expandToLevel(element, TreeViewer.ALL_LEVELS);
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/Messages.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/Messages.java
new file mode 100644
index 0000000000..4806dfbbbf
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/Messages.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+ private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.valgrind.cachegrind.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+ .getBundle(BUNDLE_NAME);
+
+ private Messages() {
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/messages.properties b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/messages.properties
new file mode 100644
index 0000000000..f14411ec64
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/messages.properties
@@ -0,0 +1,40 @@
+CachegrindLaunchDelegate.Error_parsing_output=Error parsing output
+CachegrindLaunchDelegate.Parsing_Cachegrind_Output=Parsing Cachegrind Output
+CachegrindLaunchDelegate.Retrieving_cachegrind_data_dir_failed=Retrieving cachegrind data dir failed.
+CachegrindParser.Parsing_cachegrind_output_failed=Parsing cachegrind output failed on line: {0}
+CachegrindToolPage.Assoc=Associativity:
+CachegrindToolPage.At_least_one_of=At least one of Cache and Branch Profiling must be selected
+CachegrindToolPage.Cachegrind_Options=Cachegrind Options
+CachegrindToolPage.D1_Cache=D1 Cache:
+CachegrindToolPage.I1_Cache=I1 Cache:
+CachegrindToolPage.L2_Cache=L2 Cache:
+CachegrindToolPage.Line_Size=Line Size (B):
+CachegrindToolPage.Manually_Set_Cache=Manually Set Cache Specifications
+CachegrindToolPage.Profile_Branch=Profile Branch Instructions/Mispredictions
+CachegrindToolPage.Profile_Cache=Profile Cache Accesses/Misses
+CachegrindToolPage.Size=Size (B):
+CachegrindViewPart.Bc_long=Conditional Branches Executed
+CachegrindViewPart.Bcm_long=Conditional Branches Mispredicted
+CachegrindViewPart.Bi_long=Indirect Branches Executed
+CachegrindViewPart.Bim_long=Indirect Branches Mispredicted
+CachegrindViewPart.D1mr_long=L1 Data Read Miss
+CachegrindViewPart.D1mr_short=D1 rd miss
+CachegrindViewPart.D1mw_long=L1 Data Write Miss
+CachegrindViewPart.D1mw_short=D1 wr miss
+CachegrindViewPart.D2mr_long=L2 Data Read Miss
+CachegrindViewPart.D2mr_short=L2d rd miss
+CachegrindViewPart.D2mw_long=L2 Data Write Miss
+CachegrindViewPart.D2mw_short=L2d wr miss
+CachegrindViewPart.Dr_long=Data Read Access
+CachegrindViewPart.Dr_short=D rd ref
+CachegrindViewPart.Dw_long=Data Write Access
+CachegrindViewPart.Dw_short=D wr ref
+CachegrindViewPart.I1mr_long=L1 Instruction Fetch Miss
+CachegrindViewPart.I1mr_short=I1 miss
+CachegrindViewPart.I2mr_long=L2 Instruction Fetch Miss
+CachegrindViewPart.I2mr_short=L2i miss
+CachegrindViewPart.Ir_long=Instruction Fetch
+CachegrindViewPart.Ir_short=I ref
+CachegrindViewPart.Location=Location
+CachegrindViewPart.line=line {0}
+CachegrindViewPart.Total_PID=Total [PID: {0}]
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindDescription.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindDescription.java
new file mode 100644
index 0000000000..003a1f4e26
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindDescription.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+public class CachegrindDescription {
+ protected String name;
+ protected String size;
+ protected String lineSize;
+ protected String assoc;
+
+ public CachegrindDescription(String name, String size, String lineSize, String assoc) {
+ this.name = name;
+ this.size = size;
+ this.lineSize = lineSize;
+ this.assoc = assoc;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof CachegrindDescription && name.equals(((CachegrindDescription) obj).getName());
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getSize() {
+ return size;
+ }
+
+ public String getLineSize() {
+ return lineSize;
+ }
+
+ public String getAssoc() {
+ return assoc;
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFile.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFile.java
new file mode 100644
index 0000000000..c8b3410db8
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFile.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+public class CachegrindFile implements ICachegrindElement {
+ private static final String UNKNOWN_FILE = "???"; //$NON-NLS-1$
+
+
+ protected CachegrindOutput parent;
+ protected String path;
+ protected List<CachegrindFunction> functions;
+
+ protected IAdaptable model;
+
+ public CachegrindFile(CachegrindOutput parent, String path) {
+ this.parent = parent;
+ this.path = path;
+ functions = new ArrayList<CachegrindFunction>();
+
+ IPath pathObj = Path.fromOSString(path);
+ if (path.equals(UNKNOWN_FILE)) {
+ model = null;
+ }
+ else {
+ model = CoreModel.getDefault().create(pathObj);
+ if (model == null) {
+ model = ResourcesPlugin.getWorkspace().getRoot().getFile(pathObj);
+ }
+ }
+ }
+
+ public void addFunction(CachegrindFunction func) {
+ functions.add(func);
+ }
+
+ public CachegrindFunction[] getFunctions() {
+ return functions.toArray(new CachegrindFunction[functions.size()]);
+ }
+
+ public ICachegrindElement[] getChildren() {
+ return getFunctions();
+ }
+
+ public IAdaptable getModel() {
+ return model;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ public String getName() {
+ String name = path;
+ if (Path.ROOT.isValidPath(path)) {
+ name = Path.fromOSString(path).lastSegment();
+ }
+ return name;
+ }
+
+ public ICachegrindElement getParent() {
+ return parent;
+ }
+
+ public int compareTo(ICachegrindElement o) {
+ int result = 0;
+ if (o instanceof CachegrindFile) {
+ result = getName().compareTo(((CachegrindFile) o).getName());
+ }
+ return result;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFunction.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFunction.java
new file mode 100644
index 0000000000..1067dd7632
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindFunction.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.IFunction;
+import org.eclipse.cdt.core.model.IMethod;
+import org.eclipse.cdt.core.model.IParent;
+import org.eclipse.cdt.core.model.IStructure;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+
+public class CachegrindFunction implements ICachegrindElement {
+ protected CachegrindFile parent;
+ protected String name;
+ protected List<CachegrindLine> lines;
+ protected long[] totals;
+
+ protected IAdaptable model;
+
+ private static String SCOPE_RESOLUTION = "::"; //$NON-NLS-1$
+
+ public CachegrindFunction(CachegrindFile parent, String name) {
+ this.parent = parent;
+ this.name = name;
+ lines = new ArrayList<CachegrindLine>();
+
+ IAdaptable pModel = parent.getModel();
+ if (pModel instanceof ICElement) {
+ ICElement element = (ICElement) pModel;
+ try {
+ if (element instanceof ITranslationUnit) {
+ // Cachegrind labels parameter types for C++ methods
+ int paramIndex = name.indexOf("("); //$NON-NLS-1$
+ if (paramIndex >= 0) {
+ name = name.substring(0, paramIndex);
+ }
+
+ model = findElement(name, (IParent) element);
+ if (model == null) {
+ while (name.contains(SCOPE_RESOLUTION)) {
+ String[] parts = name.split(SCOPE_RESOLUTION, 2);
+ String structureName = parts[0];
+ name = parts[1];
+
+ List<ICElement> dom = ((IParent) element).getChildrenOfType(ICElement.C_CLASS);
+ dom.addAll(((IParent) element).getChildrenOfType(ICElement.C_STRUCT));
+ dom.addAll(((IParent) element).getChildrenOfType(ICElement.C_UNION));
+ for (int i = 0; i < dom.size(); i++) {
+ ICElement e = dom.get(i);
+ if (e instanceof IStructure && e.getElementName().equals(structureName)) {
+ element = (IStructure) e;
+ }
+ }
+ }
+ model = findElement(name, (IParent) element);
+ }
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ protected ICElement findElement(String name, IParent parent)
+ throws CModelException {
+ ICElement element = null;
+ List<ICElement> dom = parent.getChildrenOfType(ICElement.C_FUNCTION);
+ dom.addAll(parent.getChildrenOfType(ICElement.C_METHOD));
+ for (int i = 0; i < dom.size(); i++) {
+ ICElement func = dom.get(i);
+ if ((func instanceof IFunction || func instanceof IMethod) && func.getElementName().equals(name)) {
+ element = func;
+ }
+ }
+ return element;
+ }
+
+ public void addLine(CachegrindLine line) {
+ long[] values = line.getValues();
+ if (totals == null) {
+ totals = new long[values.length];
+ }
+ for (int i = 0; i < values.length; i++) {
+ totals[i] += values[i];
+ }
+ lines.add(line);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public IAdaptable getModel() {
+ return model;
+ }
+
+ public long[] getTotals() {
+ return totals;
+ }
+
+ public CachegrindLine[] getLines() {
+ return lines.toArray(new CachegrindLine[lines.size()]);
+ }
+
+ public ICachegrindElement[] getChildren() {
+ ICachegrindElement[] children = null;
+ // if there is only a summary don't return any children
+ if (lines.get(0).getLine() > 0) {
+ children = getLines();
+ }
+ return children;
+ }
+
+ public ICachegrindElement getParent() {
+ return parent;
+ }
+
+ public int compareTo(ICachegrindElement o) {
+ int result = 0;
+ if (o instanceof CachegrindFunction) {
+ result = name.compareTo(((CachegrindFunction) o).getName());
+ }
+ return result;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindLine.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindLine.java
new file mode 100644
index 0000000000..98a2aae05e
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindLine.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+import org.eclipse.core.runtime.IAdaptable;
+
+
+public class CachegrindLine implements ICachegrindElement {
+ protected CachegrindFunction parent;
+ protected int line;
+ protected long[] values;
+
+ public CachegrindLine(CachegrindFunction parent, int line, long[] values) {
+ this.parent = parent;
+ this.line = line;
+ this.values = values;
+ }
+
+ public ICachegrindElement[] getChildren() {
+ return null;
+ }
+
+ public int getLine() {
+ return line;
+ }
+
+ public long[] getValues() {
+ return values;
+ }
+
+ public ICachegrindElement getParent() {
+ return parent;
+ }
+
+ public int compareTo(ICachegrindElement o) {
+ int result = 0;
+ if (o instanceof CachegrindLine) {
+ result = line - ((CachegrindLine) o).getLine();
+ }
+ return result;
+ }
+
+ public IAdaptable getModel() {
+ return null;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindOutput.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindOutput.java
new file mode 100644
index 0000000000..e3d06da940
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/CachegrindOutput.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+
+public class CachegrindOutput implements ICachegrindElement {
+ protected List<CachegrindDescription> descriptions;
+ protected List<CachegrindFile> files;
+ protected Integer pid;
+ protected String cmd;
+ protected String[] events;
+ protected long[] summary;
+
+ public CachegrindOutput() {
+ descriptions = new ArrayList<CachegrindDescription>();
+ files = new ArrayList<CachegrindFile>();
+ }
+
+ public void addDescription(CachegrindDescription desc) {
+ descriptions.add(desc);
+ }
+
+ public void addFile(CachegrindFile file) {
+ files.add(file);
+ }
+
+ public void setCommand(String cmd) {
+ this.cmd = cmd;
+ }
+
+ public void setEvents(String[] events) {
+ this.events = events;
+ }
+
+ public void setSummary(long[] summary) {
+ this.summary = summary;
+ }
+
+ public void setPid(Integer pid) {
+ this.pid = pid;
+ }
+
+ public String getCmd() {
+ return cmd;
+ }
+
+ public CachegrindDescription[] getDescriptions() {
+ return descriptions.toArray(new CachegrindDescription[descriptions.size()]);
+ }
+
+ public String[] getEvents() {
+ return events;
+ }
+
+ public CachegrindFile[] getFiles() {
+ return files.toArray(new CachegrindFile[files.size()]);
+ }
+
+ public long[] getSummary() {
+ return summary;
+ }
+
+ public ICachegrindElement[] getChildren() {
+ return getFiles();
+ }
+
+ public ICachegrindElement getParent() {
+ return null;
+ }
+
+ public Integer getPid() {
+ return pid;
+ }
+
+ public int compareTo(ICachegrindElement o) {
+ int result = 0;
+ if (o instanceof CachegrindOutput) {
+ result = pid - ((CachegrindOutput) o).getPid();
+ }
+ return result;
+ }
+
+ public IAdaptable getModel() {
+ return null;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/ICachegrindElement.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/ICachegrindElement.java
new file mode 100644
index 0000000000..3292b5ed1a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/ICachegrindElement.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+import org.eclipse.core.runtime.IAdaptable;
+
+public interface ICachegrindElement extends Comparable<ICachegrindElement> {
+
+ public ICachegrindElement getParent();
+
+ public ICachegrindElement[] getChildren();
+
+ public IAdaptable getModel();
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/Messages.java b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/Messages.java
new file mode 100644
index 0000000000..d01fb95402
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/Messages.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.cachegrind.model;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+ private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.valgrind.cachegrind.model.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+ .getBundle(BUNDLE_NAME);
+
+ private Messages() {
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/messages.properties b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/messages.properties
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.cachegrind/src/org/eclipse/linuxtools/internal/valgrind/cachegrind/model/messages.properties
@@ -0,0 +1 @@
+
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/.classpath b/valgrind/org.eclipse.linuxtools.valgrind.core/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/.project b/valgrind/org.eclipse.linuxtools.valgrind.core/.project
new file mode 100644
index 0000000000..d813748a78
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.valgrind.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/.settings/org.eclipse.jdt.core.prefs b/valgrind/org.eclipse.linuxtools.valgrind.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..0e22a86ffb
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Thu Sep 11 15:11:45 EDT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/ChangeLog b/valgrind/org.eclipse.linuxtools.valgrind.core/ChangeLog
new file mode 100644
index 0000000000..0504982682
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/ChangeLog
@@ -0,0 +1,130 @@
+2011-01-06 Elliott Baron <ebaron@fedoraproject.org>
+
+ Bug #333640
+ * src/org/eclipse/linuxtools/internal/valgrind/core/LaunchConfigurationConstants.java (ATTR_GENERAL_DSYMUTIL): Added dsymutil option.
+ (DEFAULT_GENERAL_DSYMUTIL): Likewise.
+
+2010-09-13 Elliott Baron <ebaron@fedoraproject.org>
+
+ * src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCoreParser.java (ValgrindCoreParser): Handle
+ warning messages.
+
+2010-08-03 Elliott Baron <ebaron@fedoraproject.org>
+
+ * src/org/eclipse/linuxtools/internal/valgrind/core/AbstractValgrindTextParser.java: Removed.
+ * src/org/eclipse/linuxtools/valgrind/core/ValgrindParserUtils.java: New file.
+ * src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCoreParser.java (ValgrindCoreParser): Superclass moved to utils class.
+ (getMessage): Likewise.
+
+2010-07-26 Elliott Baron <ebaron@fedoraproject.org>
+
+ * META-INF/MANIFEST.MF: Bump version to 0.7.0.
+ * src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java: Extract method to
+ create process.
+
+2010-06-06 Elliott Baron <ebaron@fedoraproject.org>
+
+ Bug #315890
+ * src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java (whichValgrind): Handle preference
+ for Valgrind location here.
+ * src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java: Reformatted.
+
+2009-11-03 Elliott Baron <ebaron@fedoraproject.org>
+
+ * plugin.properties: Externalized preference page name.
+ * plugin.xml: Likewise.
+ * src/org/eclipse/linuxtools/internal/valgrind/core/messages.properties: Externalized/edited strings.
+ * src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java: Likewise.
+
+2009-08-11 Elliott Baron <ebaron@redhat.com>
+
+ * META-INF/MANIFEST.MF: Bump version to 0.3.0.
+
+2009-08-10 Elliott Baron <ebaron@redhat.com>
+
+ * src/org/eclipse/linuxtools/internal/valgrind/core/LaunchConfigurationConstants.java: Changed
+ launch config constant for suppression files, since it is now a list.
+
+2009-08-07 Andrew Overholt <overholt@redhat.com>
+
+ Bug #285861
+
+ * plugin.properties: Change Provider to Eclipse.
+
+2009-07-30 Elliott Baron <ebaron@redhat.com>
+
+ * src/org/eclipse/linuxtools/valgrind/core: Moved all but IValgrindMessage.
+ * src/org/eclipse/linuxtools/internal/valgrind/core: New package.
+ * META-INF/MANIFEST.MF: Export internal package.
+
+2009-05-26 Elliott Baron <ebaron@redhat.com>
+
+ * AbstractValgrindTextParser.java: Add constant.
+ * CommandLineConstants.java (OPT_MAINSTACK): Support for --main-stacksize.
+ * LaunchConfigurationConstants.java: Likewise.
+
+2009-04-30 Elliott Baron <ebaron@redhat.com>
+
+ * AbstractValgrindMessage.java: New file.
+ * IValgrindMessage.java: New file.
+ * ValgrindCoreParser.java: New file.
+ * ValgrindError.java: New file.
+ * ValgrindStackFrame.java: New file.
+ * AbstractValgrindTextParser.java: Actually made abstract, pull up parseFilename.
+ * CommandLineConstants.java: LOG_PREFIX moved here.
+
+2009-04-03 Elliott Baron <ebaron@redhat.com>
+
+ * META-INF/MANIFEST.MF: 0.2.0 version.
+
+2009-03-25 Elliott Baron <ebaron@redhat.com>
+
+ * LaunchConfigurationConstants.java: ATTR_OUTPUT_DIR -> ATTR_INTERNAL_OUTPUT_DIR.
+ * PluginConstants.java (EXPORT_CMD_ID): ID for export command.
+
+2009-03-11 Elliott Baron <ebaron@redhat.com>
+
+ * CommandLineConstants.java: Added --version argument.
+ * ValgrindCommand.java (whichVersion): New method.
+ (whichValgrind): Extracted readIntoBuffer.
+ (readIntoBuffer): New method.
+
+2009-02-25 Elliott Baron <ebaron@redhat.com>
+
+ * ValgrindCommand.java (whichValgrind): No longer static.
+
+2009-02-20 Elliott Baron <ebaron@redhat.com>
+
+ * AbstractValgrindTextParser.java (parseStrValue): Added limit argument to String.split().
+ (parseLongValue): Likewise.
+
+2009-02-12 Elliott Baron <ebaron@redhat.com>
+
+ * ConsoleWriterThread.java: Removed.
+ * StreamReaderThread.java: Removed.
+ * LaunchConfigurationConstants.java: Removed.
+ * CommandLineConstants.java: New file.
+ * LaunchConfigurationConstants.java: New file.
+ * PluginConstants.java: New file.
+ * META-INF/MANIFEST.MF: Removed .util package.
+ * messages.properties: Removed unused keys.
+ * ValgrindCommand.java Extracted command line options to CommandLineConstants;
+ moved output directory handling to Launch plugin.
+ * ValgrindPlugin.java: Extracted PLUGIN_ID to PluginConstants.
+
+2009-01-21 Elliott Baron <ebaron@redhat.com>
+
+ * AbstractValgrindTextParser: Moved parsePID from MassifParser.
+
+2009-01-13 Elliott Baron <ebaron@redhat.com>
+
+ * AbstractValgrindTextParser: New. Helpful starting point for text parsers.
+
+2009-01-09 Elliott Baron <ebaron@redhat.com>
+
+ * ValgrindCommand: Added static method findValgrind() to call `which valgrind`.
+
+2009-01-05 Elliott Baron <ebaron@redhat.com>
+
+ * META-INF/MANIFEST.MF: Changed version to 0.1.0.
+ * build.properties: Include about.html. \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/META-INF/MANIFEST.MF b/valgrind/org.eclipse.linuxtools.valgrind.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..265de3d07c
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.linuxtools.valgrind.core;singleton:=true
+Bundle-Version: 0.7.0.qualifier
+Bundle-Activator: org.eclipse.linuxtools.internal.valgrind.core.ValgrindPlugin
+Bundle-Vendor: %Bundle-Vendor.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.linuxtools.internal.valgrind.core,
+ org.eclipse.linuxtools.valgrind.core
+Import-Package: org.eclipse.cdt.utils,
+ org.eclipse.cdt.utils.pty,
+ org.eclipse.cdt.utils.spawner,
+ org.eclipse.core.resources,
+ org.eclipse.debug.core
+Bundle-Localization: plugin
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/about.html b/valgrind/org.eclipse.linuxtools.valgrind.core/about.html
new file mode 100644
index 0000000000..e6a2741fc0
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>October 24, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/build.properties b/valgrind/org.eclipse.linuxtools.valgrind.core/build.properties
new file mode 100644
index 0000000000..1500166975
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ about.html,\
+ plugin.xml
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/plugin.properties b/valgrind/org.eclipse.linuxtools.valgrind.core/plugin.properties
new file mode 100644
index 0000000000..4b50ef51be
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/plugin.properties
@@ -0,0 +1,4 @@
+#Properties file for org.eclipse.linuxtools.valgrind.core
+Bundle-Vendor.0 = Eclipse Linux Tools
+Bundle-Name.0 = Valgrind Core Plug-in (Incubation)
+page.name = Valgrind \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/plugin.xml b/valgrind/org.eclipse.linuxtools.valgrind.core/plugin.xml
new file mode 100644
index 0000000000..6c85d73547
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.linuxtools.internal.valgrind.core.ValgrindPreferencePage"
+ id="org.eclipse.linuxtools.valgrind.internal.core.ValgrindPreferencePage"
+ name="%page.name">
+ </page>
+ </extension>
+
+</plugin>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/AbstractValgrindMessage.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/AbstractValgrindMessage.java
new file mode 100644
index 0000000000..acfa13a45c
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/AbstractValgrindMessage.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.util.ArrayList;
+
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.linuxtools.valgrind.core.IValgrindMessage;
+
+public class AbstractValgrindMessage implements IValgrindMessage {
+
+ protected IValgrindMessage parent;
+ protected ILaunch launch;
+ protected ArrayList<IValgrindMessage> children;
+ protected String text;
+
+ public AbstractValgrindMessage(IValgrindMessage parent, String text, ILaunch launch) {
+ children = new ArrayList<IValgrindMessage>();
+ this.parent = parent;
+ this.text = text;
+ this.launch = launch;
+
+ if (parent != null) {
+ parent.addChild(this);
+ }
+ }
+
+ public void addChild(IValgrindMessage message) {
+ children.add(message);
+ }
+
+ public ILaunch getLaunch() {
+ return launch;
+ }
+
+ public IValgrindMessage getParent() {
+ return parent;
+ }
+
+ public IValgrindMessage[] getChildren() {
+ return children.toArray(new IValgrindMessage[children.size()]);
+ }
+
+ public String getText() {
+ return text;
+ }
+
+} \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/CommandLineConstants.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/CommandLineConstants.java
new file mode 100644
index 0000000000..f3917032a7
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/CommandLineConstants.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+public final class CommandLineConstants {
+ public static final String OPT_TOOL = "--tool"; //$NON-NLS-1$
+
+ public static final String OPT_XML = "--xml"; //$NON-NLS-1$
+ public static final String OPT_LOGFILE = "--log-file"; //$NON-NLS-1$
+ public static final String OPT_QUIET = "-q"; //$NON-NLS-1$
+ public static final String OPT_VERSION = "--version"; //$NON-NLS-1$
+
+ public static final String OPT_TRACECHILD = "--trace-children"; //$NON-NLS-1$
+ public static final String OPT_CHILDSILENT = "--child-silent-after-fork"; //$NON-NLS-1$
+ public static final String OPT_TRACKFDS = "--track-fds"; //$NON-NLS-1$
+ public static final String OPT_TIMESTAMP = "--time-stamp"; //$NON-NLS-1$
+ public static final String OPT_FREERES = "--run-libc-freeres"; //$NON-NLS-1$
+ public static final String OPT_DEMANGLE = "--demangle"; //$NON-NLS-1$
+ public static final String OPT_NUMCALLERS = "--num-callers"; //$NON-NLS-1$
+ public static final String OPT_ERRLIMIT = "--error-limit"; //$NON-NLS-1$
+ public static final String OPT_BELOWMAIN = "--show-below-main"; //$NON-NLS-1$
+ public static final String OPT_MAXFRAME = "--max-stackframe"; //$NON-NLS-1$
+ public static final String OPT_SUPPFILE = "--suppressions"; //$NON-NLS-1$
+
+ // 3.4.0 specific
+ public static final String OPT_MAINSTACK = "--main-stacksize"; //$NON-NLS-1$
+
+ // 3.6.0 specific
+ public static final String OPT_DSYMUTIL = "--dsymutil"; //$NON-NLS-1$
+
+ public static final String LOG_PREFIX = "valgrind_"; //$NON-NLS-1$
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/LaunchConfigurationConstants.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/LaunchConfigurationConstants.java
new file mode 100644
index 0000000000..3d4c69efd2
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/LaunchConfigurationConstants.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.util.Collections;
+import java.util.List;
+
+
+public final class LaunchConfigurationConstants {
+
+ // LaunchConfiguration constants
+ private static final String PLUGIN_ID = "org.eclipse.linuxtools.valgrind.launch"; //$NON-NLS-1$
+
+ public static final String ATTR_TOOL = PLUGIN_ID + ".TOOL"; //$NON-NLS-1$
+ public static final String ATTR_INTERNAL_OUTPUT_DIR = PLUGIN_ID + ".OUTPUT_DIR"; //$NON-NLS-1$
+
+ public static final String ATTR_GENERAL_TRACECHILD = PLUGIN_ID + ".GENERAL_TRACECHILD"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_CHILDSILENT = PLUGIN_ID + ".GENERAL_CHILDSILENT"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_FREERES = PLUGIN_ID + ".GENERAL_FREERES"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_DEMANGLE = PLUGIN_ID + ".GENERAL_DEMANGLE"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_NUMCALLERS = PLUGIN_ID + ".GENERAL_NUMCALLERS"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_ERRLIMIT = PLUGIN_ID + ".GENERAL_ERRLIMIT"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_BELOWMAIN = PLUGIN_ID + ".GENERAL_BELOWMAIN"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_MAXFRAME = PLUGIN_ID + ".GENERAL_MAXFRAME"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_SUPPFILES = PLUGIN_ID + ".GENERAL_SUPPFILES"; //$NON-NLS-1$
+
+ // 3.4.0 specific
+ public static final String ATTR_GENERAL_MAINSTACK_BOOL = PLUGIN_ID + ".GENERAL_MAINSTACK_BOOL"; //$NON-NLS-1$
+ public static final String ATTR_GENERAL_MAINSTACK = PLUGIN_ID + ".GENERAL_MAINSTACK"; //$NON-NLS-1$
+
+ // 3.6.0 specific
+ public static final String ATTR_GENERAL_DSYMUTIL = PLUGIN_ID + ".GENERAL_DSYMUTIL"; //$NON-NLS-1$
+
+ public static final String DEFAULT_TOOL = PluginConstants.TOOL_EXT_DEFAULT;
+
+ public static final boolean DEFAULT_GENERAL_TRACECHILD = false;
+ public static final boolean DEFAULT_GENERAL_CHILDSILENT = true; // necessary for parsing
+ public static final boolean DEFAULT_GENERAL_FREERES = true;
+ public static final boolean DEFAULT_GENERAL_DEMANGLE = true;
+ public static final int DEFAULT_GENERAL_NUMCALLERS = 12;
+ public static final boolean DEFAULT_GENERAL_ERRLIMIT = true;
+ public static final boolean DEFAULT_GENERAL_BELOWMAIN = false;
+ public static final int DEFAULT_GENERAL_MAXFRAME = 2000000;
+ public static final List<?> DEFAULT_GENERAL_SUPPFILES = Collections.EMPTY_LIST;
+
+ // 3.4.0 specific
+ public static final boolean DEFAULT_GENERAL_MAINSTACK_BOOL = false;
+ public static final int DEFAULT_GENERAL_MAINSTACK = 0;
+
+ // 3.6.0 specific
+ public static final boolean DEFAULT_GENERAL_DSYMUTIL = true; // necessary for OS X, Bug #333640
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/Messages.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/Messages.java
new file mode 100644
index 0000000000..6b9f954f03
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/Messages.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+ private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.valgrind.core.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+ .getBundle(BUNDLE_NAME);
+
+ private Messages() {
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/PluginConstants.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/PluginConstants.java
new file mode 100644
index 0000000000..7218571a9e
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/PluginConstants.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+public final class PluginConstants {
+ // IDs for important plugins
+ public static final String CORE_PLUGIN_ID = "org.eclipse.linuxtools.valgrind.core"; //$NON-NLS-1$
+ public static final String LAUNCH_PLUGIN_ID = "org.eclipse.linuxtools.valgrind.launch"; //$NON-NLS-1$
+ public static final String UI_PLUGIN_ID = "org.eclipse.linuxtools.valgrind.ui"; //$NON-NLS-1$
+
+ // Extension point constants
+ public static final String TOOL_EXT_ID = "valgrindTools"; //$NON-NLS-1$
+ public static final String TOOL_EXT_DEFAULT = LAUNCH_PLUGIN_ID + ".memcheck"; //$NON-NLS-1$
+ public static final String VIEW_EXT_ID = "valgrindToolViews"; //$NON-NLS-1$
+ public static final String OUTPUT_DIR_EXT_ID = "outputDirectoryProviders"; //$NON-NLS-1$
+
+ // Extension constants
+ public static final String EXPORT_CMD_ID = LAUNCH_PLUGIN_ID + ".exportCommand"; //$NON-NLS-1$
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java
new file mode 100644
index 0000000000..d2563e6c70
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCommand.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.eclipse.cdt.utils.pty.PTY;
+import org.eclipse.cdt.utils.spawner.ProcessFactory;
+
+public class ValgrindCommand {
+ protected static final String WHICH_CMD = "which"; //$NON-NLS-1$
+ protected static final String VALGRIND_CMD = "valgrind"; //$NON-NLS-1$
+
+ protected Process process;
+ protected String[] args;
+
+ public String whichValgrind() throws IOException {
+ String ret;
+ // Valgrind binary location in preferences overrides default location
+ String valgrindPreferedPath = ValgrindPlugin.getDefault().getPreferenceStore().getString(ValgrindPreferencePage.VALGRIND_PATH);
+ if (valgrindPreferedPath.equals("")) {
+ // No preference, check Valgrind exists in the user's PATH
+ StringBuffer out = new StringBuffer();
+ Process p = Runtime.getRuntime().exec(WHICH_CMD + " " + VALGRIND_CMD); //$NON-NLS-1$
+ // Throws IOException if which command is unsuccessful
+ readIntoBuffer(out, p);
+ ret = out.toString().trim();
+ }
+ else {
+ ret = valgrindPreferedPath;
+ }
+ return ret;
+ }
+
+ public String whichVersion(String whichValgrind) throws IOException {
+ StringBuffer out = new StringBuffer();
+ Process p = Runtime.getRuntime().exec(new String[] { whichValgrind, CommandLineConstants.OPT_VERSION });
+ readIntoBuffer(out, p);
+ return out.toString().trim();
+ }
+
+ public void execute(String[] commandArray, Object env, File wd, String exeFile, boolean usePty) throws IOException {
+ args = commandArray;
+ try {
+ process = startProcess(commandArray, env, wd, exeFile, usePty);
+ }
+ catch (IOException e) {
+ if (process != null) {
+ process.destroy();
+ }
+ throw e;
+ }
+ }
+
+ public Process getProcess() {
+ return process;
+ }
+
+ public String getCommandLine() {
+ StringBuffer ret = new StringBuffer();
+ for (String arg : args) {
+ ret.append(arg + " "); //$NON-NLS-1$
+ }
+ return ret.toString().trim();
+ }
+
+ protected Process startProcess(String[] commandArray, Object env, File workDir, String binPath, boolean usePty) throws IOException {
+ if (workDir == null) {
+ return ProcessFactory.getFactory().exec(commandArray, (String[]) env);
+ }
+ if (PTY.isSupported() && usePty) {
+ return ProcessFactory.getFactory().exec(commandArray, (String[]) env, workDir, new PTY());
+ }
+ else {
+ return ProcessFactory.getFactory().exec(commandArray, (String[]) env, workDir);
+ }
+ }
+
+ protected void readIntoBuffer(StringBuffer out, Process p) throws IOException {
+ boolean success;
+ InputStream in;
+ try {
+ if (success = (p.waitFor() == 0)) {
+ in = p.getInputStream();
+ }
+ else {
+ in = p.getErrorStream();
+ }
+ int ch;
+ while ((ch = in.read()) != -1) {
+ out.append((char) ch);
+ }
+ if (!success) {
+ throw new IOException(out.toString());
+ }
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCoreParser.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCoreParser.java
new file mode 100644
index 0000000000..447896ad6d
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindCoreParser.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.linuxtools.valgrind.core.IValgrindMessage;
+import org.eclipse.linuxtools.valgrind.core.ValgrindParserUtils;
+
+public class ValgrindCoreParser {
+ private static final String SPACE = " "; //$NON-NLS-1$
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+ private static final String AT = "at"; //$NON-NLS-1$
+ private static final String BY = "by"; //$NON-NLS-1$
+
+ protected List<IValgrindMessage> messages;
+ protected int pid;
+ protected ILaunch launch;
+
+ public ValgrindCoreParser(File inputFile, ILaunch launch) throws IOException {
+ this.launch = launch;
+ BufferedReader br = new BufferedReader(new FileReader(inputFile));
+ // keep track of nested messages and their corresponding indents
+ Stack<IValgrindMessage> messageStack = new Stack<IValgrindMessage>();
+ Stack<Integer> indentStack = new Stack<Integer>();
+ messages = new ArrayList<IValgrindMessage>();
+
+ try {
+ pid = ValgrindParserUtils.parsePID(inputFile.getName(), CommandLineConstants.LOG_PREFIX);
+ String line;
+ while ((line = br.readLine()) != null) {
+ // remove PID string
+ // might encounter warnings also #325130
+ line = line.replaceFirst("==\\d+==|\\*\\*\\d+\\*\\*", EMPTY_STRING); //$NON-NLS-1$
+
+ int indent;
+ for (indent = 0; indent < line.length()
+ && line.charAt(indent) == ' '; indent++)
+ ;
+
+ line = line.trim();
+ if (!line.equals(EMPTY_STRING)) {
+ /*
+ * indent == 1 -> top level message
+ * indent > 1 -> child message
+ * indent == 0 -> should not occur
+ */
+ if (indent == 1) {
+ // top-level message, clear stacks
+ IValgrindMessage message = getMessage(null, line);
+ messages.add(message);
+ messageStack.clear();
+ messageStack.push(message);
+ indentStack.clear();
+ indentStack.push(indent);
+ }
+ else if (indent > 1) {
+ // find this message's parent
+ while (indent <= indentStack.peek()) {
+ messageStack.pop();
+ indentStack.pop();
+ }
+
+ messageStack.push(getMessage(messageStack.peek(), line));
+ indentStack.push(indent);
+ }
+ }
+ }
+ } finally {
+ if (br != null) {
+ br.close();
+ }
+ }
+ }
+
+ protected IValgrindMessage getMessage(IValgrindMessage message, String line) throws IOException {
+ if (line.startsWith(AT) || line.startsWith(BY)) {
+ Object[] parsed = ValgrindParserUtils.parseFilename(line);
+ String filename = (String) parsed[0];
+ int lineNo = (Integer) parsed[1];
+ return new ValgrindStackFrame(message, line, launch, filename, lineNo);
+ }
+ return new ValgrindError(message, line, launch, pid);
+ }
+
+ public IValgrindMessage[] getMessages() {
+ return messages.toArray(new IValgrindMessage[messages.size()]);
+ }
+
+ public void printMessages(IValgrindMessage m, int indent) {
+ for (int i = 0; i < indent; i++) {
+ System.out.print(SPACE);
+ }
+ System.out.println(m.getText());
+ for (IValgrindMessage child : m.getChildren()) {
+ printMessages(child, indent + 1);
+ }
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindError.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindError.java
new file mode 100644
index 0000000000..f4c546b60d
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindError.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.linuxtools.valgrind.core.IValgrindMessage;
+
+
+public class ValgrindError extends AbstractValgrindMessage {
+ protected int pid;
+
+ public ValgrindError(IValgrindMessage message, String text, ILaunch launch, int pid) {
+ super(message, text, launch);
+ this.pid = pid;
+ }
+
+ public int getPid() {
+ return pid;
+ }
+
+ @Override
+ public String getText() {
+ return super.getText() + " [PID: " + pid + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPlugin.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPlugin.java
new file mode 100644
index 0000000000..52085040f9
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPlugin.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.io.IOException;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+public class ValgrindPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = PluginConstants.CORE_PLUGIN_ID;
+
+ // The shared instance
+ private static ValgrindPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public ValgrindPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static ValgrindPlugin getDefault() {
+ return plugin;
+ }
+
+
+ @Override
+ protected void initializeDefaultPreferences(IPreferenceStore store) {
+ ValgrindCommand valCommand = new ValgrindCommand();
+ try {
+ store.setDefault(ValgrindPreferencePage.VALGRIND_PATH, valCommand.whichValgrind());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java
new file mode 100644
index 0000000000..2ddfe6c4dc
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindPreferencePage.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import java.io.File;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * The Valgrind Preference Page can be found by going to Windows -> Preferences
+ * from the Eclipse top menu bar. This can hold all non-launch specific
+ * configuration settings or user preferences.
+ */
+public class ValgrindPreferencePage extends PreferencePage implements
+ IWorkbenchPreferencePage {
+
+ public static final String VALGRIND_PATH = "VALGRIND_PATH"; //$NON-NLS-1$
+ private Text binText;
+ private Button button;
+ private IPreferenceStore store;
+
+ @Override
+ protected Control createContents(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NULL);
+
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 3;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = SWT.FILL;
+ data.horizontalAlignment = SWT.FILL;
+ data.grabExcessHorizontalSpace = true;
+ data.grabExcessVerticalSpace = true;
+ composite.setLayoutData(data);
+
+ // Path Label
+ Label pathLabel = new Label(composite, SWT.NONE);
+ pathLabel.setText(Messages
+ .getString("ValgrindPreferencePage.Binary_path")); //$NON-NLS-1$
+
+ // Path Text Field
+ binText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+ GridData binTextData = new GridData();
+ binTextData.horizontalAlignment = SWT.FILL;
+ binTextData.grabExcessHorizontalSpace = true;
+ binText.setLayoutData(binTextData);
+
+ // Button
+ button = new Button(composite, SWT.PUSH);
+ button.setText(Messages
+ .getString("ValgrindPreferencePage.Browse_button")); //$NON-NLS-1$
+ button.addSelectionListener(new SelectionListener() {
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ Shell shell = new Shell();
+ FileDialog dialog = new FileDialog(shell);
+ String path = dialog.open();
+ if (path != null) {
+ binText.setText(path);
+ }
+ }
+ });
+
+ loadPreferences();
+ return parent;
+ }
+
+ // Loading preferences into controls
+ private void loadPreferences() {
+ binText.setText(store.getString(VALGRIND_PATH));
+ }
+
+ // Get the PreferenceStore for this Plugin
+ @Override
+ protected IPreferenceStore doGetPreferenceStore() {
+ return ValgrindPlugin.getDefault().getPreferenceStore();
+ }
+
+ // Initialization (Before Creating Widgets)
+ public void init(IWorkbench workbench) {
+ store = getPreferenceStore();
+ }
+
+ @Override
+ protected void performDefaults() {
+ super.performDefaults();
+ store.setValue(VALGRIND_PATH, store.getDefaultString(VALGRIND_PATH));
+ binText.setText(store.getDefaultString(VALGRIND_PATH));
+ }
+
+ @Override
+ public boolean performOk() {
+ if (passesValidityChecks()) {
+ ValgrindPlugin.getDefault().savePluginPreferences();
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private boolean passesValidityChecks() {
+ // Check the Binary Path is valid
+ File file = new File(binText.getText());
+ // Can be more strict if necessary
+ if (file.exists() && !file.isDirectory()) {
+ store.setValue(VALGRIND_PATH, binText.getText());
+ } else {
+ performDefaults();
+ Shell shell = new Shell();
+ MessageDialog
+ .openError(
+ shell,
+ Messages.getString("ValgrindPreferencePage.Error_invalid_title"), //$NON-NLS-1$
+ Messages.getString("ValgrindPreferencePage.Error_invalid_message")); //$NON-NLS-1$
+ return false;
+ }
+
+ return true;
+ }
+
+} \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindStackFrame.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindStackFrame.java
new file mode 100644
index 0000000000..866d7825f3
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/ValgrindStackFrame.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.valgrind.core;
+
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.linuxtools.valgrind.core.IValgrindMessage;
+
+public class ValgrindStackFrame extends AbstractValgrindMessage {
+ protected String file;
+ protected int line;
+
+ public ValgrindStackFrame(IValgrindMessage message, String text, ILaunch launch, String file, int line) {
+ super(message, text, launch);
+ this.file = file;
+ this.line = line;
+ }
+
+ public ILaunch getLaunch() {
+ return launch;
+ }
+
+ public String getFile() {
+ return file;
+ }
+
+ public int getLine() {
+ return line;
+ }
+
+}
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/messages.properties b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/messages.properties
new file mode 100644
index 0000000000..5495d351ad
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/internal/valgrind/core/messages.properties
@@ -0,0 +1,5 @@
+AbstractValgrindTextParser.Parsing_output_failed=Parsing output failed on line: {0}
+ValgrindPreferencePage.Binary_path=Location of Valgrind binary:
+ValgrindPreferencePage.Browse_button=&Browse...
+ValgrindPreferencePage.Error_invalid_message=The binary path specified is not valid. Please choose a valid binary.
+ValgrindPreferencePage.Error_invalid_title=Invalid Binary Path
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/IValgrindMessage.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/IValgrindMessage.java
new file mode 100644
index 0000000000..088db324c3
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/IValgrindMessage.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.valgrind.core;
+
+import org.eclipse.debug.core.ILaunch;
+
+public interface IValgrindMessage {
+
+ public abstract IValgrindMessage getParent();
+
+ public abstract IValgrindMessage[] getChildren();
+
+ public abstract String getText();
+
+ public abstract ILaunch getLaunch();
+
+ public abstract void addChild(IValgrindMessage child);
+
+} \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/ValgrindParserUtils.java b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/ValgrindParserUtils.java
new file mode 100644
index 0000000000..62d1afdb44
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.core/src/org/eclipse/linuxtools/valgrind/core/ValgrindParserUtils.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Elliott Baron <ebaron@redhat.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.valgrind.core;
+
+import java.io.IOException;
+
+import org.eclipse.linuxtools.internal.valgrind.core.Messages;
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Class containing convenient methods common to Valgrind
+ * parsers.
+ */
+public final class ValgrindParserUtils {
+ private static final String DOT = "."; //$NON-NLS-1$
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+ /**
+ * Retrieves ARGUMENT portion of [OPTION][DELIMITER][ARGUMENT]
+ * where ARGUMENT is a Long
+ * @param line - the line to parse
+ * @param delim - the DELIMITER to separate on
+ * @return Long value of ARGUMENT
+ * @throws IOException
+ */
+ public static Long parseLongValue(String line, String delim)
+ throws IOException {
+ Long result = null;
+ String[] parts = line.split(delim, 2);
+ if (parts.length > 1 && isNumber(parts[1])) {
+ result = Long.parseLong(parts[1]);
+ }
+ else {
+ fail(line);
+ }
+ return result;
+ }
+
+ /**
+ * Retrieves ARGUMENT portion of [OPTION][DELIMITER][ARGUMENT]
+ * where ARGUMENT is a String
+ * @param line - the line to parse
+ * @param delim - the DELIMITER to separate fields
+ * @return String value of ARGUMENT
+ * @throws IOException
+ */
+ public static String parseStrValue(String line, String delim)
+ throws IOException {
+ String result = null;
+ String[] parts = line.split(delim, 2);
+ if (parts.length > 1) {
+ result = parts[1];
+ }
+ else {
+ fail(line);
+ }
+ return result;
+ }
+
+ /**
+ * Retrieves PID from filename with format [PREFIX][PID].[EXTENSION]
+ * @param filename - the file name to parse
+ * @param prefix - the prefix of the filename up to the PID
+ * @return - the PID portion of the filename as an Integer
+ * @throws IOException
+ */
+ public static Integer parsePID(String filename, String prefix) throws IOException {
+ String pidstr = filename.substring(prefix.length(), filename.lastIndexOf(DOT));
+ if (isNumber(pidstr)) {
+ return new Integer(pidstr);
+ }
+ else {
+ throw new IOException("Cannot parse PID from output file"); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Throws an IOException indicating parsing failed on a given line
+ * @param line - line that parsing failed
+ * @throws IOException
+ */
+ public static void fail(String line) throws IOException {
+ throw new IOException(NLS.bind(Messages.getString("AbstractValgrindTextParser.Parsing_output_failed"), line)); //$NON-NLS-1$
+ }
+
+ /**
+ * Determines if argument is a number
+ * @param string - argument to test
+ * @return - true if argument is a number
+ */
+ public static boolean isNumber(String string) {
+ boolean result = true;
+ char[] chars = string.toCharArray();
+ for (int i = 0; i < chars.length; i++) {
+ if (!Character.isDigit(chars[i])) {
+ result = false;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Parses string ending with format ([FILE]:[LINE])
+ * Assumes syntax is: "\(.*:[0-9]+\)$"
+ * @param line - String with the above criteria
+ * @return a tuple of [String filename, Integer line]
+ */
+ public static Object[] parseFilename(String line) {
+ String filename = null;
+ int lineNo = 0;
+
+ int ix = line.lastIndexOf("("); //$NON-NLS-1$
+ if (ix >= 0) {
+ String part = line.substring(ix, line.length());
+ part = part.substring(1, part.length() - 1); // remove leading and trailing parentheses
+ if ((ix = part.lastIndexOf(":")) >= 0) { //$NON-NLS-1$
+ String strLineNo = part.substring(ix + 1);
+ if (isNumber(strLineNo)) {
+ lineNo = Integer.parseInt(strLineNo);
+ filename = part.substring(0, ix);
+ }
+ }
+ else {
+ // check for "in " token (lib, with symbol)
+ part = part.replaceFirst("^in ", EMPTY_STRING); //$NON-NLS-1$
+ // check for "within " token (lib, without symbol)
+ part = part.replaceFirst("^within ", EMPTY_STRING); //$NON-NLS-1$
+ filename = part; // library, no line number
+ }
+ }
+
+ return new Object[] { filename, lineNo };
+ }
+
+} \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.doc/.classpath b/valgrind/org.eclipse.linuxtools.valgrind.doc/.classpath
new file mode 100644
index 0000000000..74e6841f3b
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.doc/.classpath
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+</classpath>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.doc/.project b/valgrind/org.eclipse.linuxtools.valgrind.doc/.project
new file mode 100644
index 0000000000..40f5baf656
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.doc/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.valgrind.doc</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.doc/.settings/org.eclipse.jdt.core.prefs b/valgrind/org.eclipse.linuxtools.valgrind.doc/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..0d476152af
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.doc/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Apr 14 09:48:05 EDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.doc/ChangeLog b/valgrind/org.eclipse.linuxtools.valgrind.doc/ChangeLog
new file mode 100644
index 0000000000..ad39c5d245
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.doc/ChangeLog
@@ -0,0 +1,152 @@
+2010-10-21 Alexander Kurtakov <akurtako@redhat.com>
+
+ * src/org/eclipse/linuxtools/internal/valgrind/doc/anttask/MediaWikiImageFetcher.java: Removed.
+ * src/org/eclipse/linuxtools/internal/valgrind/doc/anttask/tasks.properties: Removed.
+ * userguide/General-Usage.html: Removed.
+ * userguide/images/CachegrindOptions.png: Removed.
+ * userguide/images/CachegrindOutput.png: Removed.
+ * userguide/images/Exportbuttonvalgrindview.gif: Removed.
+ * userguide/images/exportbuttonvalgrindview.png: Removed.
+ * userguide/images/hierarchy.gif: Removed.
+ * userguide/images/MassifChartSelect.png: Removed.
+ * userguide/images/MassifOptions.png: Removed.
+ * userguide/images/MassifTable.png: Removed.
+ * userguide/images/MassifTree.png: Removed.
+ * userguide/images/MemcheckOptions.png: Removed.
+ * userguide/images/MemcheckOutput.png: Removed.
+ * userguide/images/Screenshot-ProfileConfigurations-valgrind-options-tab.png: Removed.
+ * userguide/images/Screenshot-ProfileConfigurations.png: Removed.
+ * userguide/images/Screenshot-Suppressions.png: Removed.
+ * userguide/images/Shortcut.png: Removed.
+ * userguide/images/SwitchCachegrind.png: Removed.
+ * userguide/images/SwitchCoreTool.png: Removed.
+ * userguide/images/SwitchMassif.png: Removed.
+ * userguide/images/Thread.gif: Removed.
+ * userguide/images/ValgrindExportWizard.png: Removed.
+ * userguide/images/ValgrindSegfault.png: Removed.
+ * userguide/Installing.html: Removed.
+ * userguide/Special-Cases.html: Removed.
+ * userguide/Updating-This-Document.html: Removed.
+ * userguide/Using-Cachegrind.html: Removed.
+ * userguide/Using-Massif.html: Removed.
+ * userguide/Using-Memcheck.html: Removed.
+ * userguide/Valgrind\ Reference-toc.xml: Removed.
+ * userguide/Valgrind\ Reference.html: Removed.
+ * userguide/Valgrind\ Reference.xml: Removed.
+ * images/home.gif: New file.
+ * images/next.gif: New file.
+ * images/prev.gif: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/General-Usage.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/CachegrindOptions.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/CachegrindOutput.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Exportbuttonvalgrindview.gif: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Hierarchy.gif: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/MassifChartSelect.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/MassifOptions.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/MassifTable.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/MassifTree.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/MemcheckOptions.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/MemcheckOutput.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Screenshot-ProfileConfigurations-valgrind-options-tab.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Screenshot-ProfileConfigurations.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Screenshot-Suppressions.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Shortcut.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/SwitchCachegrind.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/SwitchCoreTool.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/SwitchMassif.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/Thread.gif: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/ValgrindExportWizard.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/images/ValgrindSegfault.png: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/Installing.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/Special-Cases.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/Updating-This-Document.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/User-Guide.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/Using-Cachegrind.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/Using-Massif.html: New file.
+ * Linux_Tools_Project/Valgrind/User_Guide/Using-Memcheck.html: New file.
+ * toc-doc.xml: New file.
+ * .classpath: No longer java project.
+ * .project: Likewise.
+ * build-helper.xml: Use mediawiki-to-eclipse-help task directly.
+ * build.properties: New files to ship.
+ * META-INF/MANIFEST.MF: Doesn't need ant bundle.
+ * plugin.xml: Fix toc names.
+ * toc.xml: Regenerated.
+ * toc-doc.xml: New primary toc.
+
+2010-07-26 Elliott Baron <ebaron@fedoraproject.org>
+
+ * META-INF/MANIFEST.MF: Bump version to 0.7.0.
+
+2010-04-19 Elliott Baron <ebaron@fedoraproject.org>
+
+ * userguide/General-Usage.html: Regenerated to include Mac OSX info.
+ * userguide/Valgrind\ Reference-toc.xml: Likewise.
+ * userguide/Valgrind\ Reference.xml: Likewise.
+
+2009-08-07 Andrew Overholt <overholt@redhat.com>
+
+ Bug #285861
+
+ * plugin.properties: Change Provider to Eclipse.
+
+2009-06-26 Elliott Baron <ebaron@redhat.com>
+
+ * userguide/General-Usage.html: New file.
+ * userguide/images/Exportbuttonvalgrindview.gif: New file.
+ * userguide/Installing.html: New file.
+ * userguide/Special-Cases.html: New file.
+ * userguide/Using-Cachegrind.html: New file.
+ * userguide/Using-Massif.html: New file.
+ * userguide/Using-Memcheck.html: New file.
+ * userguide/Updating-This-Document.html: Regenerated documentation.
+ * userguide/Valgrind\ Reference-toc.xml: Likewise.
+ * userguide/Valgrind\ Reference.html: Likewise.
+ * userguide/Valgrind\ Reference.xml: Likewise.
+
+2009-06-18 Elliott Baron <ebaron@redhat.com>
+
+ * build-helper.xml: Added call to wikitext-to-docbook target.
+ * META-INF/MANIFEST.MF: New dep for Eclipse help.
+ * plugin.xml: New extension for Eclipse help.
+ * userguide/images/Screenshot-ProfileConfigurations.png: Retook screenshot.
+ * userguide/Valgrind Reference.xml: Generated docbook.
+
+2009-05-28 Elliott Baron <ebaron@redhat.com>
+
+ * .classpath: New file.
+ * .project: New file.
+ * .settings/org.eclipse.jdt.core.prefs: New file.
+ * about.html: New file.
+ * build-helper.xml: New file.
+ * build.properties: New file.
+ * doc/notices.html: New file.
+ * extract-markup.xsl: New file.
+ * META-INF/MANIFEST.MF: New file.
+ * plugin.properties: New file.
+ * plugin.xml: New file.
+ * src/org/eclipse/linuxtools/internal/valgrind/doc/anttask/MediaWikiImageFetcher.java: New file.
+ * src/org/eclipse/linuxtools/internal/valgrind/doc/anttask/tasks.properties: New file.
+ * toc.xml: New file.
+ * userguide/images/CachegrindOptions.png: New file.
+ * userguide/images/CachegrindOutput.png: New file.
+ * userguide/images/exportbuttonvalgrindview.png: New file.
+ * userguide/images/MassifChartSelect.png: New file.
+ * userguide/images/MassifOptions.png: New file.
+ * userguide/images/MassifTable.png: New file.
+ * userguide/images/MassifTree.png: New file.
+ * userguide/images/MemcheckOptions.png: New file.
+ * userguide/images/MemcheckOutput.png: New file.
+ * userguide/images/Screenshot-ProfileConfigurations-valgrind-options-tab.png: New file.
+ * userguide/images/Screenshot-ProfileConfigurations.png: New file.
+ * userguide/images/Screenshot-Suppressions.png: New file.
+ * userguide/images/Shortcut.png: New file.
+ * userguide/images/SwitchCachegrind.png: New file.
+ * userguide/images/SwitchCoreTool.png: New file.
+ * userguide/images/SwitchMassif.png: New file.
+ * userguide/images/Thread.gif: New file.
+ * userguide/images/ValgrindExportWizard.png: New file.
+ * userguide/images/ValgrindSegfault.png: New file.
+ * userguide/Updating-This-Document.html: New file.
+ * userguide/Valgrind\ Reference-toc.xml: New file.
+ * userguide/Valgrind\ Reference.html: New file. \ No newline at end of file
diff --git a/valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/General-Usage.html b/valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/General-Usage.html
new file mode 100644
index 0000000000..012632df09
--- /dev/null
+++ b/valgrind/org.eclipse.linuxtools.valgrind.doc/Linux_Tools_Project/Valgrind/User_Guide/General-Usage.html
@@ -0,0 +1,214 @@
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <title>Valgrind User Guide - General Usage</title>
+ <link type="text/css" rel="stylesheet" href="../../../book.css"/>
+ </head>
+ <body>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <th style="width: 100%" align="center" colspan="3">General Usage</th>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left">
+ <a href="Installing.html" title="Installing">
+ <img alt="Previous" border="0" src="../../../images/prev.gif"/>
+ </a>
+ </td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right">
+ <a href="Using-Memcheck.html" title="Using Memcheck">
+ <img alt="Next" border="0" src="../../../images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>