Do Stack Traces Help Developers Fix Bugs?

730 views

Published on

This is a presentation I gave at MSR (www.msrconf.org) in Cape Town, South Africa.

Published in: Technology
  • Be the first to comment

Do Stack Traces Help Developers Fix Bugs?

  1. 1. at java.io.DataInputStream.readUnsignedShor at java.io.DataInputStream.readUTF(Unknown at java.io.DataInputStream.readUTF(Unknown at org.eclipse.core.internal.dtree.DataTree at org.eclipse.core.internal.dtree.DataTree at org.eclipse.core.internal.watson.Element Do Stack Traces Help at at at at at at org.eclipse.core.internal.watson.Element org.eclipse.core.internal.watson.Element org.eclipse.core.internal.watson.Element org.eclipse.core.internal.resources.Work org.eclipse.core.internal.resources.Work org.eclipse.core.internal.resources.Save Developers Fix Bugs? at org.eclipse.core.internal.resources.Save at org.eclipse.core.internal.resources.Save at org.eclipse.core.internal.resources.Work at org.eclipse.core.internal.resources.Work at org.eclipse.core.resources.ResourcesPlug at org.eclipse.core.internal.plugins.Plugin at org.eclipse.core.internal.runtime.Intern at org.eclipse.core.internal.plugins.Plugin at org.eclipse.core.internal.plugins.Plugin at org.eclipse.core.internal.plugins.Plugin Adrian Schröter at at org.eclipse.core.internal.plugins.Plugin org.eclipse.core.internal.boot.Delegatin University of Victoria at at org.eclipse.core.internal.boot.Delegatin org.eclipse.core.internal.boot.Delegatin at org.eclipse.core.internal.boot.Delegatin at org.eclipse.core.internal.boot.Delegatin at org.eclipse.core.internal.boot.Delegatin at java.lang.ClassLoader.loadClass (Unknown Nicolas Bettenburg at java.lang.ClassLoader.loadClassInternal at java.lang.Class.newInstance0 (Native Met Queens University at java.lang.Class.newInstance (Unknown Sou at org.eclipse.core.internal.plugins.Plugin at org.eclipse.core.internal.plugins.Plugin at org.eclipse.core.internal.plugins.Config at org.eclipse.core.internal.runtime.Intern Rahul Premraj at java.lang.reflect.Method.invoke(Native M at org.eclipse.core.internal.boot.InternalB VU University Amsterdam at org.eclipse.core.internal.boot.InternalB at org.eclipse.core.boot.BootLoader.run (Bo at java.lang.reflect.Method.invoke (Native
  2. 2. java.io.EOFException at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at org.eclipse.core.internal.dtree.DataTreeReader.readNode (DataTreeReader.java:57) at org.eclipse.core.internal.dtree.DataTreeReader.readTree (DataTreeReader.java:126) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDelta (ElementTreeReaderImpl_1.java:44) at org.eclipse.core.internal.watson.ElementTreeReader.readDelta (ElementTreeReader.java:92) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDeltaChain (ElementTreeReaderImpl_1.java:89) at org.eclipse.core.internal.watson.ElementTreeReader.readDeltaChain (ElementTreeReader.java:102) at org.eclipse.core.internal.resources.WorkspaceTreeReader.readTrees (WorkspaceTreeReader.java:107) at org.eclipse.core.internal.resources.WorkspaceTreeReader.readTree (WorkspaceTreeReader.java:44) at org.eclipse.core.internal.resources.SaveManager.restoreTree (SaveManager.java:704) at org.eclipse.core.internal.resources.SaveManager.restore (SaveManager.java:453) at org.eclipse.core.internal.resources.SaveManager.startup (SaveManager.java:937) at org.eclipse.core.internal.resources.Workspace.startup (Workspace.java:1487) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102) at org.eclipse.core.internal.runtime.InternalPlatform.loaderGetRunnable (InternalPlatform.java:449) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.internal.boot.InternalBootLoader.getRunnable (InternalBootLoader.java:436) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:735) at org.eclipse.core.boot.BootLoader.run (BootLoader.java:462) at java.lang.reflect.Method.invoke (Native Method) at org.eclipse.core.launcher.Main.basicRun (Main.java:200) at org.eclipse.core.launcher.Main.run (Main.java:643) at org.eclipse.core.launcher.Main.main (Main.java:476) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) A stack trace at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102) at org.eclipse.core.internal.runtime.InternalPlatform.loaderGetRunnable (InternalPlatform.java:449) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.internal.boot.InternalBootLoader.getRunnable (InternalBootLoader.java:436) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:735) at org.eclipse.core.boot.BootLoader.run (BootLoader.java:462) at java.lang.reflect.Method.invoke (Native Method) at org.eclipse.core.launcher.Main.basicRun (Main.java:200) from an at org.eclipse.core.launcher.Main.run (Main.java:643) at org.eclipse.core.launcher.Main.main (Main.java:476) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) Eclipse bug at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) report at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102) at org.eclipse.core.internal.runtime.InternalPlatform.loaderGetRunnable (InternalPlatform.java:449) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.internal.boot.InternalBootLoader.getRunnable (InternalBootLoader.java:436) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:735) at org.eclipse.core.boot.BootLoader.run (BootLoader.java:462) at java.lang.reflect.Method.invoke (Native Method) at org.eclipse.core.launcher.Main.basicRun (Main.java:200) at org.eclipse.core.launcher.Main.run (Main.java:643) at org.eclipse.core.launcher.Main.main (Main.java:476) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102) at org.eclipse.core.internal.runtime.InternalPlatform.loaderGetRunnable (InternalPlatform.java:449) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.internal.boot.InternalBootLoader.getRunnable (InternalBootLoader.java:436) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:735) at org.eclipse.core.boot.BootLoader.run (BootLoader.java:462) at java.lang.reflect.Method.invoke (Native Method) at org.eclipse.core.launcher.Main.basicRun (Main.java:200) at org.eclipse.core.launcher.Main.run (Main.java:643) at org.eclipse.core.launcher.Main.main (Main.java:476) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102) at org.eclipse.core.internal.runtime.InternalPlatform.loaderGetRunnable (InternalPlatform.java:449) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.internal.boot.InternalBootLoader.getRunnable (InternalBootLoader.java:436) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:735) at org.eclipse.core.boot.BootLoader.run (BootLoader.java:462) at java.lang.reflect.Method.invoke (Native Method) at org.eclipse.core.launcher.Main.basicRun (Main.java:200) at org.eclipse.core.launcher.Main.run (Main.java:643) at org.eclipse.core.launcher.Main.main (Main.java:476) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182)
  3. 3. java.io.EOFException at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at org.eclipse.core.internal.dtree.DataTreeReader.readNode (DataTreeReader.java:57) at org.eclipse.core.internal.dtree.DataTreeReader.readTree (DataTreeReader.java:126) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDelta (ElementTreeReaderImpl_1.java:44) at org.eclipse.core.internal.watson.ElementTreeReader.readDelta (ElementTreeReader.java:92)
  4. 4. java.io.EOFException at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) Is there empirical evidence at java.io.DataInputStream.readUTF(Unknown Source) at org.eclipse.core.internal.dtree.DataTreeReader.readNode (DataTreeReader.java:57) showing their helpfulness? at org.eclipse.core.internal.dtree.DataTreeReader.readTree (DataTreeReader.java:126) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDelta (ElementTreeReaderImpl_1.java:44) at org.eclipse.core.internal.watson.ElementTreeReader.readDelta (ElementTreeReader.java:92)
  5. 5. Overview 1 2 Are Bugs Fixed Which Part of the in Methods in Stack Trace is Stack Traces? Most Helpful? 3 4 Are multiple Do Stack Traces Stack Trace better Help Fix Bugs Faster? than one?
  6. 6. Are Bugs Fixed in Methods in Stack Traces? java.io.EOFException at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at org.eclipse.core.internal.dtree.DataTreeReader.readNode (DataTreeReader.java:57) at org.eclipse.core.internal.dtree.DataTreeReader.readTree (DataTreeReader.java:126) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDelta (ElementTreeReaderImpl_1.java:44) at org.eclipse.core.internal.watson.ElementTreeReader.readDelta (ElementTreeReader.java:92) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDeltaChain (ElementTreeReaderImpl_1.java:89) at org.eclipse.core.internal.watson.ElementTreeReader.readDeltaChain (ElementTreeReader.java:102) at org.eclipse.core.internal.resources.WorkspaceTreeReader.readTrees (WorkspaceTreeReader.java:107) at org.eclipse.core.internal.resources.WorkspaceTreeReader.readTree (WorkspaceTreeReader.java:44) at org.eclipse.core.internal.resources.SaveManager.restoreTree (SaveManager.java:704) at org.eclipse.core.internal.resources.SaveManager.restore (SaveManager.java:453) at org.eclipse.core.internal.resources.SaveManager.startup (SaveManager.java:937) at org.eclipse.core.internal.resources.Workspace.startup (Workspace.java:1487) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102)
  7. 7. Are Bugs Fixed in MEthods in Stack Traces? Linking Fixes to Changes Bugzilla DB CVS
  8. 8. Do Stack Traces Help Developers Fix Bugs? #bugs fixed with traces 8580 #linked 3940 #with fix frame 2321 0 2,250 4,500 6,750 9,000
  9. 9. Which Part of the Stack Trace is Most Helpful? java.io.EOFException at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at org.eclipse.core.internal.dtree.DataTreeReader.readNode (DataTreeReader.java:57) at org.eclipse.core.internal.dtree.DataTreeReader.readTree (DataTreeReader.java:126) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDelta (ElementTreeReaderImpl_1.java:44) at org.eclipse.core.internal.watson.ElementTreeReader.readDelta (ElementTreeReader.java:92) at org.eclipse.core.internal.watson.ElementTreeReaderImpl_1.readDeltaChain (ElementTreeReaderImpl_1.java:89) at org.eclipse.core.internal.watson.ElementTreeReader.readDeltaChain (ElementTreeReader.java:102) at org.eclipse.core.internal.resources.WorkspaceTreeReader.readTrees (WorkspaceTreeReader.java:107) at org.eclipse.core.internal.resources.WorkspaceTreeReader.readTree (WorkspaceTreeReader.java:44) at org.eclipse.core.internal.resources.SaveManager.restoreTree (SaveManager.java:704) at org.eclipse.core.internal.resources.SaveManager.restore (SaveManager.java:453) at org.eclipse.core.internal.resources.SaveManager.startup (SaveManager.java:937) at org.eclipse.core.internal.resources.Workspace.startup (Workspace.java:1487) at org.eclipse.core.internal.resources.Workspace.open (Workspace.java:1279) at org.eclipse.core.resources.ResourcesPlugin.startup (ResourcesPlugin.java:201) at org.eclipse.core.internal.plugins.PluginDescriptor$1.run (PluginDescriptor.java:690) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:802) at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation (PluginDescriptor.java:702) at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation (PluginDescriptor.java:182) at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin (PluginClassLoader.java:58) at org.eclipse.core.internal.plugins.PluginClassLoader.findClassParentsSelf (PluginClassLoader.java:136) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:750) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0 (DelegatingURLClassLoader.java:744) at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass (DelegatingURLClassLoader.java:70) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites (DelegatingURLClassLoader.java:429) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:758) at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass (DelegatingURLClassLoader.java:730) at java.lang.ClassLoader.loadClass (Unknown Source) at java.lang.ClassLoader.loadClassInternal (Unknown Source) at java.lang.Class.newInstance0 (Native Method) at java.lang.Class.newInstance (Unknown Source) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:134) at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension (PluginDescriptor.java:163) at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:102)
  10. 10. Which Part of the Stack Trace is Most Helpful? #with fix frame 2321 top-1 40% top-6 60% top-10 90% 0 750 1,500 2,250 3,000
  11. 11. Are multiple Stack Trace better than one? Fixed Bugs Open Bugs 5531 Single Stack Trace 3210 3049 Multiple Stack Traces 1157 0 1,500 3,000 4,500 6,000
  12. 12. Are multiple Stack Trace better than one? Fixed Bugs Open Bugs 5531 Single Stack Trace 63% vs. 72% fix rate 3210 3049 Multiple Stack Traces 1157 0 1,500 3,000 4,500 6,000
  13. 13. Do Stack Traces Help Fix Bugs Faster? with Fix Frame without Fix Frame Median Life Time Average Life Time 0 10 20 30 40
  14. 14. It Pays to Go the Extra Mile! • Higher chance of getting your bugs fixed
  15. 15. It Pays to Go the Extra Mile! • Higher chance of getting your bugs fixed • Your bug gets fixed sooner
  16. 16. It Pays to Go the Extra Mile! • Higher chance of getting your bugs fixed • Your bug gets fixed sooner • Developers know where to fix your bug

×