cdbfileformat.txt

来自「This a FREE tool chain which compiles C 」· 文本 代码 · 共 1,459 行 · 第 1/3 页

TXT
1,459
字号
|      

L        | 

Link record type indicator                                            |
+-----------------+-------------------------------------------------------------------------+
|      

C        | 

Link assembly file line record sub type indicator                     |
+-----------------+-------------------------------------------------------------------------+
|  

<Filename>   | 

Filename of the assembly file.                                        |
+-----------------+-------------------------------------------------------------------------+
|    

<Line>     | 

Line number in the above filename. These numbers start 
at 1 (not 0). |
+-----------------+-------------------------------------------------------------------------+
|   

<Level>     | 

Current level at this line and address.                               |
+-----------------+-------------------------------------------------------------------------+
|   

<Block>     | 

Current block at this line and address.                               |
+-----------------+-------------------------------------------------------------------------+
| 

<EndAddress>  | 

End address                                                           |
+-----------------+-------------------------------------------------------------------------+


Purpose

The linker C-Line record is used to bind the execution 
address with a source file, line number and the level, 
block information.

The following is an example source module with its 
lines showing the corresponding C-Line Records. You 
will notice in this example that there are no line 
entries for lines 18, 19. This is because the code was 
optimized and removed.

  

01    

                        

                                         
  

02    

                        

struct complex                           
  

03    

                        

{                                        
  

04    

                        

  int count;                             
  

05    

                        

  int Max;                               
  

06    

                        

};                                       
  

07    

                        

                                         
  

08    

L:C$vars.c$8$0$0:38     

void main(void)                          
  

09    

                        

{                                        
  

10    

                        

  int iterA;                             
  

11    

                        

  int iterB;                             
  

12    

                        

  struct complex myStruct;               
  

13    

                        

                                         
  

14    

L:C$vars.c$14$1$1:C1    

  for(iterA = 0; iterA < 10; iterA++)    
  

15    

                        

  {                                      
  

16    

L:C$vars.c$16$2$2:B9    

    for(iterB = 0; iterB < 10; iterB++)  
  

17    

                        

    {                                    
  

18    

                        

      int iterA = 6 + iterB;             
  

19    

                        

      iterA++;                           
  

20    

                        

                                         
  

21    

L:C$vars.c$21$1$1:69    

      myStruct.count++;                  
  

22    

                        

                                         
  

23    

L:C$vars.c$23$3$3:83    

      if(myStruct.count > myStruct.Max)  
  

24    

L:C$vars.c$24$3$3:A3    

        myStruct.Max = mystruct.count;   
  

25    

                        

    }                                    
  

26    

                        

  }                                      
  

27    

L:C$vars.c$27$1$1:CE    

}                                        


Example

L:C$max1270.c$35$1$1:CA9
L:C$Timer0.c$20$1$1:D9D

5 Source File Example 

sfr IM = 0x90;



struct complex

{

  int count;

  int Max;

};



void main(void)

{

  int iterA;

  int iterB;

  struct complex myStruct;



  for(iterA = 0; iterA < 10; iterA++)

  {

    for(iterB = 0; iterB < 10; iterB++) 

    {

      int iterA = 6 + iterB;

      iterA++;



      myStruct.count++;

 

      IM = iterA;



      if(myStruct.count > myStruct.Max)

        myStruct.Max = myStruct.count;

    }

  }

}

6 CDB File Example

M:vars
F:G$main$0$0({2}DF,SV:S),C,0,0,0,0,0

















T:Fvars$complex[({0}S:S$count$0$0({2}SI:S),Z,0,0)({2}S:S$Max$0$0({2}SI:S),Z,0,0)]

S:Lmain$iterA$1$1({2}SI:S),R,0,0,[r0,r1]

S:Lmain$iterB$1$1({2}SI:S),R,0,0,[r4,r5]

S:Lmain$myStruct$1$1({4}STcomplex:S),E,0,0

S:Lmain$iterA$3$3({2}SI:S),R,0,0,[r6,r7]
S:G$IM$0$0({1}SC:U),I,0,0

S:G$main$0$0({2}DF,SV:S),C,0,0
L:G$IM$0$0:90
L:Lmain$myStruct$1$1:8

L:A$vars$64:0
L:A$vars$65:3
L:A$vars$67:B
L:A$vars$69:13

L:A$vars$71:1B
L:A$vars$73:23
L:A$vars$75:2B
L:A$vars$129:33

L:A$vars$131:36
L:A$vars$158:38
L:C$vars.c$10$0$0:38
L:G$main$0$0:38

L:A$vars$159:3A
L:A$vars$163:3C
L:A$vars$164:3D
L:A$vars$165:3E

L:A$vars$166:40
L:A$vars$167:41
L:A$vars$168:43
L:A$vars$170:45

L:A$vars$171:47
L:A$vars$176:4A
L:A$vars$177:4C
L:A$vars$181:4E

L:A$vars$182:4F
L:A$vars$183:50
L:A$vars$184:52
L:A$vars$185:53

L:A$vars$186:55
L:A$vars$191:57
L:A$vars$196:59
L:C$vars.c$20$3$3:59

L:A$vars$197:5B
L:A$vars$198:5D
L:A$vars$200:5E
L:A$vars$201:5F

L:A$vars$202:61
L:A$vars$207:62
L:C$vars.c$21$3$3:62
L:A$vars$208:63

L:A$vars$209:66
L:A$vars$216:67
L:C$vars.c$23$3$3:67
L:A$vars$217:69

L:A$vars$220:6B
L:A$vars$221:6C
L:A$vars$222:6F
L:A$vars$227:70

L:A$vars$228:72
L:A$vars$232:74
L:C$vars.c$25$3$3:74
L:A$vars$238:76

L:C$vars.c$27$3$3:76
L:A$vars$239:77
L:A$vars$240:79
L:A$vars$241:7A

L:A$vars$242:7C
L:A$vars$243:7E
L:A$vars$244:80
L:A$vars$245:83

L:A$vars$248:85
L:A$vars$256:87
L:C$vars.c$28$3$3:87
L:A$vars$257:8A

L:A$vars$263:8D
L:C$vars.c$18$2$2:8D
L:A$vars$264:8E
L:A$vars$265:91

L:A$vars$268:92
L:A$vars$274:94
L:C$vars.c$16$1$1:94
L:A$vars$275:95

L:A$vars$276:98
L:A$vars$278:99
L:A$vars$282:9C
L:C$vars.c$31$1$1:9C

L:XG$main$0$0:9C
L:A$vars$84:A1
L:A$vars$85:A4
L:A$vars$86:A7

L:A$vars$87:A9
L:A$vars$88:AB
L:A$vars$91:AE
L:A$vars$92:B0

L:A$vars$93:B2
L:A$vars$94:B4
L:A$vars$95:B6
L:A$vars$96:B8

L:A$vars$97:B9
L:A$vars$98:BB
L:A$vars$99:BD
L:A$vars$100:BE

L:A$vars$101:C1
L:A$vars$102:C3
L:A$vars$103:C6
L:A$vars$104:C7

L:A$vars$105:C8
L:A$vars$106:C9
L:A$vars$107:CA
L:A$vars$108:CB

L:A$vars$109:CE
L:A$vars$110:D0
L:A$vars$111:D2
L:A$vars$112:D5

L:A$vars$113:D7
L:A$vars$114:DA
L:A$vars$118:DD

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?