Project setup agnostic
Live++ doesn't care about how your project is set up. It works with .EXE, .DLL, and .LIB based projects.
Live coding does not require any IDE plugins or similar. Use any text editor for changing your application's source code.
Live++ uses the native toolchain which the executable was built with for compilation, and does not parse any source code.
Live++ works at the binary level using .PDB, .EXE, .DLL, .LIB, and .OBJ directly. It extracts and reverses most of the needed information from executable and object files.
32-bit and 64-bit
Live++ fully supports x86/32-bit and x64/64-bit applications.
The Live++ .DLL is very lightweight, adding only ~100 KiB to your application's memory footprint. Almost all information is kept in a separate process.
Extensive C++ Support
Live coding supports all C++ features such as RTTI, polymorphism, exceptions, etc. It allows introducing new code & data symbols at the global, thread-local and function-static level, automatically persisting the state of existing symbols.
See it in action
Additional C/C++ API
Live++ comes with an additional API that allows you to do even more advanced live coding, which would otherwise be impossible.
Live++ offers pre- and post-patch hooks that allow you to even make changes to the memory layout of classes. Code like the example below allows you to add & remove members to & from classes.
Even though patching a running executable using Live++ is always safe, the API enables you to emit synchronization points into your executable, ensuring that code patches are always applied at e.g. the start of a single frame.
Program debug database
Live++ needs a full PDB file in order to extract some of the needed information about the executable.
Live coding requires the Live++ DLL to be loaded by your application.
Visual Studio compiler
Code needs to be compiled and linked using a Visual Studio compiler (*).
(*) Subject to change, requirement might be removed in future versions
Frequently asked questions
Supported IDEs & debuggers
Supported compilers & settings
However, Live++ works in a very generic way, with only a handful of cases that need compiler-specific treatment. We plan on supporting other compilers such as Clang in the future.
Required code changes
In case you have any questions not covered by our FAQ, do not hesitate to contact us directly.
Got your attention?
Live++ is scheduled to be released early 2018 and is currently available as a closed beta for a few select partners.
Beta registration has closed. There will be a trial version available with the public release.