- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在分析遗留应用程序中的错误,同时清理并改进它。我有一些堆栈跟踪被记录到数据库中,但是它存储的量有一个限制 (VARCHAR2(1000)),并且错误发生在 System.Data 的深处......
at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
我不关心所有这些东西——我只需要找到产生错误的 C# 代码和过程。因此,我可以找出根本原因,重构代码以提高质量,并在找到最容易出错的代码时改进每个模块。
在我开始写东西之前,有人有什么东西可以将堆栈跟踪限制到某些程序集,这样我就可以找到根本原因吗?还是堆栈跟踪解析器或现成的东西,我可以用它在记录错误之前去除我不感兴趣的东西?
最佳答案
您很幸运 - 已经有人阅读了您的帖子!我想我已经通过将我的错误重新格式化成这样的东西来避免阅读至少一本史蒂文金小说的值(value):
(
不尊重我的制表位所以它在现实生活中看起来更好)System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
FUNCTION FILE LINE
CoCreateInstance (no .PDB)
CreateWithoutLicense (no .PDB)
CreateWithLicense (no .PDB)
CreateInstanceCore (no .PDB)
CreateInstance (no .PDB)
GetOcxCreate (no .PDB)
TransitionUpTo (no .PDB)
CreateHandle (no .PDB)
CreateControl (no .PDB)
CreateControl (no .PDB)
EndInit (no .PDB)
InitializeComponent frmGetSig.Designer.vb 187
ctor frmGetSig.vb 264
btnSign_Click ucSignCapture_v2.vb 306使用这段代码:
Public Shared Function ReduceError(ByVal stExceptionToString As String) As String
Try
''// split into message and stack trace items
Dim stMainSplit() As String = Split(stExceptionToString, vbCrLf & " at ")
If UBound(stMainSplit) = 0 Then
Return stExceptionToString
End If
''// add the message
Dim stResults As String = stMainSplit(0) & vbCrLf
Dim bLastWasInner As Boolean
''// Headings, if there is a stack trace
If UBound(stMainSplit) > 0 Then
stResults &= "FUNCTION" & vbTab & "FILE" & vbTab & "LINE" & vbCrLf
End If
''// reduce the stack trace
For i As Integer = 1 To UBound(stMainSplit)
Dim st As String = stMainSplit(i)
''// skip the line following inner exception in stack trace
If Not bLastWasInner Then
''// split the sub from line # info
Dim stln() As String = Split(st, ")")
If UBound(stln) = 1 Then
''// first put the sub on there
Dim stsub As String = Mid(stln(0), 1, InStrRev(stln(0), "(") - 1)
If InStr(stsub, ".") <> 0 Then
stsub = Mid(stsub, InStrRev(stsub, ".") + 1)
End If
stResults &= stsub & vbTab
''// Now if there is file/line # info, add that.
Dim stFile As String = "(no .PDB)"
If 0 <> InStr(stln(1), "\") Then '' " //good grief SOF learn vb ;-)
stFile = Replace(Mid(stln(1), InStrRev(stln(1), "\") + 1), ":line ", vbTab) '' "
''// take off CR and 'inner exception..." text
If InStr(stFile, vbCrLf) > 1 Then
stFile = Mid(stFile, 1, InStr(stFile, vbCrLf) - 1)
End If
End If
stResults &= stFile & vbCrLf
Else
stResults &= "Line split by ) has no (" & vbTab & vbCrLf
End If
End If
If 0 <> InStr(st, "End of inner exception stack trace") Then
bLastWasInner = True
Else
bLastWasInner = False
End If
Next
Return stResults
Catch ex As Exception
''// might want to return orig error here as well..
Return "Error summarizing routine as error'd: " & ex.ToString
End Try
End Function它放入了我在文本框中使用的选项卡,如果需要,可以很容易地更改;如果您不关心 system.data 行,您总是可以将它们排除在外。为 .net 1.1 编写,应该很好地转换为 c#。
关于.net - 有意义地精简异常/Environment.StackTrace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6472314/
我正在尝试在elisp中实现我自己的深层复制例程(因为类似(setq newlist oldlist)的东西似乎只能提供浅拷贝,而(copy-sequence newlist oldlist)仍然使n
您好,我正在开发客户端站点的交互性,我觉得我的按钮功能的 JS 和 carousel.fader 窗口的构建有点多余。有人可以看一下这段代码,看看是否可以进一步简化,以减少页面加载时间,实际上只是为了
我一直在优化我的网站,但阻碍我的一个问题是我不使用的所有 jQuery 函数。我唯一使用的是平滑的页面滚动器。这似乎是在浪费下载时间。 我的问题是:是否有任何脚本或程序可以删除我不需要的 jQuery
我在很大程度上不太擅长 javascript/jquery,但我知道如何让一些软件工作。但我的问题是我有一大堆 $("body").on("click", "button#thisid", funct
我的 Eclipse 3.5.2 (Ubuntu 10.10) 安装中安装了多个插件(Apatana、SVN、Pydev、Zend Debugger、PHP)。自从几年前我第一次使用 Eclipse
这个问题在这里已经有了答案: std::forward_list and std::forward_list::push_back (5 个答案) 关闭 5 年前。 我偶然发现了这段代码并试图理解它
我有一个非常简单的 jQuery 脚本,当输入元素获得焦点时,它会将宽度扩展到 250px(使用 focusin() 事件),当失去焦点时,它会缩小使用 focusout() 事件回到 200px。但
我一直在研究为什么 WYSIWYG 编辑器不利于内容创建。给出的最常见原因是它们输出不正确的 html。但是如果我使用功能减少的编辑器怎么办? 我的要求只是斜体、使文本加粗、创建有序/无序列表和(可能
我一直在与 MVVM 模式作斗争,并且在尝试为小型/中型项目创建实用设计时遇到了许多挑战。其中一项挑战是弄清楚如何在不创建大量重复且难以维护的代码的情况下获得与此模式分离的好处。 我目前的策略是创建“
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
从MVC模式和Symfony2的角度来看,我可以瘦身吗? Controller 代码 一点点,移开一些持久化逻辑 ?例如,给定一个标准的新 Action ,如下所示: public function
我打算使用适用于 Android 的 ARM DS5 Streamline。 要将 Streamline 与您的 Android 目标一起使用,您必须构建 Gator 驱动程序 gator.ko 并将
我正在使用 LESS ( http://lesscss.org ),它说 ... JavaScript evaluation JavaScript expressions can be evaluat
我一直在研究使用 EventMachine 为一些工作做后台处理的可能性。在 Sinatra 中,这似乎工作得很好,但 Rails 3 似乎在呈现 View 之前执行所有滴答。 当我在瘦网络服务器下运
if SOMETHING charge = Object (this object has a method ID) end DiffObject.update_attributes(specif
我是一名优秀的程序员,十分优秀!