点击或拖拽改变大小

Functions.AStackInfo 方法

X#
-- todo --
创建一个数组并用当前调用堆栈状态的信息填充它。

命名空间:  XSharp.VFP
程序集:  XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法
 FUNCTION AStackInfo(
	ArrayName
) AS USUAL CLIPPER
查看代码

参数

ArrayName (Optional)
类型:__Usual
指定用于存储调用堆栈信息的数组名称。

返回值

类型:__Usual
数值
备注
下表描述了 AStackInfo( ) 函数返回的信息:
1调用堆栈级别
2当前程序文件名
3模块或对象名称
4模块或对象源文件名
5对象源文件中的行号
6源代码行内容

AStackInfo( ) 用整个调用堆栈的信息填充数组。 它结合了 SYS(16) 和 Program( ) 函数的功能,同时为每个调用堆栈级别添加了新的行号支持。 返回值是程序级别数量或返回数组的行数。
只有在源代码行内容可用时,AStackInfo( ) 才会填充第 6 个数组元素,否则将留空。
AStackInfo( ) 在第 2 和第 4 个元素中分别提供当前文件的名称, 如果文件绑定在 APP 或其他单独文件中,则提供绑定程序的完整路径名。
第 4 个元素包含原始源文件信息。 对于对象,这与 SYS(16) 返回的信息相同,即使绑定在应用程序内部也是如此。
AStackInfo() 可能无法检索有关程序(.prg)文件的信息。 在这种情况下,X# 显示的第 2 个元素类似于 SYS(16) 函数。有关更多信息,请参见 SYS(16) - 执行程序文件名。
示例
X#
 1AStackInfo(myarray)
 2Display MEMO LIKE myarray
 3myArray
 4(1,1)   1                                    // 堆栈级别 = 1
 5(1,2)   c:\vfp\myAppl.app                        // 当前程序
 6(1,3) frmRerport.PrintReport.Click         // 对象
 7(1,4) c:\vfp\myclasses\buttons.vct         // 对象源文件名
 8(1,5) 42                              // 源文件中的行号
 9(1,6) THISForM.DoReport()                  // 源代码
10(2,1)   2                                    // 堆栈级别 = 2
11(2,2) c:\vfp\myAppl.app
12(2,3) frmRerport.DoReport
13(2,4) c:\vfp\forms\frmRerport.sct         // 模块源文件名
14(2,5) 31
15(2,6) DO RunListReport                     // 源代码
16(3,1)   3                                    // 堆栈级别 = 3
17(3,2) c:\vfp\myAppl.app
18(3,3)
19(3,4) c:\vfp\programs\runlisterport.prg   // 模块源文件名
20(3,5) 12
21(3,6) REPORT ForM myreport1.frx            // 源代码
22(4,1)   4                                    // 堆栈级别 = 4
23(4,2) c:\vfp\reports\myreport1.frt
24(4,3) myreport1.DataEnvironment.BeforeOpenTables
25(4,4) c:\vfp\reports\myreport1.frt          // 模块源文件名
26(4,5) 31
27(4,6) DO ForM getcusts                     // 源代码
28(5,1)   5                                    // 堆栈级别 = 5
29(5,2) c:\vfp\myAppl.app
30(5,3) getcusts.init
31(5,4) c:\vfp\forms\getcusts.sct            // 模块源文件名
32(5,5) 2
33(5,6) AStackInfo(myarray)                  // 源代码
参见