如何才能获得最长的堆栈跟踪?

时间:2018-02-07 17:01:45

标签: java stack-trace

问题:具有大量反射的极其复杂和令人生畏的代码。代码库并不是我见过的最大的代码库,但由于需求量大和融资不足,这是一个烂摊子。我们有整个部门(QA,Prod支持等)由于缺乏资金而缺席。我们的测试覆盖率可能平均为60%,并且集成测试并未真正正确地组装,以实现可靠的实际跟踪。我们也没有设计文件。因此,代码往往会打败新员工。

目标:创建详细说明主要执行路径的序列图。

方法:我正在考虑的方法是转储最小数据集的从干线到船尾的堆栈跟踪。然后使用它来构建图表。我可以使用Linux命令行文本处理工具解析它,因为我可以使用cygwin。

问题:如何实现这一目标?在我到目前为止看到的大多数情况下,某些内容会截断堆栈跟踪。 : - /

1 个答案:

答案 0 :(得分:0)

为什么不为此目的使用调试器。 Eclipse和IntelliJ有很好的调试工具。使用断点或调试日志,很容易看到执行路径。堆栈跟踪被截断,因为截断的行是多余的。换句话说,它们在本质上是重复的,并且已经在您可以看到的堆栈跟踪中列出/打印。例如,当您重复调用某个方法并且抛出异常时,您的堆栈跟踪只包含一个最新的实例,其他实例都被截断。这就是为什么你会看到45... more

之类的东西

您还可以使用ExceptionUtilsorg.apache.commons更具可读性的printRootCauseStackTrace。 具体来说是log4j2。 请参阅:apache common

要使用<Grid> <xaml:CanvasAnimatedControl x:Name="AnimatedControl" CreateResources="AnimatedControl_OnCreateResources" Draw="AnimatedControl_OnDraw"/> <StackPanel HorizontalAlignment="Left" VerticalAlignment="Bottom"> <TextBlock Text="Source Color 2" FontSize="16" Foreground="White" TextAlignment="Center"/> <ColorSpectrum Width="128" Height="128" ColorChanged="ColorSpectrum_OnColorChanged2"/> </StackPanel> <StackPanel HorizontalAlignment="Right" VerticalAlignment="Bottom"> <TextBlock Text="Replace Color 2" FontSize="16" Foreground="White" TextAlignment="Center"/> <ColorSpectrum Width="128" Height="128" ColorChanged="ColorSpectrum_OnColorChanged3"/> </StackPanel> <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top"> <TextBlock Text="Source Color 1" FontSize="16" Foreground="White" TextAlignment="Center"/> <ColorSpectrum Width="128" Height="128" ColorChanged="ColorSpectrum_OnColorChanged"/> </StackPanel> <StackPanel HorizontalAlignment="Right" VerticalAlignment="Top"> <TextBlock Text="Replace Color 1" FontSize="16" Foreground="White" TextAlignment="Center"/> <ColorSpectrum Width="128" Height="128" ColorChanged="ColorSpectrum_OnColorChanged1"/> </StackPanel> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <Slider Width="512" ValueChanged="RangeBase_OnValueChanged" VerticalAlignment="Center"/> <Slider Width="512" ValueChanged="RangeBase1_OnValueChanged" VerticalAlignment="Center"/> </StackPanel> </Grid>

进行完整的审核和理解结构和流程