【问题标题】:How can i debug a program written in c# without VS [duplicate]我如何在没有VS的情况下调试用c#编写的程序[重复]
【发布时间】:2012-10-04 01:37:27
【问题描述】:

可能重复:
How to Debug .net applications without Visual Studio

嗨,我做了一个小程序,它对我和少数人都有效

但它被朋友撞了

我如何调试和了解哪些行会导致错误?

without installing visual studio

【问题讨论】:

标签: c# debugging


【解决方案1】:

你能做的最好的事情是(并且是一个很好的编码实践)在一个新的 buid 中添加 try catch 异常块在具有日志功能的方法中记录(在 catch 块中)让我们说一个文本文件

  1. 方法名称(使用 new StackTrace()..GetFrame(1).GetMethod().Name 或 System.Reflection.MethodBase.GetCurrentMethod().Name 查找),
  2. 它的参数和
  3. 异常消息。

【讨论】:

  • 我会保存参数和已经有完整堆栈跟踪的 exception.ToString()。
【解决方案2】:

如果您的意思不是“不安装调试器”,您可以尝试使用Mono

【讨论】:

    【解决方案3】:

    您可以使用可移植运行的 WinDbg(从现有安装中复制),并且通过 SoS 附加组件,它可以在调试 C# 应用程序时提供很大帮助 - 即使在事后分析中也是如此。一开始可能很难掌握,但值得学习 - 它在多种情况下会非常有用。

    SoS 参考这里:http://msdn.microsoft.com/en-us/library/bb190764.aspx

    我有这个快速备忘单,其中包含我认为最有用的内容(在互联网上的某个地方找到,然后随着时间的推移而丰富):

    Starting, Attaching, Executing and Exiting
    
    
    Start -> All Programs -> Debugging Tools for Windows -> WinDbg
    F6
    attach to process
    Ctrl-Break
    interrupt debugee
    .detach
    detach from a process
    g
    continue debugee execution
    q
    exit WinDbg
    
    Getting Help
    ?
    help on commands that affect the debugee
    .help
    help on commands that affect the debugger
    .hh command
    view the on line help file
    !help
    help on the extension dll at the top of the chain (e. g., SOS)
    
    Issuing Commands
    up arrow, down arrow, enter
    scroll through command history
    Right mouse button
    paste into command window
    
    Examining the Unmanaged Environment
    lmf
    list loaded modules with full path
    lmt
    list loaded modules with last modified timestamp
    ~
    list unmanaged threads
    ~thread s
    select a thread for thread specific commands
    !token -n
    view thread permissions
    k
    view the unmanaged call stack
    !runaway
    view thread CPU consumption
    bp
    set a breakpoint
    .dump path
    dump small memory image
    .dump /ma path
    dump complete memory image
    
    Working with Extension DLLs (e. g., SOS)
    .chain
    list extensions dlls
    .load clr10\sos
    load SOS for debugging framework 1.0 / 1.1 (use .unload to unload)
    .loadby sos mscorwks
    load SOS for debugging framework 2.0
    .loadby sos clr
    load SOS for debugging framework 4.0
    
    SOS Commands
    !threads
    view managed threads
    !clrstack
    view the managed call stack
    !dumpstack
    view combined unmanaged & managed call stack
    !clrstack -p
    view function call arguments
    !clrstack –l
    view stack (local) variables
    !name2ee module class
    view addresses associated with a class or method
    !dumpmt –md address
    view the method table & methods for a class
    !dumpmd address
    view detailed information about a method
    !do address
    view information about an object
    !dumpheap –stat
    view memory consumption by type
    !dumpheap –min size
    view memory consumption by object when at least size
    !dumpheap –type type
    view memory consumption for all objects of type type
    !gcroot address
    view which object are holding a reference to address
    !syncblk
    view information about managed locks
    
    SOS 2.0 Commands
    !bpmd module method
    set breakpoint
    !DumpArray address
    view contents of an array
    !PrintException
    view information about most recent exception
    

    【讨论】:

      【解决方案4】:

      如果您不想安装任何其他调试器,

      那么你就应该简单的实现trace并仔细登录每一段代码,然后你就可以在文本文件上查看trace或者error了..

      实现trace和log的方式:

      use 可以在 system.diaognosis 命名空间上使用 TraceListener 类 或使用

      Microsoft.Practices.EnterpriseLibrary.Logging namespace's class `Logger` to implement tracing:
      

      语法:

      Logger.Write(message, "Trace", 0, 0, System.Diagnostics.TraceEventType.Information);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-17
        • 2018-01-01
        • 2021-12-02
        • 2012-09-18
        • 1970-01-01
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多