extern QPixmap* pix;
extern int w, h;
pix = 0;
...
if( pix && (pix->width() != w || pix->height()->h ) )
delete pix;
судя то тому, что происходит в gdb, несмотря на то, что pix равен нулю,
вычисляется еще и правый операнд оператора &&. Вроде бы Бьярн Мертвый Страус торжественно клялся, что такого небывает...