Infinity

From Infinity Wiki
Jump to: navigation, search

Infinity is a platform-independent system for executables and shared libraries to expose functionality to debug, monitoring, and analysis tooling. It grew from a need for GDB to be able to debug multithreaded applications without requiring libthread_db. Other systems exist that use the libthread_db paradigm, for example librtld_db and OPMD; Infinity was designed to replace this entire class of library-tool interface with something more portable and robust.

In Infinity, executable and shared library files contain Infinity notes in addition to their regular contents. Each Infinity note is a platform-independent function that note-consuming tools can load and execute. The set of notes in an executable or shared library forms an API of Infinity functions that software-development tools can use.

The three main components of Infinity are I8C (the note compiler), I8X (a note-testing framework) and libi8x (the client library).

Current Status

Patches for glibc and GDB to allow thread-debugging without libthread_db are expected to be produced by December 2016.

Full-system preview releases will be made periodically in the meantime. The second full-system preview release (Second Wind) was released November 9, 2016.

Contribute!

Sign up to the mailing list and say hello if you want to help. Send an empty email to infinity-subscribe@sourceware.org to subscribe.

If you're good with compilers I'd love for I8Language to be nicer to write. I have some ideas but I don't know how to implement them. Even hints would be great...

And definitely mention if you’re writing software that uses Infinity notes.

Links