pmdk icon indicating copy to clipboard operation
pmdk copied to clipboard

Redundancy in the make_extra.py script

Open grom72 opened this issue 10 months ago • 0 comments

ISSUE: Redundancy in the make_extra.py script

Please provide a reproduction of the bug:

It seems that cflow properly identifies inline functions but in some situations it does not parse properly functions that are used inside inline functions:

libpmem_init() <__attribute__ ((constructor)) void libpmem_init (void) at ./src/libpmem/libpmem.c:23>:
      common_init() <inline void common_init (const char *log_prefix, const char *log_level_var, const char *log_file_var, int major_version, int minor_version) at ./src/common/pmemcommon.h:19>:
              core_init() <inline void core_init (const char *log_prefix, const char *log_level_var, const char *log_file_var, int major_version, int minor_version) at ./src/core/pmemcore.h:24>:
                      util_init()
                      core_log_init()
                      out_init()
              util_mmap_init()

In the above example util_init(), core_log_init(), out_init() are not parsed properly. This causes a "not called" error in make_call_stacks.py script. Acccording to a very brife analysis all calles listed on the right-hand side shall be added to extra_entry_points.txt but they are not required in extra_calls.json file. It seems all callees of inline function (in the example above: util_init(), core_log_init(), out_init()) are not further processed. This causes the callees of these functions to be reported as not called (an error reported by the make_call_stacks.py script). Adding callees of inline functions as entry points allows forcing the cflow to entry points.

cflow fails to continue: function A -> inline function -> inline function's callee -> STOP

forced entry point: inline function's callee -> ...

How often bug is revealed: (always, often, rare):

Actual behavior:

Expected behavior:

Details

Additional information about Priority and Help Requested:

Are you willing to submit a pull request with a proposed change? (Yes, No)

Requested priority: (Showstopper, High, Medium, Low)

grom72 avatar Mar 27 '24 14:03 grom72