基于linux共享内存数据镜像的程序跟踪方法和系统与流程

文档序号:20204412发布日期:2020-03-27 20:59阅读:来源:国知局

技术特征:

1.一种基于linux共享内存数据镜像的程序跟踪方法,其特征在于,所述方法包括:

被跟踪程序在系统中创建一份程序的原本内部变量空间后,通过linux的shmget、shmat系统函数创建共享内存空间,所述共享内存空间作为所述原本内部变量空间的一个副本;

被跟踪程序在运行中对变量的数据内容进行修改时,同步修改所述共享内存空间中的变量副本的数据内容;

调试工具通过shmget、shmat系统函数找到并连接所述共享内存空间,并在收到调试跟踪指令时读取所述共享内存空间中的变量副本的数据内容。

2.根据权利要求1所述的方法,其特征在于,所述的通过linux的shmget、shmat系统函数创建共享内存空间,包括:

定义用于指向所述共享内存空间的数据指针;

通过shmget系统函数创建一份同原本内部变量空间的副本作为所述共享内存空间;

通过shmat系统函数将所述共享内存空间映射到所述数据指针上。

3.根据权利要求2所述的方法,其特征在于,所述的同步修改所述共享内存空间中的变量副本的数据内容,包括:

在被跟踪程序在运行中对某个变量的数据内容进行修改后,通过所述数据指针找到所述某个变量的变量副本,并将所述某个变量的数据内容赋值给所述变量副本。

4.根据权利要求1所述的方法,其特征在于,所述的调试工具通过shmget、shmat系统函数找到并连接所述共享内存空间,包括:

调试工具定义用于指向所述共享内存空间的数据指针;

通过shmget系统函数得到被跟踪程序所创建的所述共享内存空间;

通过shmat系统函数将所述共享内存空间映射到所述数据指针上,并以只读方式连接到所述共享内存空间映上。

5.一种基于linux共享内存数据镜像的程序跟踪系统,其特征在于,包括运行于系统上的被跟踪程序和调试工具,

所述被跟踪程序包括:共享内存空间创建模块,用于在系统中创建一份程序的原本内部变量空间后,通过linux的shmget、shmat系统函数创建共享内存空间,所述共享内存空间作为所述原本内部变量空间的一个副本;变量同步模块,用于在被跟踪程序在运行中对变量的数据内容进行修改时,同步修改所述共享内存空间中的变量副本的数据内容;

所述调试工具包括:共享内存空间连接模块,用于通过shmget、shmat系统函数找到并连接所述共享内存空间;变量跟踪模块,用于在收到调试跟踪指令时读取所述共享内存空间中的变量副本的数据内容。

6.根据权利要求5所述的系统,其特征在于,所述共享内存空间创建模块具体用于定义用于指向所述共享内存空间的数据指针,通过shmget系统函数创建一份同原本内部变量空间的副本作为所述共享内存空间,通过shmat系统函数将所述共享内存空间映射到所述数据指针上。

7.根据权利要求6所述的系统,其特征在于,所述变量同步模块具体用于在被跟踪程序在运行中对某个变量的数据内容进行修改后,通过所述数据指针找到所述某个变量的变量副本,并将所述某个变量的数据内容赋值给所述变量副本。

8.根据权利要求5所述的系统,其特征在于,所述共享内存空间连接模块具体用于定义用于指向所述共享内存空间的数据指针,通过shmget系统函数得到被跟踪程序所创建的所述共享内存空间,通过shmat系统函数将所述共享内存空间映射到所述数据指针上,并以只读方式连接到所述共享内存空间映上。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1