Test Plan: run on XP
Reviewers: jpeg, cedric, ajwillia.ms
Reviewed By: ajwillia.ms
Subscribers: ajwillia.ms
Differential Revision: https://phab.enlightenment.org/D5245
Summary:
The code in eina_debug.c requires the eina_swapX() functions on big endian platforms, so include the required header.
Test Plan: Do build on big endian platform like ppc64 or s390x.
Subscribers: kubu, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5158
bad endian... code... see the comment in the src about why i think
this is bad as obviously the buffer pointed to is a 64bit type always
that is a pointer to something...
The opcodes registration request is sent directly in case the connection
is already made. Otherwise, the request is waiting for the connection to
be made by the dedicated thread (not the main loop).
That's why the request can be sent by the two different threads at the
same time, leading to send it twice. It means a callback for an opcode
would be invoked twice everytime a request with this opcode is received.
This patch fixes it by checking if the request has already been sent.
Eina Debug is a new layer aimed for EFL debugging. It offers scalability
by allowing registration of operations not specific to EFL core.
The protocol is simple and the APIs try to provide as much
functionalities/freedom as possible.
this runs a 1000hz (or as best the kernel will allow) polling system
monitor thread that will logg the cpu frequencies of all cores (linux
only) as well as cpu usage per thread. this leads to much more
information able to be logged from an efl app (any efl app).
@feature
In eina_debug.h we only include the eina headsers when all defines are true
for backtrace, dlopen, unwind, etc. We still use Eina_Bool here when these
cases are not met. I just hit this case and failed the build.
this makes eina_log give bt's for all error logs. this is very useful
in finding just where a problem happens. the problem int he past is
that these have not been too useful due to backtrace_symbols() being
"useless". thus use the eina_btlog tool i added too.
also started infra for a debug monitor that can use the backtrace
infra to collect runtime stats ANY TIME for a process (don't need to
run under a debugger).
@feat