探索实时编程新境界:blink

探索实时编程新境界:blink

blinkA tool which allows you to edit source code of any MSVC C++ project live at runtime项目地址:https://gitcode.com/gh_mirrors/blink/blink

项目介绍

眨眼之间,代码更新,程序运行。这就是开源项目blink带来的神奇体验。它是一个创新的工具,允许你在Windows C++应用程序运行时直接编辑源代码,无需反复编译和重启。通过动态链接和函数修补,blink实现了真正的运行时代码更新。

这个项目由crosire开发,并在GitHub上开放源码。与同类项目不同的是,blink不需要你修改C++项目配置,只需源码和调试符号文件(PDB),即可在所有x86和x86-64应用中工作。

项目技术分析

blink的核心在于其编译和链接机制。当检测到源码文件变动,它将获取并执行对应的编译命令,生成新的对象文件,然后在运行中的应用程序中进行链接。这一过程中:

  • 使用blink_linker.cpp解析COFF文件并实现链接器功能,解决符号引用,动态修补函数。
  • 利用main.cpp进行远程线程注入和控制台输出循环,确保无缝对接。
  • coff_reader.cpp处理扩展OBJ文件,而msf_reader.cpppdb_reader.cpp则负责解析MSF和PDB文件,提供必要的调试信息。

应用场景

对于开发阶段的快速迭代和调试,blink是理想的选择。例如,在测试某个频繁调用的函数性能或行为时,你可以在不中断程序运行的情况下即时更新代码,立即看到效果。此外,由于它的灵活性,也可以用于实验性的代码修改或者探索性编程。

项目特点

  1. 无需修改项目设置blink支持任何使用调试符号(PDB)的C++项目。
  2. 跨平台兼容:在x86和x86-64平台上均可运行。
  3. 实时更新:对任何已编译好的函数进行即时替换,下次调用时生效。
  4. 状态同步:你可以定义特殊函数__blink_sync__blink_release来配合blink进行应用程序的状态管理。

构建与使用

构建blink需要C++17合规的MSVC 2017,之后可以利用提供的Visual Studio解决方案轻松构建。使用方式包括启动程序、附加到已运行进程,以及仅监听对象文件变化。在代码更改后,改变会即时反映在运行中的应用中。

结语

blink以一种独特的方式打破了传统的编译和调试循环,为开发者带来了前所未有的实时编程体验。无论你是寻求高效的调试方法还是追求创新的编程实践,blink都值得一试。现在,就让我们一起探索这个精彩的世界,见证实时编程的力量!

blinkA tool which allows you to edit source code of any MSVC C++ project live at runtime项目地址:https://gitcode.com/gh_mirrors/blink/blink

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

班歆韦Divine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值