delphi - 如何从自动化调用内部确定脚本源位置?

标签 delphi com automation activex windows-scripting

我有一个运行 JScript 的脚本主机。在某些情况下,我必须跟踪公开对象的方法是否被调用以及从何处调用。为此,我需要确定脚本引擎当前在我的对象方法中的位置。

它应该与调用我的网站的 OnScriptError 时的信息相同:源行源字符和我传递给 ParseScriptText 的 cookie。

是否可以在不产生错误的情况下获取此信息?

最佳答案

您是否尝试过类似下面的代码?这将为您提供完整的堆栈跟踪,其中包含函数名称和参数值,但不包含行号。

不知道 ParseScriptText 是什么。

(来自 https://github.com/emwendelin/Javascript-Stacktracehttp://eriwen.com/javascript/stacktrace-update/ )

other: function(curr) {
    var ANON = '{anonymous}', fnRE = /function\s*([\w\-$]+)?\s*\(/i,
        stack = [], fn, args, maxStackSize = 10;

    while (curr && stack.length < maxStackSize) {
        fn = fnRE.test(curr.toString()) ? RegExp.$1 || ANON : ANON;
        args = Array.prototype.slice.call(curr['arguments']);
        stack[stack.length] = fn + '(' + this.stringifyArguments(args) + ')';
        curr = curr.caller;
    }
    return stack;
},

关于delphi - 如何从自动化调用内部确定脚本源位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447885/

相关文章:

testing - 使用 MS Coded UI 进行自动化测试

delphi - 将 Jpeg 图像转换为 Bmp - 某些图像显示为蓝色

delphi - 使用默认值时,rtti 不调用所需的重载函数

string - 没有引用计数的交换字符串

delphi - 如何识别 MS Excel 对象类型?

linux - 每个月在特定的一天运行作业(使用 anacron?)

delphi - 尝试在注册表中保存值时出错

windows - 在 Windows 中,有什么方法可以将 errno 转换为 HRESULT?

.net - 有人成功使用免注册COM和.NET组件吗?

java - eclipse中自动设置方法范围