I haven’t talked much publicly about libmtev, but I think it might be about time to start. The C programming language isn’t going to die anytime soon and it has some distinct performance over some of the more populate emerging languages: the compilers are the most mature and there is no garbage collection{% sidebar-link gc %} (so no GC pauses). Alas, this isn’t about C as a language, but about the library that I started (within another project) in 2007.
I recently had the honor of talking about distributed tracing at CraftConf 2015. Wonderful conference, wonderful crowd and the talk was well received. Bset summary: “Worth watching, even if you are a vegan.”
I wrote a post about data rot over on the Circonus blog.
Picking up right where we left off in our previous exercises. We’ve got a core due to an error. We fix the error by removing line 31 from myprog.c and rebuilding. The program runs now… prints out some text and pauses… to simulate a long-running program that we need to debug without disrupting too much.
Let’s get a core!
# UMEM_DEBUG=default ./myprog & [1] 74502 read 25144 words. # echo '::gcore' | mdb -p `pgrep myprog` mdb: core.
So what’s this all about then? Debugging. I’ve written a lot of C, I still write a lot of C and I sure as hell end up debugging a lot of C. One thing that pisses me off is when I’ve got a core file, but I’ve no idea about the exact version or build of the ELF binary that produced it. The bottom line is that I still need to find the failure.
I’ve seen various posts from a diaspora of “entrepreneurs” that have resulted in nothing more than a cacophony of conflicting advice. Some of that advice was (in my opinion) bad. What better way to fix this than add my own!
I started by first business OmniTI in 1997 and then proceeded to found three other companies: Fontdeck, MessageSystems, and Circonus. I’ve been around a bit and understand the stresses of growing a company from nothing (no funding) as well as from taking rounds of financing and leveraging debt.