我的软件在没有调试器的计算机上产生以下错误。我只被发送了错误消息,而我能够理解的是,当一个函数在datagridview上调用get项时,索引太大了。此函数也已被定时器调用...有没有办法找出什么数据网格?什么功能?或者什么可以帮助我找到原因?该软件被混淆了..
************** Testo dell'eccezione **************
System.ArgumentOutOfRangeException: Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione della raccolta.
Nome parametro: index
in System.Collections.ArrayList.get_Item(Int32 index)
in System.Windows.Forms.DataGridViewRowCollection.SharedRow(Int32 rowIndex)
in System.Windows.Forms.DataGridViewRowCollection.get_Item(Int32 index)
in bU?Fr_;Iv^$tpm3^/!sU0<HH".(DataGridViewRowCollection , Int32 )
in bU?Fr_;Iv^$tpm3^/!sU0<HH".(Int32 )
in bU?Fr_;Iv^$tpm3^/!sU0<HH".(Object , EventArgs )
in System.Windows.Forms.Timer.OnTick(EventArgs e)
in System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
答案 0 :(得分:1)
不,如果没有向应用程序添加日志记录,就无法获取实例信息。您可以记录崩溃时正在使用的DataGrid。
编辑: 您可以使用从简单的WriteLine到文本文件的任何内容进行日志记录,一直到完整的基于.NET的日志记录库(github上有很多)。
what function?
您应该关注的方法是
in bU?Fr_;Iv^$tpm3^/!sU0<HH".(Object , EventArgs )
您可以找出实际代码中的哪种方法,或者您的混淆器应该具有模糊名称的真实类/方法名称的映射。
答案 1 :(得分:0)
要添加Jim W所说的内容,您可以使用以下内容记录错误:
Public Sub addLog(txt As String)
logFile = "location/to/store/file.log"
Dim dateTime As String = "[" + System.DateTime.Now + "]"
Dim logStore As String = ""
If My.Computer.FileSystem.FileExists(logFile) Then
logStore = My.Computer.FileSystem.ReadAllText(location)
Else
File.Create(logFile).Dispose()
End If
My.Computer.FileSystem.WriteAllText(logFile,
dateTime + vbNewLine + txt + vbNewLine + vbNewLine + logStore, False)
End Sub
您可以按如下方式访问它:
Try
''code to try
Catch ex As Exception
addLog(ex.ToString)
End Try