File: trace2cdt.sh

package info (click to toggle)
pcb-rnd 3.1.7b-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,108 kB
  • sloc: ansic: 213,400; yacc: 6,241; sh: 4,698; awk: 3,016; makefile: 2,254; lex: 1,166; python: 519; xml: 261; lisp: 154; tcl: 67; perl: 34; javascript: 6; ruby: 5
file content (49 lines) | stat: -rwxr-xr-x 838 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh

awk '
	BEGIN {
		next_pid = 0
		next_edge = 0
	}

	{ sub("cdt:[^ ]* ", "", $0); }

# ins_point 41.9099999999999966 10.7949999999999999 0x5600efd1e6e0
	(($1 == "ins_point") || ($1 == "init_point")) {
		idx = $4
		pid = PID[idx];
		if (pid == "") {
			pid = next_pid
			next_pid++
			PID[idx] = pid
		}
		print "ins_point p" pid, $2, $3
		next
	}

# ins_cedge 0x5600efd1f7e0 0x5600efd1fab0 0x5600efd1de50
	($1 == "ins_cedge") {
		p1 = PID[$2]
		p2 = PID[$3]
		if (p1 == "") {
			print "invalid cedge point 1 ptr in " NR ": " $2 > "/dev/stderr"
			exit(1)
		}
		if (p2 == "") {
			print "invalid cedge point 2 ptr in " NR ": " $3 > "/dev/stderr"
			exit(1)
		}
		idx = $4
		eid = EID[idx];
		if (eid == "") {
			eid = next_eid
			next_eid++
			EID[idx] = eid
		}
		print "ins_cedge p" p1 " p" p2
		next
	}

	{ print $0 }

' < CDT