We Might Get a Virus!
Warning, serious geekery follows:
The UNIX version of our software is bombing with “Segmentation Fault – Core Dumped” at a customer site? Hmm. Did it leave behind a “core” file? Yep. Okay, all I need is to get my hands on that, run adb to get a stack trace, compare it to an assembly language listing generated from the original C source, and it’s Miller time.
I get off the phone with the customer as my manager comes up. “Yeah, we just need to get that core file over here; no big deal. I’ll have them email it to me,” I tell him.
“Well, yeah, but it’s a binary file.”
“So we can’t have them send us that. We might get a virus.”
Ten minutes of fruitless arguing later, I said, “Well, then, we can have them do a hex dump of the file into a text file. They email us that, I write a little utility to extract the data, and…”
“Data? We can’t have them send us an email attachment with data in it. We might get a virus.”
“Uh, but it’s a text file.”
“No, you just said it’s a data file. I heard you quite clearly.”
Much more arguing, to no avail. The file was too big to fit on a floppy that could be mailed to us. What to do?
The one solution my manager would accept? Have them create the hex dump file, print it out, and FAX us the listing. Take the thick stack of FAX paper and split it up into batches, giving it to various people to type out manually into text files. Carefully proofread the files, and then combine them into one file. Write a utility to read that file and create the original binary file. Everything proceeds normally from there.
There was a shocked silence on the other end of the phone after I proposed this procedure to the customer, followed by: “That’s insane.”
“That’s what I’ve been instructed to tell you,” I replied in as neutral a tone as I could muster.
Another shocked silence, and then: “You work for morons, you do know that, don’t you?”
“I’m sure that thought has occurred to at least one person in this building,” I replied in my best deadpan tone. They were pretty disgusted with us, but did what I asked anyway.
The problem was an uninitialized variable, by the way.