You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2-50Lines changed: 2 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,54 +42,6 @@ The tracepoints `CLLTK_TRACEPOINT` defines first the target tracebuffer, than th
42
42
`decoder_tool/python/clltk_decoder.py <path to tracebuffers>`
43
43
8. View your traces in `output.csv`
44
44
45
-
## Build Requirements
46
-
### Base Library build
47
-
- cmake (>=3.18)
48
-
- gcc (>=10.0)
49
-
- g++ (>=10.0)
50
-
- git
51
-
- file
52
-
- rsync
53
-
- gettext
54
-
- libtar-dev
55
-
56
-
### CLI tool build
57
-
- libcli11-dev
58
-
- nlohmann-json3-dev
59
-
60
-
### Library Unit tests
61
-
- valgrind
62
-
- openjdk-17-jdk
63
-
- openssl
64
-
- lcov
65
-
- gcovr
66
-
67
-
### Kernel module build
68
-
- make
69
-
- curl
70
-
- rpm
71
-
- elfutils
72
-
- clang
73
-
- ll
74
-
- llvm
75
-
- libelf-dev
76
-
- build-essential
77
-
- flex
78
-
- bison
79
-
- bc
80
-
- libncurses-dev
81
-
- libssl-dev
82
-
- kmod
83
-
84
-
### Kernel module tests
85
-
- busybox-static
86
-
- strace
87
-
- cpio
88
-
- qemu-system
89
-
90
-
## Runtime Requirements
91
-
- non
92
-
93
45
## Security Considerations
94
46
**Tampering with Trace Files**: Any modification or tampering with the trace files can cause the library to **crash or potentially freeze** the system. Ensure the integrity of these files is maintained to avoid instability.
95
47
@@ -159,15 +111,15 @@ It is also possible to cross compile with the container env by using of example:
159
111
To build this repository for test purposes or development run:
160
112
161
113
```bash
162
-
./scripts/ci-cd/build_userspace.shs
114
+
./scripts/ci-cd/build_userspace.sh
163
115
```
164
116
165
117
### Tests tracing standalone
166
118
167
119
To run all test build the whole project with cmake and than run:
Copy file name to clipboardExpand all lines: docs/file_specification.asciidoc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,7 +62,7 @@ The following table shows the structure of the ringbuffer head, with all offsets
62
62
All write access to a tracebuffer is only permitted after obtaining the semaphore. The valid states of the semaphore are therefore 0 and 1. With 0 meaning some process or thread obtained write access. And 1 that now one is currently writing to the tracebuffer. +
63
63
64
64
For adding a new traceentry, after obtaining write access, maybe some old entries are been dropped until enough space between next_free and last_valid is available to a the new traceentry. Both values are offset relative to the ringbuffer body location inside the file. And for each dropped entry, the dropped counter is incremented, up to a maximum of UINT64_MAX.
65
-
If next_free gets bigger than body size, the wrapped counter is incremented, up to a maximum of UINT64_MAX. And next_free is wrapped back to the beginning of the ringbuffer body. The same is true for next_valid, but with out hte incrementation of any counter. +
65
+
If next_free gets bigger than body size, the wrapped counter is incremented, up to a maximum of UINT64_MAX. And next_free is wrapped back to the beginning of the ringbuffer body. The same is true for next_valid, but with out the incrementation of any counter. +
66
66
An ringbuffer is thereby empty if next_free == last_valid and full if next_free+1==last_valid. Will moving next_free or last_valid, next_free may never overtake last_valid. Instead last_valid must first be moved by dropping old entries and than next_free moved.
67
67
68
68
The dropping of old entries may only occur on whole traceentires.
@@ -81,7 +81,7 @@ Each of the entries is constructed like the following table shows:
81
81
|====
82
82
All offsets are relative to the beginning of an entry. For the oldest entry the beginning is always the last_valid offset. If the combined offset or index for an access is equal or bigger than the ringbuffer body size than the offset/index needs to be wrapped to the beginning of the ringbuffer body. This could be done by calculate the module of index for ringbuffer body size.
83
83
84
-
The magic is used to securely detect the start ot an ringbuffer entry while dropping old entries or, if a last_valid and next_free are damaged, to find all entries at decoding time.
84
+
The magic is used to securely detect the start of an ringbuffer entry while dropping old entries or, if a last_valid and next_free are damaged, to find all entries at decoding time.
85
85
86
86
The body size enables the extraction of a entry as a single entity.
87
87
@@ -142,7 +142,7 @@ The layout for the traceentry header is shown in the following table:
142
142
>h| 22 >| flex | body (second part of traceentry)
143
143
|====
144
144
145
-
The second part, the same as the traceentry header body, contains the user provided argument values and is therefor only present if any argument was provided.
145
+
The second part, the same as the traceentry header body, contains the user provided argument values and is therefore only present if any argument was provided.
146
146
If present, the layout of this part is defined by the argument information inside the metab information inside the file at offset `in_file_offset`.
147
147
All argument values are stored, ordered by there placement inside the tracepoint call, without any gapes.
148
148
To decode the argument values, first the argument type has to be retrieved from the argument type array inside the meta entry. Base on this type the value is access.
0 commit comments