Greg Law

Greg is the co-founder and CEO of Undo.io. He is a coder at heart, but likes to bridge the gap between the business and software worlds.

Greg's experience includes creating and working on Operating Systems, Networking Stacks and Developer Tools. He has held development and management roles at companies including the pioneering British computer firm Acorn, as well as fast-growing start ups, NexWave and Solarflare. It was at Acorn that Greg met Julian and on evenings and weekends, they invented the core technology that would eventually become Undo.

Greg holds a PhD from City University, London and was nominated for the 2001 British Computer Society Distinguished Dissertation Award. He lives in Cambridge, UK with his wife and two children and in his spare time, catches up on email.

Sessions

  • How the Linux User/Kernel ABI Really Works.

    Intermediate
    Advanced
    Performance

    All programs need to interact with the wider system in order to do useful work. C and C++ programmers typically write to the C library as the lowest layer: an abstraction onto the OS that is a not-quite-perfect model. It is often useful to understand the ABI you are really programming to, e.g. when you're debugging without source code available, doing fine-grained profiling and optimisation, writing intercept libraries, etc. This talk covers how system calls are really implemented (int 0x80, syscall, the vdso and the vsyscall page, and how return codes are translated into errno); how signal handlers really work […]

  • How do Time Travel Debuggers Work?

    Intermediate
    Advanced
    Tooling/Utilities

    Time-Travel Debuggers are powerful tools for debugging complex C++ code. They present the programmer with an infinitely detailed view of program execution: the programmer can inspect any piece of program state (memory or registers) for any line of code that executed. And all with surprisingly low runtime and memory overheads. This is especially relevant for C++ which, by design, allows for many kinds of bugs that are impossible in other, safer languages. But how do these seemingly-magically tools really work? This talk dives deep into the implementation details of the three highest profile time travel debuggers: rr, Microsoft's TTD, and […]