Home

Ninja-Segfault

Montag, 7. Februar 2011 | Autor:

Letzte Woche hatte ich einen Bug, der mich 4 Stun­den und die ent­spre­chende Menge Ner­ven gekos­tet hat. Der Ori­gi­nal­code ist ziem­lich undurch­sich­tig, des­we­gen habe ich eine kleine, kom­pi­lier­bare Demo geschrieben:

#include <vector>
#include <stack>

class Blubb
{
	public:
		std::vector<int> * liste;
		Blubb() {
			liste = new std::vector<int>(10);
		}
		~Blubb() {
			delete liste;
		}
};

int main()
{
	std::stack<Blubb> stapel;
	Blubb blip;
	stapel.push(blip);
	return 0;
}

Wer meint, C++ zu beherr­schen, darf jetzt grü­beln, warum die­ser Code einen Seg­fault wirft. Viel Spaß dabei! ;) wei­ter…

Thema: Sezierte C++-Käfer | 2 Kommentare

Debugger - GDB

Montag, 22. November 2010 | Autor:

Debug­ger sind Pro­gramme, die einem bei der Feh­ler­su­che hel­fen sol­len. Mit einem Debug­ger kann man das Pro­gramm quasi bei der Arbeit beob­ach­ten: Wel­che Code­zeile wird als nächs­tes aus­ge­führt? Was ent­hält diese und jene Varia­ble momen­tan? Wie sieht der Call-Stack/Backtrace momen­tan aus? An wel­cher Stelle stürzt das Pro­gramm genau ab? und vie­les ande­res mehr.

Für C++ (und jede Menge ande­rer Spra­chen) gibt es den GNU-Debugger, kurz GDB. wei­ter…

Thema: Programmieren, Sezierte C++-Käfer | Beitrag kommentieren