FreeCalypso > hg > freecalypso-reveng
annotate leo-obj/tool/ln.c @ 143:fbdb7686a9e9
tiobjd: raw dump of line number records implemented
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Mon, 28 Apr 2014 05:55:40 +0000 | 
| parents | |
| children | fcf1ef773a57 | 
| rev | line source | 
|---|---|
| 
143
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 * Dumping of line number records | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 #include <sys/types.h> | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 #include <stdio.h> | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
7 #include <stdlib.h> | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 #include "filestruct.h" | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 #include "intstruct.h" | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
10 #include "coffconst.h" | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
11 #include "globals.h" | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
12 | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 extern unsigned get_u16(), get_u32(); | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 cmd_ln() | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 { | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 unsigned n, m; | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
18 struct internal_scnhdr *sec; | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 u_char *rec; | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
20 | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 get_int_section_table(); | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 for (n = 0; n < nsections; n++) { | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 sec = sections + n; | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 if (!sec->nlineent) | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
25 continue; | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 printf("%s:\n\n", sec->name); | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 rec = filemap + sec->line_offset; | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 for (m = 0; m < sec->nlineent; m++, rec += 6) | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 printf("%08X %04X\n", get_u32(rec), get_u16(rec + 4)); | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 putchar('\n'); | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 } | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 exit(0); | 
| 
 
fbdb7686a9e9
tiobjd: raw dump of line number records implemented
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 } | 
