Fanuc C-Executer Operating Manual
B-62443EN-3/03E
- 95 -
To determine the error occurrence line from this screen, do the following
process.
You find that the exception occurred in PL3 because "ERROR-ADDRESS" in the 7th
line is same as "CS:EIP" in the 16th line.
You check that the code segment CS(=0837) in where the exception occurred is
the segment of the user application or not.
First, you check taskall.map file which has been generated by xlink386.
There is a section, "SEGMENTS INSTALLED IN TABLES" (this section is titled as
"MEMORY MAP:" for xlink386 ver2.0 or laster.), in the middle of taskall.map.
Informations of all linked segments are described here. You look for the
selector whose value is 0837. You find that "TS1_ERR1_TEXT" segment is it.
This "TS1_ERR1_TEXT" segment has been generated from the source file err1.c.
Next, you check err1.cod file, assemble list generated by compiler. *.cod
file is generated in compiling procedure by compile option "/Fc" of MS-C.
(It is better to set /Fc in the environment variable CCOPT. "set ccopt=/Fc" )
You look for the operation code at the error occurrence point, EIP(=00000006),
in err1.cod. In this case, you find that the below operation code caused the
Texception.
*** 000006 26 8a 07 mov al,BYTE PTR es:[bx]
And you find that this operation code has been generated from the below
line in err1.c.
;|*** return( *ptr ) ;
; Line 5
And more, you find that this func_1 was called from address 0837:0018 by
contents of PL3 stack and that the operation code of this address has been
generated from the below line by taskall.map and err1.cod.