When compiling in debug mode, the 'inline' semantics of C99 led to the errors:
/roux/w25/openairinterface5g/common/utils/LOG/log.c:479: undefined reference to `log_header'
libUTIL.a(log.c.o): In function `log_dump':
/roux/w25/openairinterface5g/common/utils/LOG/log.c:502: undefined reference to `log_header'
collect2: error: ld returned 1 exit status
Let's use static instead of inline.
Using the basic simulator and valgrind, it was found that
the lack of initialization of those two pointers leads to
some very nasty behavior of some other parts of the system.
* check whether a library has been loaded before; in this case, don't allocate
new memory but load from old library again
* vital parameters, previous exit_fun are checked by AssertFatal()
* structure has changed a bit to make it easier to follow (instead of nested
ifs includes one goto to the end of the function)
* formatting has been improved
- 'busy' has to be handled in a more atomic fashion to avoid crazy
runtime race conditions
- the basic simulator is too fast sometimes; rewrite the accesses to
the T cache to avoid there again crazy behaviors
Hopefully that's better...
This commit removes the warning:
make[4]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Basically, inside a Makefile we should use $(MAKE) instead of make.
Since VCD has now to go through the T tracer, we enforce the consistency
of data found in common/utils/LOG/vcd_signal_dumper.[ch] with data
found in common/utils/T/T_messages.txt.
We might get completely rid of common/utils/LOG/vcd_signal_dumper.[ch] at some
point. For the moment, let's keep it.
This commit adds the program common/utils/T/check_vcd.c and necessary
modifications to enforce its use at compilation time.
If you modify common/utils/LOG/vcd_signal_dumper.[ch] but do not update
common/utils/T/T_messages.txt an error will pop up when you compile the
software. You have to keep both modules synchronized.
Make it compatible with 'template' gtwave files as found in openair's
repository.
The type VCD_NAME was added to the VCD IDs in T_messages.txt.
The database processing code was adapted to use it.
The tracer to_vcd was adapted to use it and render the produced vcd
output compatible with the 'template' gtkwave files.
When running to_vcd, do not forget to pass -vcd to use this feature.
This tracer allows the connection of several tracers to one tracee.
To use the multi tracer:
- run the tracee as usual, eg. ./lte-softmodem -O xxxx.conf --T_stdout 0
- run the multi tracer: ./multi -d ../T_messages.txt
- connect other tracers to the multi tracer:
- ./enb -d ../T_messages.txt -p 2022
- ./textlog -d ../T_messages.txt -p 2022
- etc.
By default the multi tracer connects to the tracee to the port 2021,
as for any other tracer.
Then it accepts connections from other tracers on the port 2022.
This can be changed with parameters on the command line.
The tracee and the other tracers can be stopped/started at any time.
- install package 'vim-common' to have 'xxd' needed by the compilation
process of the T tracer
- change the way xxd is called so that no file is created in case
of error