0
点赞
收藏
分享

微信扫一扫

58 KVM工具使用指南-应用 LibcarePlus 热补丁

58 KVM工具使用指南-应用 LibcarePlus 热补丁

本节以原文件 foo.c 和补丁文件 bar.c 为例,介绍 LibcarePlus 热补丁的应用指导。

58.1 前期准备

应用 LibcarePlus 热补丁之前,需要提前准备好原可执行程序 foo、以及热补丁文件 foo.kpatch。

58.2 加载热补丁

本节介绍应用 LibcarePlus 热补丁的具体流程。

  1. 首先在第一个 shell 窗口运行需要打补丁的可执行程序,如下所示:

    # ./lpmake/foo
    Hello world!
    Hello world!
    Hello world!
    
  2. 随后在第二个 shell 窗口运行 libcare-ctl 应用热补丁,命令如下所示:

    # libcare-ctl -v patch -p $(pidof foo) ./patchroot/BuildID.kpatch
    

    若此时热补丁应用成功,第二个 shell 窗口会有如下输出:

    1 patch hunk(s) have been successfully applied to PID '10999'
    

    而第一个 shell 窗口内运行的目标进程则会出现如下输出:

    Hello world!
    Hello world!
    Hello world being patched!
    Hello world being patched!
    

58.3 查询补丁

本节介绍查询LibcarePlus热补丁的具体流程。

在第二个shell窗口执行如下命令:

# libcare-ctl info -p $(pidof foo)

此时若进程存在已经加载的热补丁,则第二个shell窗口会有如下输出:

Pid:                      551763
Target:                   foo
Build id:                 df05a25bdadd282812d3ee5f0a460e69038575de
Applied patch number:     1
Patch id:                 0001

58.4 卸载热补丁

本节介绍卸载 LibcarePlus 热补丁的具体流程。

在第二个 shell 窗口执行如下命令:

# libcare-ctl unpatch -p $(pidof foo) -i 0001

此时若热补丁卸载成功,第二个 shell 窗口会有如下输出:

1 patch hunk(s) were successfully cancelled from PID '10999'

第一个 shell 窗口内运行的目标进程则会出现如下输出:

Hello world being patched!
Hello world being patched!
Hello world!
Hello world!

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230409095258344

举报

相关推荐

0 条评论