process stack and memory leak

This commit is contained in:
2025-10-18 17:43:52 +00:00
parent 929284b5e4
commit 2c7823e97a
2 changed files with 99 additions and 1 deletions

View File

@@ -251,7 +251,7 @@ Command: CTRL+p (key bindings)
will move to previous command if focus is on src window.
Command: winheight src -2
Command: winheight src -2 (winheight or wh)
To change the size of window passed as an argument. In
this case, decrease by 2.

View File

@@ -33,3 +33,101 @@ Section 7: Foundation of Processes (Part A):
-> What is a Call stack?
+++++++++++++++++++++
+--------+
| main |
+--------+
| square |-----/
+--------+ |
|
|
|
|
|
|
\
Frame
+----------------+
| parameters |
| return address|
| locals | * Each Call stack has one section called as frame
| exceptions | which contains the information for certain operations.
| | These operations are self explainatory as written.
+----------------+
-> Navigate the Call Stack with Backtrace:
++++++++++++++++++++++++++++++++++++++
* To know about the call stack of functions, we can use...
Command:
(gdb)bt
This shows what are the function calls to trace back to the
beginning function, which is "main" in C and C++.
* To know about the arguments and the value passed to the current
function in which we are present, we can use...
Command:
(gdb)info args
* To know about the local variables of the current functions context,
we can use...
Command:
(gdb)info locals
* To know about the frame section of the function call stack, we can use:
Command:
(gdb)info frame
* To get us out of the function that we are currently in without terminating
the execution of the program.
Command:
(gdb)finish
or
(gdb)fin
* To move up in the stack, i.e. moving to the context of the calling function
, we can use....
Command:
(gdb)up
* To move up down the stack, i.e. moving to the context of the callee function
, we can use...
Command
(gdb)down
* Segmentation fault:
~~~~~~~~~~~~~~~~~~~
It is the section of memory which the program is trying to access
and it is out of bound.
For this kind of error, we get signal from kernel SIGSEGV.
* Memory leak:
~~~~~~~~~~~~
Failure to reclaim memory while our program runs.
We can also use tools like valgrind to detect memory leak issue.
Command:
$valgrind ./<program>
We can also use Address-sanitizers