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.
Let’s start off with some basics:
I understand open source licensing very well. I write a lot of code and have released code under myriad licenses. I understand the value of licensing software. I respect the authorship of code. I fucking hate talking about licensing and arguing over violations. Recently, I was harassed over GPLv2 licensing issues. It went entirely wrong, but it had a profoundly good impact on the project.
Business is king. Customers rule. Service is everything. Yet every organization I go into has an engineering group that can’t see outside their bubble. Perhaps they can, but they certainly choose not to.
I’m an engineer, I write code. I’ve written approaching 100k lines of C code in my life time, I’ve administered tens of thousands of systems in my career and I’ve help plan some of the largest customer-facing infrastructure ever built.