【发布时间】:2011-07-26 20:12:35
【问题描述】:
我使用函数“JclGetExceptStackList”来记录引发异常的调用堆栈。
我希望,如果可能的话,还记录引发异常的方法中的参数值。
我不知道是否可以使用 JclDebug 来做到这一点,或者是否存在任何其他方式来做到这一点。
谁能帮帮我?
谢谢!
【问题讨论】:
我使用函数“JclGetExceptStackList”来记录引发异常的调用堆栈。
我希望,如果可能的话,还记录引发异常的方法中的参数值。
我不知道是否可以使用 JclDebug 来做到这一点,或者是否存在任何其他方式来做到这一点。
谁能帮帮我?
谢谢!
【问题讨论】:
虽然使用 JclDebug 无法做到这一点,而且手工完成可能需要大量工作,但您可能会发现任何日志记录工具,包括 Log4D、CodeSite 甚至 outputdebugString,都可以用更少的工作来完成。实际上,它会在您选择插入此类日志记录的任何地方插入代码来记录您的参数调用。它还可以在引发异常时插入特殊标记,让您重建导致崩溃的确切场景。
但由于 CodeSite 不会仅在将要发生异常时才执行此操作(它会如何发生?),这并不是您想要的。然而,我确实发现,一个合理的跟踪日志,结合 jcl 堆栈回溯(或 madeexcept 或 eurekalog)已经绰绰有余,如果我真的需要知道调用中涉及的所有参数值,我应该回去添加更多跟踪消息。
【讨论】:
这通常是不可能的,因为参数通常在寄存器中传递。每次进行过程调用时都会被覆盖。
【讨论】: