ABAP调试器:将支配者树数据提取到内部表中

2020-09-05 07:26发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在ABAP调试器中,我们可以通过" Dominator Tree"(内存分析工具)查看保存在内存中的数据。

是否有办法将这些数据放入内部表中(类似于通过cl_abap_compiler-> get_all_refs获取调用堆栈)?

预先感谢

PeteA

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在ABAP调试器中,我们可以通过" Dominator Tree"(内存分析工具)查看保存在内存中的数据。

是否有办法将这些数据放入内部表中(类似于通过cl_abap_compiler-> get_all_refs获取调用堆栈)?

预先感谢

PeteA

付费偷看设置
发送
3条回答
哎,真难
1楼-- · 2020-09-05 08:12

好的,我自己找到了答案。

这是两个代码 片段,从调试器的系统区域屏幕工具中获取PROGRAMS和ITAB-HEADS数据。

 *&------  --------------------------------------------------  ----&*
 *&获取系统领域:程序
 *&------------------------------------------------  -------------&*
 数据:pxa的开头出现0,
 head(5)类型c,类似于help_info-program的程序,
 rest(35)类型c,
 pxa的结尾。

 呼叫" SAPCORE" ID" ID"字段" PROGRAMS"
 id'TABLE'字段pxa- * sys *。

 *&------------------------------------------------  -------------&*
 *&获取系统区域:ITAB-HEADS
 *&------------------------------------------------  -------------&*
 数据:lt_itab_heads的开头出现0,
 num(8)类型c,
 shm_vers_id(14)类型c,
 tabhid(7)类型c,
 name(57)类型c,
 fill(10)类型c
 lines(5)类型c,
 linesalloc(16)类型c,
 label(5)类型c,lt_itab_heads的结尾。

 呼叫" SAPCORE" ID" ID"字段" ITAB-HEADS"
                id'TABLE'字段itab- * sys *。  

痛苦正在解决内部 表结构。 在调试器中,您需要选择相关的系统区域(在此示例中为ITAB-HEADS),然后手动计算列大小并将其插入内部表定义中。 这是因为下表是一个长文本字符串!!!

这是LT_ITAB_HEADS内部表中系统区域数据的结果:

PeteA

SAP浪
2楼-- · 2020-09-05 07:53

正式地,只有CL_ABAP_MEMORY_UTILITIES类的GET_TOTAL_USED_SIZE和GET_MEMORY_SIZE_OF_OBJECT方法。 有关更多信息,请参阅ABAP后端中的类文档。

不幸的是,它们无法返回顶级变量的列表。

xfwsx85
3楼-- · 2020-09-05 07:59

嗨,桑德拉,

是的-我玩过这些,但是它们只会带回汇总的信息。

上述解决方案似乎适用于任何System Area对象。

< em> PeteA

一周热门 更多>