Skip to content

Commit 31dc473

Browse files
committed
Initial version
1 parent 85cd23a commit 31dc473

File tree

5 files changed

+154
-0
lines changed

5 files changed

+154
-0
lines changed

src/package.devc.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<DEVC>
6+
<CTEXT>Debugger - Extension for abapGit</CTEXT>
7+
</DEVC>
8+
</asx:values>
9+
</asx:abap>
10+
</abapGit>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
REPORT zabapgit_exception_test.
2+
3+
FORM run RAISING zcx_abapgit_exception.
4+
zcx_abapgit_exception=>raise( 'Test' ).
5+
ENDFORM.
6+
7+
START-OF-SELECTION.
8+
9+
TRY.
10+
PERFORM run.
11+
CATCH zcx_abapgit_exception INTO DATA(error).
12+
" Display variable ERROR in the debugger and then "Show trigger location"
13+
BREAK-POINT.
14+
ENDTRY.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<PROGDIR>
6+
<NAME>ZABAPGIT_EXCEPTION_TEST</NAME>
7+
<SUBC>1</SUBC>
8+
<RLOAD>E</RLOAD>
9+
<FIXPT>X</FIXPT>
10+
<UCCHECK>X</UCCHECK>
11+
</PROGDIR>
12+
<TPOOL>
13+
<item>
14+
<ID>R</ID>
15+
<ENTRY>Debugger - Extension for abapGit</ENTRY>
16+
<LENGTH>39</LENGTH>
17+
</item>
18+
</TPOOL>
19+
</asx:values>
20+
</asx:abap>
21+
</abapGit>
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"Name: \TY:CL_TPDA_CONTROL\IN:IF_TPDA_CONTROL\ME:GET_EXCOBJ_SRCINFO\SE:END\EI
2+
ENHANCEMENT 0 ZABAPGIT_EXT_DEBUGGER.
3+
4+
" The kernel method above always returns the position of the RAISE EXCEPTION statement.
5+
" Unfortunately, method GET_SOURCE_POSITION of the exception is not used here *sigh*
6+
"
7+
" For custom exceptions that use static methods to raise the exception this points to the
8+
" wrong position. Instead, we get the "source position" attribute of the exception
9+
" (MS_SRC_INFO or SRC_INFO).
10+
"
11+
" PS: Decoding attributes of type table (like MT_CALLSTACK) is quite complex so we
12+
" rely on a structure (which still requires some hex conversion).
13+
14+
CONSTANTS version TYPE string VALUE '1.0.0'.
15+
16+
DATA:
17+
attrtab TYPE tpda_sys_symbattrtyp_d,
18+
attr LIKE LINE OF attrtab,
19+
refstruct TYPE REF TO tpda_sys_symbstruct.
20+
21+
FIELD-SYMBOLS <x> TYPE x.
22+
23+
TRY.
24+
get_symb_objattr(
25+
EXPORTING
26+
toolid = 0
27+
instancename = excobjname
28+
filter = ''
29+
IMPORTING
30+
attrtab = attrtab ).
31+
32+
READ TABLE attrtab INTO attr WITH KEY attr_name COMPONENTS name = 'MS_SRC_INFO'.
33+
IF sy-subrc <> 0.
34+
READ TABLE attrtab INTO attr WITH KEY attr_name COMPONENTS name = 'SRC_INFO'.
35+
ENDIF.
36+
IF sy-subrc = 0.
37+
refstruct ?= attr-symbquick-quickdata.
38+
ASSIGN src_info-program TO <x> CASTING.
39+
<x> = refstruct->xvalstring+0(80). "char40
40+
ASSIGN src_info-include TO <x> CASTING.
41+
<x> = refstruct->xvalstring+80(80). "char40
42+
ASSIGN src_info-line TO <x> CASTING.
43+
<x> = refstruct->xvalstring+160(*). "int4
44+
ENDIF.
45+
46+
CATCH cx_root ##NO_HANDLER.
47+
ENDTRY.
48+
49+
ENDENHANCEMENT.

src/zabapgit_ext_debugger.enho.xml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_ENHO" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<TOOL>HOOK_IMPL</TOOL>
6+
<SHORTTEXT>Debugger - Extension for abapGit</SHORTTEXT>
7+
<ORIGINAL_OBJECT>
8+
<PGMID>R3TR</PGMID>
9+
<ORG_OBJ_TYPE>CLAS</ORG_OBJ_TYPE>
10+
<ORG_OBJ_NAME>CL_TPDA_CONTROL</ORG_OBJ_NAME>
11+
<ORG_MAIN_TYPE>CLAS</ORG_MAIN_TYPE>
12+
<ORG_MAIN_NAME>CL_TPDA_CONTROL</ORG_MAIN_NAME>
13+
<PROGRAMNAME>CL_TPDA_CONTROL===============CP</PROGRAMNAME>
14+
</ORIGINAL_OBJECT>
15+
<ENHANCEMENTS>
16+
<ENH_HOOK_IMPL>
17+
<PROGRAMNAME>CL_TPDA_CONTROL===============CP</PROGRAMNAME>
18+
<ENHMODE>D</ENHMODE>
19+
<FULL_NAME>\TY:CL_TPDA_CONTROL\IN:IF_TPDA_CONTROL\ME:GET_EXCOBJ_SRCINFO\SE:END\EI</FULL_NAME>
20+
</ENH_HOOK_IMPL>
21+
</ENHANCEMENTS>
22+
<FILES>
23+
<item>
24+
<NAME>\TY:CL_TPDA_CONTROL\IN:IF_TPDA_CONTROL\ME:GET_EXCOBJ_SRCINFO\SE:END\EI</NAME>
25+
<FILE>fa4cfd43</FILE>
26+
</item>
27+
</FILES>
28+
<SOTR>
29+
<item>
30+
<HEADER>
31+
<CONCEPT>8A208517F3371FD0888F192C394B957A</CONCEPT>
32+
<CREA_LAN>E</CREA_LAN>
33+
<TRALA_TYPE>1</TRALA_TYPE>
34+
<OBJID_VEC>AAI=</OBJID_VEC>
35+
</HEADER>
36+
<ENTRIES>
37+
<SOTR_TEXT>
38+
<CONCEPT>8A208517F3371FD0888F192C394B957A</CONCEPT>
39+
<LANGU>E</LANGU>
40+
<LFD_NUM>0001</LFD_NUM>
41+
<FLAG_CNTXT>X</FLAG_CNTXT>
42+
<STATUS>R</STATUS>
43+
<LENGTH>048</LENGTH>
44+
<TEXT>Debugger - Extension for abapGit</TEXT>
45+
</SOTR_TEXT>
46+
</ENTRIES>
47+
</item>
48+
</SOTR>
49+
<SOTR_USE>
50+
<SOTR_USE>
51+
<PGMID>R3TR</PGMID>
52+
<OBJECT>ENHO</OBJECT>
53+
<OBJ_NAME>ZABAPGIT_EXT_DEBUGGER</OBJ_NAME>
54+
<CONCEPT>8A208517F3371FD0888F192C394B957A</CONCEPT>
55+
<LFD_NUM>0001</LFD_NUM>
56+
</SOTR_USE>
57+
</SOTR_USE>
58+
</asx:values>
59+
</asx:abap>
60+
</abapGit>

0 commit comments

Comments
 (0)