1.一种linux用户态互斥锁死锁检测方法,其特征在于,包括:
将用户态互斥锁数据结构与lockdep数据结构进行封装;
对引入内核lockdep死锁程序的用户态互斥锁接口进行封装;
将封装后的用户态互斥锁接口,编译成用户态互斥锁检测动态静态链接库,生成互斥锁死锁检测库文件;
根据所述互斥锁死锁检测库文件编译互斥锁死锁检测操作;
执行所述互斥锁死锁检测操作,若存在死锁,则记录死锁信息。
2.如权利要求1所述的linux用户态互斥锁死锁检测方法,其特征在于,将用户态互斥锁数据结构与lockdep数据结构进行封装,包括:
将用户态互斥锁数据结构pthread_mutex_t添加lockdep死锁检测的lockdep_map数据结构。
3.如权利要求2所述的linux用户态互斥锁死锁检测方法,其特征在于,对引入内核lockdep死锁程序的用户态互斥锁接口进行封装,包括:
引入内核lockdep死锁程序,定义用户态文件;其中,所述用户态文件包括lockdep.c、lockdep_states.h和lockdep_internals.h;
根据所述用户态文件对用户态互斥锁接口进行封装;其中,所述用户态互斥锁接口包括:PTHREAD_MUTEX_INITIALIZER、pthread_mutex_init、pthread_mutex_lock、pthread_mutex_unlock、pthread_mutex_trylock、pthread_mutex_destroy。
4.如权利要求3所述的linux用户态互斥锁死锁检测方法,其特征在于,执行所述互斥锁死锁检测操作,包括:
判断编译时是否引入所述互斥锁死锁检测库文件;
若引入,则执行所述互斥锁死锁检测操作。
5.如权利要求4所述的linux用户态互斥锁死锁检测方法,其特征在于,记录死锁信息,包括:
打印死锁信息。
6.一种linux用户态互斥锁死锁检测系统,其特征在于,包括:
数据结构封装模块,用于将用户态互斥锁数据结构与lockdep数据结构进行封装;
接口封装模块,用于对引入内核lockdep死锁程序的用户态互斥锁接口进行封装;
编译模块,用于将封装后的用户态互斥锁接口,编译成用户态互斥锁检测动态静态链接库,生成互斥锁死锁检测库文件;
用户态程序模块,用于根据所述互斥锁死锁检测库文件编译互斥锁死锁检测操作;执行所述互斥锁死锁检测操作,若存在死锁,则记录死锁信息。
7.如权利要求6所述的linux用户态互斥锁死锁检测系统,其特征在于,所述数据结构封装模块具体为将用户态互斥锁数据结构pthread_mutex_t添加lockdep死锁检测的lockdep_map数据结构的模块。
8.如权利要求7所述的linux用户态互斥锁死锁检测系统,其特征在于,接口封装模块具体为引入内核lockdep死锁程序,定义用户态文件;根据所述用户态文件对用户态互斥锁接口进行封装的模块;
其中,所述用户态互斥锁接口包括:PTHREAD_MUTEX_INITIALIZER、pthread_mutex_init、pthread_mutex_lock、pthread_mutex_unlock、pthread_mutex_trylock、pthread_mutex_destroy;所述用户态文件包括lockdep.c、lockdep_states.h和lockdep_internals.h。
9.如权利要求8所述的linux用户态互斥锁死锁检测系统,其特征在于,用户态程序模块,包括:
编译单元,用于根据所述互斥锁死锁检测库文件编译互斥锁死锁检测操作;
判断单元,用于判断编译时是否引入所述互斥锁死锁检测库文件;
执行单元,用于若存在所述互斥锁死锁检测库文件,执行所述互斥锁死锁检测操作;
记录单元,用于若存在死锁,则记录死锁信息。
10.如权利要求9所述的linux用户态互斥锁死锁检测系统,其特征在于,所述记录单元具体为打印死锁信息的单元。