代码很简单,如下
 Module1
)
在被调用函数中利用StackTrace确定是被哪个函数调用的        Dim strace As New StackTrace(True)
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Dim frame As New StackFrame
在被调用函数中利用StackTrace确定是被哪个函数调用的        frame 
= strace.GetFrame(1'0表示调用堆栈的最里层(本函数),1表示上一层也就是调用ReportPosition()的函数,在被调用函数中利用StackTrace确定是被哪个函数调用的 
在被调用函数中利用StackTrace确定是被哪个函数调用的
        MsgBox("错误信息:" & msg & ControlChars.CrLf & "位置:" & frame.ToString)
在被调用函数中利用StackTrace确定是被哪个函数调用的        
'可以将frame.ToString()的内容保存到文件
在被调用函数中利用StackTrace确定是被哪个函数调用的
        '在try在被调用函数中利用StackTrace确定是被哪个函数调用的catch中调用该方法可以方便跟踪异常位置
在被调用函数中利用StackTrace确定是被哪个函数调用的
    End Sub
在被调用函数中利用StackTrace确定是被哪个函数调用的
End Module
在被调用函数中利用StackTrace确定是被哪个函数调用的
在被调用函数中利用StackTrace确定是被哪个函数调用的    
'调用
 Button1.Click
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Try
在被调用函数中利用StackTrace确定是被哪个函数调用的            
'do something
在被调用函数中利用StackTrace确定是被哪个函数调用的
            Dim i As Int32 = 0
在被调用函数中利用StackTrace确定是被哪个函数调用的            i 
= 1 / i
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Catch ex As Exception
在被调用函数中利用StackTrace确定是被哪个函数调用的            ReportPosition(ex.Message)
在被调用函数中利用StackTrace确定是被哪个函数调用的        
End Try
在被调用函数中利用StackTrace确定是被哪个函数调用的
在被调用函数中利用StackTrace确定是被哪个函数调用的    
End Sub

 

不过只有在Debug模式并且有.pdb文件的情况下才能获得调用函数的所在的文件和行号。

刚才看下面的文章想到的
Find out what's closing your application
他的代码如下:

, _
在被调用函数中利用StackTrace确定是被哪个函数调用的  ByVal e As System.ComponentModel.CancelEventArgs) _
在被调用函数中利用StackTrace确定是被哪个函数调用的  
Handles MyBase.Closing
在被调用函数中利用StackTrace确定是被哪个函数调用的    
Dim O As System.Diagnostics.StackTrace = _
在被调用函数中利用StackTrace确定是被哪个函数调用的           
New System.Diagnostics.StackTrace(True)
在被调用函数中利用StackTrace确定是被哪个函数调用的    
Dim F As System.Diagnostics.StackFrame
在被调用函数中利用StackTrace确定是被哪个函数调用的
在被调用函数中利用StackTrace确定是被哪个函数调用的    F 
= O.GetFrame(7)
在被调用函数中利用StackTrace确定是被哪个函数调用的
在被调用函数中利用StackTrace确定是被哪个函数调用的    
Select Case F.GetMethod.Name.ToString
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Case "SendMessage"
在被调用函数中利用StackTrace确定是被哪个函数调用的
            MsgBox("Closing because of call in code.")
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Case "CallWindowProc"
在被调用函数中利用StackTrace确定是被哪个函数调用的
            MsgBox("Closing because of system menu click.")
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Case "DispatchMessageW"
在被调用函数中利用StackTrace确定是被哪个函数调用的
            MsgBox("Closing because of Task Manager.")
在被调用函数中利用StackTrace确定是被哪个函数调用的        
Case Else
在被调用函数中利用StackTrace确定是被哪个函数调用的            
MsgBox("Don't Know why I'm closing!!??")
在被调用函数中利用StackTrace确定是被哪个函数调用的    
End Select
在被调用函数中利用StackTrace确定是被哪个函数调用的
End Sub

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-12
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
猜你喜欢
  • 2022-02-07
  • 2021-05-29
  • 2021-06-02
  • 2022-12-23
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
相关资源
相似解决方案