Zu 1) würde die Erklärung dazu den Rahmen sprengen. Wenn du willst, kannst du dich dazu hier einlesen: http://home.arcor.de/nefar/BadRefDebuggingGuide.html