User Space Debugging Tools in Linux Last Updated : 05 Apr, 2023 Comments Improve Suggest changes Like Article Like Report In this article, we will discuss debugging tools in Linux. Debugging Tools are those programs that allow us to monitor, control, and correct other program's error while they execute. Some of the debugging tools are as follows:- 'print Statement'Querying (/proc, /sys etc)Tracing (strace/ltrace)Valgrind (memwatch)GDB1. 'print' Statement The 'print' statement is a fundamental debugging statement in Linux. You can insert a print statement in your program to understand the program's flow of control. It is an effortless technique to debug the program. It has some disadvantages to it. Programs need to be edited and add the print statement in the program then re-run the program which is time-consuming and it does not work in extensive programs. You can add the print statement in your program like this when you get an error. It will be showing you an Error message like this print Error 2. Querying (/proc/sys etc) Sometimes, we want to know which process occupies how much memory in the system and what is the process state in the kernel, etc. If you want order to obtain this type of information you need to use the proc file system which gives you runtime system information. If you want to know more about the proc file system you can read this article Proc File Systemproc ls /procproc file system example3. Tracing strace command is used for tracing the programs and processes. strace is a diagnostic command in Linux. This command intercepts any syscall made by the command. strace can be attached to a process that is already running or to a new process. It can also be used as a tool to understand how the system calls work by tracing different commands. There are many options with strace commands you can check all options by using the man command. strace pwd Output strace command example4. Valgrind Valgrind is a suit for debugging tools. Valgrind has one tool which is widely used named 'Memcheck' It's a memory-checking tool that intercepts calls made to malloc(), free(), and delete(). It works with directly executable files. Valgrind also has some disadvantages. It might provide false positive and false negative results. It cannot detect out-of-range allocated arrays. Let's see how Valgrind works. Valgrind syntax: valgrind --tool=memcheck -least-check=yes filename We will write C code and we will try to find the error using Valgrind Let's see C #include <stdio.h> int main() { char *p; // Allocation #1 of 19 bytes p = (char *) malloc(19); // Allocation #2 of 12 bytes p = (char *) malloc(12); free(p); // Allocation #3 of 16 bytes p = (char *) malloc(16); return 0; } Output Here, you can see the 2 errors shown in this code. Valgrind Example 5. GDB GDB is debugging tool from Free Software Foundation.GDB is a debugging tool that helps to find the errors in the code. It is useful for locating and finding problems in the code. It performs various actions. starting the problemstopping at a specific locationstopping on a specific condition etc. If you want to know more about GDB you can check this article GDB Introduction Example of GDB We will write code and try to find the error using GDB C #include<stdio.h> int main(){ int x ; int a= x ; int b = a ; int c = a+b ; printf("%d\n",c); return 0 ; } Output Comment More infoAdvertise with us Next Article How to Use Regular Expressions (RegEx) on Linux N neeraj3304 Follow Improve Article Tags : Technical Scripter Linux-Unix Technical Scripter 2022 Similar Reads Introduction to Linux Shell and Shell Scripting If we are using any major operating system, we are indirectly interacting with the shell. While running Ubuntu, Linux Mint, or any other Linux distribution, we are interacting with the shell by using the terminal. In this article we will discuss Linux shells and shell scripting so before understandi 8 min read Introduction to Shell ScriptingHow to Create a Shell Script in linuxShell is an interface of the operating system. It accepts commands from users and interprets them to the operating system. If you want to run a bunch of commands together, you can do so by creating a shell script. Shell scripts are very useful if you need to do a task routinely, like taking a backup 7 min read Different Shells in LinuxSHELL is a program which provides the interface between the user and an operating system. When the user logs in OS starts a shell for user. Kernel controls all essential computer operations, and provides the restriction to hardware access, coordinates all executing utilities, and manages Resources b 5 min read Basic Shell Commands in LinuxBasic Shell Commands in Linux: Complete ListAnyone using Linux should become an expert in the essential shell commands, as they form the backbone of working with the Linux terminal. These commands enable you to navigate the system, manage files, handle processes, and configure settings effectively.The Linux shell serves as an interface for us 5 min read Linux Directory StructureIn Linux, everything is treated as a file even if it is a normal file, a directory, or even a device such as a printer or keyboard. All the directories and files are stored under one root directory which is represented by a forward slash /. The Linux directory layout follows the Filesystem Hierarchy 6 min read Input Output Redirection in LinuxIn Linux, whenever an individual runs a command, it can take input, give output, or do both. Redirection helps us redirect these input and output functionalities to the files or folders we want, and we can use special commands or characters to do so. For example, if we run the "date" command, it giv 4 min read Variables and Data TypesShell Scripting - Shell VariablesA shell variable is a character string in a shell that stores some value. It could be an integer, filename, string, or some shell command itself. Basically, it is a pointer to the actual data stored in memory. We have a few rules that have to be followed while writing variables in the script (which 6 min read Shell Scripting - Rules for Naming Variable NameVariables are quite important in any script or program, so we need to understand what is the convention to name these variables. There are certain rules and standards to keep in mind while giving names to the variables in Shell scripting. In this article, we will discuss and list down all the rules 4 min read String Manipulation in Shell ScriptingString Manipulation is defined as performing several operations on a string resulting change in its contents. In Shell Scripting, this can be done in two ways: pure bash string manipulation, and string manipulation via external commands. Basics of pure bash string manipulation: 1. Assigning content 4 min read Array Basics in Shell Scripting | Set 1Consider a situation if we want to store 1000 numbers and perform operations on them. If we use a simple variable concept then we have to create 1000 variables and perform operations on them. But it is difficult to handle a large number of variables. So, it is good to store the same type of values i 6 min read Control StructuresConditional Statements | Shell ScriptConditional Statements: There are total 5 conditional statements which can be used in bash programming if statement if-else statement if..elif..else..fi statement (Else If ladder) if..then..else..if..then..fi..fi..(Nested if) switch statement Their description with syntax is as follows: if statement 3 min read Looping Statements | Shell ScriptLooping Statements in Shell Scripting: There are total 3 looping statements that can be used in bash programming Table of Content `while` statement in Shell Script in Linux`for` statement in Shell Script in Linux`until` statement in Shell Script in LinuxExamples of Looping StatementsTo alter the fl 10 min read Break and Continue Keywords in Linux with ExamplesBoth âbreakâ and âcontinueâ are used to transfer control of the program to another part of the program. It is used within loops to alter the flow of the loop and terminate the loop or skip the current iteration. break The break statement is used to terminate the loop and can be used within a while, 3 min read Functions and Script OrganizationShell Scripting - Functions and it's typesShell scripting is a powerful tool used to automate tasks in Unix-like operating systems. A shell serves as a command-line interpreter, and shell scripts often perform file manipulation, program execution, and text output. Here, we'll look into functions in shell scripting, exploring their structure 5 min read How To Pass and Parse Linux Bash Script Arguments and ParametersParsing and Passing of Arguments into bash scripts/ shell scripts is quite similar to the way in which we pass arguments to the functions inside Bash scripts. We'll see the actual process of passing on the arguments to a script and also look at the way to access those arguments inside the script. Pa 7 min read Input And OutputShell Scripting - Standard Input, Output and ErrorWorking on Linux applications we have several ways to get information from outside and to put it inside: command line args, environment variables, files. All of these sources are legal and good. But it has a finite size. Another way to establish communication is standard streams: input stream (stdin 7 min read Shell Script to Perform Operations on a FileMost of the time, we use shell scripting to interact with the files. Shell scripting offers some operators as well as some commands to check and perform different properties and functionalities associated with the file. For our convenience, we create a file named 'geeks.txt' and another .sh file (or 5 min read Command-Line Arguments and OptionsShell Script to Demonstrate Special Parameters With ExampleHere, we are going to see what are the special Parameters of the shell script. Before that first, let's understand what is parameters in the shell. The parameter is the entity that stores the value. The variables are the parameters that are defined by the user to use in that specific shell script. A 5 min read Error Handling and DebuggingUser Space Debugging Tools in LinuxIn this article, we will discuss debugging tools in Linux. Debugging Tools are those programs that allow us to monitor, control, and correct other program's error while they execute. Some of the debugging tools are as follows:- 'print Statement'Querying (/proc, /sys etc)Tracing (strace/ltrace)Valgri 3 min read Shell Scripting - System LoggingShell scripting is a way of automating tasks and operations on a computer system by writing scripts and programs in a shell or terminal environment. These scripts can run commands, access system resources, and process data. Shell scripts are often used to automate repetitive tasks, such as backups, 9 min read Regular ExpressionsHow to Use Regular Expressions (RegEx) on LinuxRegexps are acronyms for regular expressions. Regular expressions are special characters or sets of characters that help us to search for data and match the complex pattern. Regexps are most commonly used with the Linux commands:- grep, sed, tr, vi. The following are some basic regular expressions: 5 min read Like