6ca3a291 |
1 | |
2 | LTTng format string parsing |
3 | July 26, 2007 |
4 | |
5 | "%lu" |
6 | "#4b%u" |
7 | "#lu%u" (no sign extension) |
8 | "#ld%c" (sign extension) |
9 | "#lld%p" (sign extension) |
10 | |
11 | Parsing: |
12 | |
13 | When # is encountered |
14 | Deal with ## case (escaped) |
15 | Read length modifier |
16 | gcc-like |
17 | trace specific : 1, 2, 4, 8, n, b |
18 | in both cases, save the output type size (1, 2, 4, 8). |
19 | Read conversion specifier |
20 | save the output type size if no length modifier is involved (1, 2, 4, 8). |
21 | save the signedness. |
22 | |
23 | (vsnprintf-like part) |
24 | When % is encountered |
25 | Deal with %% case (escaped) |
26 | (deal with field width, precision. Skip them.) |
27 | Read length modifier |
28 | if output type size is 0, set it to the gcc type size. |
29 | Read conversion specifier |
30 | if output type size is 0, set it to the gcc type size if no length modifier |
31 | is involved. |
32 | Perform trace write with conversion. |
33 | Reset output type size to 0 |
34 | |
35 | |
36 | |
37 | |