How to check ATmega328 or ATmega168

Thanks for the quick answer.

It's not just constants variables and arrays take up space as well as the depth of procedures. That is a procedure calling another procedure and so on.

Yes, I know, but i doesn't have any recursive procedure or something similar. I don't use pointers or string operators, so I think it can't be related to a pointer issue. But as I'm using 3th party libs I can't be 100% sure (NewSoftSerial and TinyGPS from arduiniana.org so I think it's are a sure source)

Is there any Arduino simulator or similar where I could test the SRAM use?