On Wed, Mar 13, 2024 at 02:29:13PM +0800, 李书畅 wrote: > As I tried : > CHECK="/home/lsc20011130/smatch/smatch --info --file-output", > for each .c file, the above three file are created , and there's a lot of information in these files, like: > > nty_schedule.c:98 nty_schedule_sched_sleepdown() info: param_mapper 0 => _nty_coroutine_rbtree_sleep_RB_INSERT 1 > nty_schedule.c:113 nty_schedule_desched_sleepdown() info: param_mapper 0 => _nty_coroutine_rbtree_sleep_RB_REMOVE 1 > nty_schedule.c:144 nty_schedule_desched_wait() error: we previously assumed 'co' could be null (see line 141) > > nty_coroutine.c:58 _save_stack() SQL_caller_info: insert into caller_info values (0x7feb7cc204ad2699, '_save_stack', '__assert_fail', %CALL_ID%, 0, 0, -1, '%call_marker%', 'void(*)(char*, char*, uint, char*)'); > nty_coroutine.c:58 _save_stack() SQL_caller_info: insert into caller_info values (0x7feb7cc204ad2699, '_save_stack', '__assert_fail', %CALL_ID%, 0, 1001, 0, '$', '8349466724068225024'); > nty_coroutine.c:58 _save_stack() SQL_caller_info: insert into caller_info values (0x7feb7cc204ad2699, '_save_stack', '__assert_fail', %CALL_ID%, 0, 1001, 1, '$', '5566788581620412416'); > > nty_coroutine.c:55 _save_stack() SQL: insert into function_type values(0x7feb7cc204ad2699, '_save_stack', 1, 0, 'struct _nty_coroutine*'); > nty_coroutine.c:55 _save_stack() SQL: insert into parameter_name values(0x7feb7cc204ad2699, '_save_stack', 1, 0, 'co'); > Excelent. That's working then. WLOG="smatch_warns.txt" find -name \*.c.smatch -exec cat \{\} \; -exec rm \{\} \; > $WLOG find -name \*.c.smatch.sql -exec cat \{\} \; -exec rm \{\} \; > $WLOG.sql find -name \*.c.smatch.caller_info -exec cat \{\} \; -exec rm \{\} \; > $WLOG.caller_info Then you can do: smatch_data/db/create_db.sh -p=kernel smatch_warns.txt That will build the db. Then rerun, keeping the --file-output but without the --info. regards, dan carpenter