 Well, in this video, I'm going to talk about the hot code replace and obsolete methods on a stack. Now, first of all, it's a simple program that has the main function and it's a squared function, the main function calling the square function. If I run my program normally you can see the value that I get is 2500, which is the square of 50. But sometimes when you want to check if there is a mistake in your program, you debug your program. Now, there's a little green icon in Eclipse for debugging, but if you debug without inserting breakpoints, it basically just goes through your program and nothing really changes. Now, to debug properly, you have to insert breakpoints and you do that by double clicking on the lines where you want your program, program's execution to stop. So wherever you double click is going to insert a little circle, which means that the program is going to stop there and you have to allow explicitly to continue. Now if you click the debugging icon, it stops at line five. There's a little resume button. You click that it goes to the square function line 10. If you click it goes to line 11. And if you click it goes back to line six. After the value is copied into D on line five. And then line six executes and your program terminates. So let's talk about that more in week two lecture, but for the time being, let's proceed with debugging. So any debug, essentially the state of your program is maintained. And let's say I make. So right now what's happening is main function is being executed, if I resume. The main function has called the square function and that's called this call stack. And each of these function calls is a stack frame. So the main function call, then called square function with n equals 50. So that's one stack frame. So I can resume, resume, resume and terminate. That's fine. Once more. As I said, when you debug the state of the function, which is on the call stack is maintained. So the main function has a specific state as far as Java's execution goes. So if I mess with that state. So if I comment out system.out.println and save this. I will get an error that the program contains obsolete methods and you can see that the main method is now obsolete. Why, because I've made changes to the function. So you guys terminate that execution. You can also remove all terminated if you want to clean up the debugging view. Now save the program debug again. And now you don't have that problem. So the root of the problem is making changes to functions that are already on the call stack. Thanks for watching and I'll see you again. Bye.