问题:具有大量反射的极其复杂和令人生畏的代码。代码库并不是我见过的最大的代码库,但由于需求量大和融资不足,这是一个烂摊子。我们有整个部门(QA,Prod支持等)由于缺乏资金而缺席。我们的测试覆盖率可能平均为60%,并且集成测试并未真正正确地组装,以实现可靠的实际跟踪。我们也没有设计文件。因此,代码往往会打败新员工。
目标:创建详细说明主要执行路径的序列图。
方法:我正在考虑的方法是转储最小数据集的从干线到船尾的堆栈跟踪。然后使用它来构建图表。我可以使用Linux命令行文本处理工具解析它,因为我可以使用cygwin。
问题:如何实现这一目标?在我到目前为止看到的大多数情况下,某些内容会截断堆栈跟踪。 : - /
答案 0 :(得分:0)
为什么不为此目的使用调试器。 Eclipse和IntelliJ有很好的调试工具。使用断点或调试日志,很容易看到执行路径。堆栈跟踪被截断,因为截断的行是多余的。换句话说,它们在本质上是重复的,并且已经在您可以看到的堆栈跟踪中列出/打印。例如,当您重复调用某个方法并且抛出异常时,您的堆栈跟踪只包含一个最新的实例,其他实例都被截断。这就是为什么你会看到45... more
。
您还可以使用ExceptionUtils
中org.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>