Loading Different Shared Libraries In GDB When Analyzing a Core Dump

Today I’m starting something new on this blog. Whenever I find a solution to a software development problem I encounter and believe it’s worth telling, I’ll write it here.

This time – loading different shared libraries when analyzing a core dump in GDB on Linux. By “different” I mean “not the libraries that GDB finds and uses when the core dump is loaded”. The motivation to do this is, for example, if you have libraries on the computer you’re using to analyze the core dump that are different from the libraries which were used while the application ran. If you have the latter in some directory, say in the path /tmp/core/libs, then the way to redirect GDB to them is:

(gdb) set solib-absolute-prefix /dev/null/
(gdb) nosharedlibrary
(gdb) set solib-search-path /tmp/core/libs

Note that /tmp/core/libs must be a full path, without using ~ or anything. It doesn’t work. My guess is that this is unacceptable by the loader, which loads the libraries starting from the specified path.

Diligent Announces Record Throughput Speed

Diligent, you know… the place I work for, has announced a speed record which was achieved on a customer’s site. The throughput speed recorded there was 400 MB/second. Now it may not sound like a lot, but let me tell you why it’s impressive: Diligent’s product does not duplicate data that was already backed up. Generally, this kind of technology is called de-duplication. Diligent’s product is called ProtecTIER.

To do de-duplication the machine has to identify whether the information is already there or not. Doing this efficiently on huge amounts of data is very hard. Considering another fact – that ProtecTIER does this while the data is flowing and not in some background process like other de-duplication products – makes it even more impressive. We have a really good team here.

I guess you have to be a part of this to really appreciate both the amount of work that is put into ever-increasing throughput speeds and the way everyone here works towards this goal, always coming up with new ideas and improvements.

If you want to learn more about backup de-duplication technologies, you can read about it in this fresh Computer World article.

Why You Should Care About RSS

I wrote before about Google’s RSS reader (previous post link) but I always wanted to educate about RSS. I just couldn’t find the right way to explain it, so that it will be perfectly clear how anyone can use RSS for consuming content faster and better. Luckily for me, Download Squad (main website link) took the time to write an article called “why do you care about RSS?”, which does the explaining work. They include both sides – the reader and the website owner, which is also nice.

I Only Care About The Company That Much

This has happened to me more than a few times. A problem is found in code that I’m responsible for on a customer’s site. There’s always rush and there’s always concern. This is good. While I have concern for my employer’s name and reputation, one of the first things I do is go check if the problem was caused by something that I did. When I tell colleagues that I’m happy it wasn’t my fault, the usual response is “it doesn’t matter. The customer thinks we [the company] suck.”

Well, I only care about the company I work for that much. I truthfully care more about whether or not my code, which I wrote with my own 10 fingers, is responsible for the problem. Not only do I think this is a good thing, I also think this is the better approach. Employees who claim they “see the big picture” may consequently think they can write crappy code and get away with it thinking that, as long as things work, it’s ok.

The Amazing Story Of Tetris Video

Tetris needs no introduction. It’s one of the most popular games in the world despite its simple gameplay. This 1 hour BBC show tells the amazing story of this game, which includes collisions between cold war politics and big capitalist companies, as the game was originally created in Russia. (via Digg)

Visual C++ Express Edition 2005 – First Impression

Not too long ago I installed Microsoft’s Visual C++ Express Edition 2005 (link to all express editions of Visual Studio) at home. Mainly because I needed a good development environment for C++, and not for developing something big. Visual Studio 2005 has a solid feel to it, unlike Visual Studio .NET 2003, which always gave you a sense of insecurity in the sense that it might crash on the next mouse click event (and definitely unlike Visual Studio .NET 2002, which actually did crash).

Another good thing about Visual C++ Express Edition 2005 is that you can open a new project from existing code and still get the benefits of IntelliSense, which has also improved. I use this feature to edit work-related code at home instead of remote-controlling my work PC from home. I didn’t try writing Windows code, only native C++ code (and I definitely didn’t try writing managed C++ code).

So, generally speaking, my first impression is very good. I like Visual C++ Express Edition 2005. It’s a solid product, and best of all – it’s completely free (as in beer). However, I have two complaints:

  1. To write a native C++ application you have to start from an empty project. Otherwise, Visual Studio will write a function called _tmain() instead of main() for you. There’s probably a reason for this, but if you’re a student who just wants to write plain C code for a course, it’s an annoyance.
  2. The default debug settings for an empty project cannot be used for debugging. This is very strange and very annoying. Why is it called a debug build if I can’t actually, you know… debug? Anyway, the settings you need to change in order to debug are in your project’s properties:
    • C/C++ -> General: Debug Information Format=Program Database
    • C/C++ -> Optimization: Optimization=Disabled
    • Linker -> Debugging: Generate Debug Info=Yes

CloneSpy – Find Duplicate Files In Windows

CloneSpy is a very small and nice application for finding duplicate files on your machine. After one minute of reading the quick-start guide you can get a list of all the duplicate files on your computer. I found about 200 MB of duplicates, most of them were deleted. Very nice for keeping a tightly organized Windows machine. (via Download Squad)

We’re Officially Approaching Bubble Status. Everyone Hold Tight

On September 4th, 2006 I asked if we were in a new bubble (previous post link). Although I don’t think it was so hard to see it coming, it seems that now is the time to give a smug smile and say: I was right. We are seeing startups starting to close shop and investors being careful about investing in anything that says “Web 2.0”. Before the bubble burst in the year 2000, any company that added the “.com” suffix to their name (news article about those crazy times) got great investments for no apparent reason.

Now Michael Arrington of TechCrunch, a blog which (also) covers startups and even has a DeadPool tag for those that didn’t make it (see all the companies in there) writes an article called “Bubble, Bubble, Bubble”. Need I say more?

Maybe I should get back to work now.

Synchronized Lyrics, (kind of) like my IKDB idea

A long time ago I told you about an idea I had for a lyrics database that could also be used for Karaoke (previous post link). Now I read that Microsoft’s Zune (the failing-so-far iPod competitor) is going to get a feature called “Synchronized Lyrics”. This is a reasonable advancement for digital audio players (DAPs) now that they already show the album covers and art on the screen while playing songs. So – another one of my ideas gets implemented. I wonder what the lyrics format will be. If it will be an open one, I predict that pretty soon an open database will come to life.