首页 > 其他分享 >58 KVM工具使用指南-应用 LibcarePlus 热补丁

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

时间:2023-06-25 18:31:42浏览次数:42  
标签:shell 58 KVM 补丁 LibcarePlus world foo Hello

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!

标签:shell,58,KVM,补丁,LibcarePlus,world,foo,Hello
From: https://blog.51cto.com/u_237826/6547776

相关文章

  • 【雕爷学编程】Arduino动手做(125)---WT588D语音模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 57 KVM工具使用指南-制作 LibcarePlus 热补丁
    57KVM工具使用指南-制作LibcarePlus热补丁57.1概述LibcarePlus支持如下方式制作热补丁:手动制作通过脚本制作手动制作热补丁的过程繁琐,对于代码量较大的工程,例如QEMU,手动制作热补丁极其困难。建议使用LibcarePlus自带脚本一键式地生成热补丁文件。57.2手动制作本节......
  • abc058d <公式化简>
    D-###原计算公式为:\[\sum\limits_{1\lei<j\len}\sum\limits_{1\lek<l\lem}(x_j-x_i)(y_l-y_k)\]可将xy拆分:\[\left(\sum\limits_{1\leqi<j\leqn}(x_j-x_i)\right)\left(\sum\limits_{1\leqk<l\leqm}(y_l-y_k)\right)\]仅计算x侧可进一步化简......
  • 56 KVM工具使用指南-安装 LibcarePlus
    56KVM工具使用指南-安装LibcarePlus56.1安装软件依赖LibcarePlus运行依赖于libunwind、elfutils和binutils,在配置了yum源的openEuler系统上,可以参考如下命令安装LibcarePlus的依赖软件。#yuminstall-ybinutilselfutilselfutils-libelf-devellibunwind-deve......
  • 单台服务器搭建不了虚拟化/云平台集群?是时候开启KVM嵌套虚拟化了!
    一、嵌套虚拟化嵌套虚拟化即让虚拟机支持虚拟化,也就是在虚拟机上再跑虚拟机,一般用于测试环境,当我们只有一台服务器,像模拟一个虚拟化集群、云平台的时候经常会使用到嵌套虚拟化。二、开启嵌套虚拟化本文以基于intel处理器为例,如果是AMD处理器,则讲本文的kvm_intel替换为kvm_amd即可。......
  • Archlinux安装OSX-KVM(无显卡直通)
    0.前期准备qemu虚拟机安装(可以参考Archwiki,或者是我的其他教程)OSX-KVM项目文件下载(这个项目支持macos10-13)https://github.com/kholia/OSX-KVMMacOS的iso镜像(我使用的是macos12Monterey)https://sysin.org1.磁盘文件创建在/var/lib/libvirt/images/创建qcow2磁盘文件,名为......
  • 54 KVM工具使用指南-vmtop使用指南
    54KVM工具使用指南-vmtop使用指南54.1概述vmtop是运行在宿主机host上的用户态工具。使用vmtop可以实时动态地查看虚拟机资源的使用情况,例如CPU占用率、内存占用率、vCPU陷入陷出次数等。因此,可以使用vmtop作为虚拟化问题定位和性能调优的工具。54.1.1多架构支持当前vmtop支......
  • CF958C3. Encryption (hard)
    谁说\(n\le5\times10^5\),\(k\le100\),\(p\le100\)只能\(O(nk)\)?我今天就要用\(O(nk\logp)\)过这个题!定义\(f_{i,j}\)表示前\(j\)个数,分成\(i\)段的最小价值和,\(s_i\)表示前缀和(对\(p\)取模),转移就是\(f_{i,j}=\min\limits_{l=1}^{j-1}\left\{f_{i-1,l}+\left(s_......
  • 强制关闭kvm虚拟机
    删掉之后,将处于暂停的KVM先停掉:virshdestroymaster--强制关闭KVM关闭之后,将kvm重新启动一下:virshstartmaster--开启KVM于是发现我的KVM又活回来了,哈哈哈!......
  • CH583,CH582,CH581 国产蓝牙芯片RISC-V内核BLE 5.3无线MCU
    概述CH583是集成BLE无线通讯的32位RISC微控制器。片上集成2Mbps低功耗蓝牙BLE通讯模块、2个全速USB主机和设备控制器及收发器、2个SPI、4个串口、ADC、触摸按键检测模块、RTC等丰富的外设资源。CH583相比CH582多了SP11主机,支持最低1.7V电源电压。CH581基于CH582简化,去掉了-......