After you have set up the basics of your debugging environment as specified in the configuration tutorials for each target compiler/platform, you can learn more details about debugging C/C++ in this section.
Visual Studio Code supports the following debuggers for C/C++ depending on the operating system you are using:
- Linux: GDB
- macOS: LLDB or GDB
- Windows: the Visual Studio Windows Debugger or GDB (using Cygwin or MinGW)
Windows debugging with GDB
You can debug Windows applications created using Cygwin or MinGW by using VS Code. To use Cygwin or MinGW debugging features, the debugger path must be set manually in the launch configuration (launch.json
). To debug your Cygwin or MinGW application, add the miDebuggerPath
property and set its value to the location of the corresponding gdb.exe for your Cygwin or MinGW environment.
For example:
"miDebuggerPath": "c:\\mingw\\bin\\gdb.exe"
Cygwin/MinGW debugging on Windows supports both attach and launch debugging scenarios.
To learn more, see Configure C/C++ debugging.
If you are debugging with GDB on Windows, see Windows Debugging with MinGW64.
Conditional breakpoints
Conditional breakpoints enable you to break execution on a particular line of code only when the value of the condition is true. To set a conditional breakpoint, right-click on an existing breakpoint and select Edit Breakpoint. This opens a small peek window where you can enter the condition that must evaluate to true in order for the breakpoint to be hit during debugging.
In the editor, conditional breakpoints are indicated by a breakpoint symbol that has a black equals sign inside of it. You can place the cursor over a conditional breakpoint to show its condition.
Function breakpoints
Function breakpoints enable you to break execution at the beginning of a function instead of on a particular line of code. To set a function breakpoint, on the Run view right-click inside the Breakpoints section, then choose Add Function Breakpoint and enter the name of the function on which you want to break execution.
Expression evaluation
VS Code supports expression evaluation in several contexts:
- You can type an expression into the Watch section of the Run view and it will be evaluated each time a breakpoint is hit.
- You can type an expression into the Debug Console and it will be evaluated only once.
- You can evaluate any expression that appears in your code while you’re stopped at a breakpoint.
Expressions in the Watch section take effect in the application being debugged; an expression that modifies the value of a variable will modify that variable for the duration of the program.
Multi-threaded debugging
The C/C++ extension for VS Code has the ability to debug multi-threaded programs. All threads and their call stacks appear in the Call Stack section:
Memory dump debugging
The C/C++ extension for VS Code also has the ability to debug memory dumps. To debug a memory dump, open your launch.json
file and add the coreDumpPath
(for GDB or LLDB) or dumpPath
(for the Visual Studio Windows Debugger) property to the C++ Launch configuration, set its value to be a string containing the path to the memory dump. This will even work for x86 programs being debugged on an x64 machine.
Additional symbols
If there are additional directories where the debugger can find symbol files (for example, .pdb
files for the Visual Studio Windows Debugger), they can be specified by adding the additionalSOLibSearchPath
(for GDB or LLDB) or symbolSearchPath
(for the Visual Studio Windows Debugger).
For example:
"additionalSOLibSearchPath": "/path/to/symbols;/another/path/to/symbols"
or
"symbolSearchPath": "C:\\path\\to\\symbols;C:\\another\\path\\to\\symbols"
Locate source files
The source file location can be changed if the source files are not located in the compilation location. This is done by simple replacement pairs added in the sourceFileMap
section. The first match in this list will be used.
For example:
"sourceFileMap": {
"/build/gcc-4.8-fNUjSI/gcc-4.8-4.8.4/build/i686-linux-gnu/libstdc++-v3/include/i686-linux-gnu": "/usr/include/i686-linux-gnu/c++/4.8",
"/build/gcc-4.8-fNUjSI/gcc-4.8-4.8.4/build/i686-linux-gnu/libstdc++-v3/include": "/usr/include/c++/4.8"
}
GDB, LLDB, and LLDB-MI Commands (GDB/LLDB)
For the C++ (GDB/LLDB)
debugging environment, you can execute GDB, LLDB and LLDB-MI commands directly through the debug console with the -exec
command, but be careful, executing commands directly in the debug console is untested and might crash VS Code in some cases.
Other debugging features
- Unconditional breakpoints
- Watch window
- Call stack
- Stepping
For more information on debugging with VS Code, see this introduction to debugging in VS Code.
For additional ways to configure the launch.json file so that you can debug your C/C++ app, see Configure C/C++ debugging.
Natvis framework
You create custom views of C++ object in the debugger with the Natvis framework. You can read the Custom views for native objects topic for details on using Natvis with the C/C++ extension.
Debug remotely
For information about attaching to a remote process, such as debugging a process in a Docker container, see Pipe transport.
Debug the debugger
If you are experiencing a debugging problem with the extension that we can’t diagnose based on information in your issue report, we might ask you to enable logging and send us your logs. See Enable logging for the debug adapter to learn how to get C/C++ extension logs.
Known limitations
Symbols and code navigation
All platforms:
- Because the extension doesn’t parse function bodies, Peek Definition and Go to Definition don’t work for symbols defined inside the body of a function.
Debugging
Windows:
- GDB on Cygwin and MinGW cannot break a running process. To set a breakpoint when the application is running (not stopped under the debugger), or to pause the application being debugged, press Ctrl-C in the application’s terminal.
- GDB on Cygwin cannot open core dumps.
Linux:
- You may see an error saying:
ptrace: Operation not permitted
. This is due to GDB needing elevated permissions in order to attach to a process. This can be solved using the solutions below:-
When using attach to process, you need to provide your password before the debugging session can begin.
-
To disable this error temporarily, use the following command:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
-
To remove the error permanently, add a file called
10-ptrace.conf
to/etc/sysctl.d/
and add the followingkernel.yama.ptrace_scope = 0
.
-
macOS:
- LLDB:
- When debugging with LLDB, if the Terminal window is closed while in break mode, debugging does not stop. Debugging can be stopped by pressing the Stop button.
- When debugging is stopped the Terminal window is not closed.
- GDB:
- Additional manual install steps are required to use GDB on macOS. See Manual Installation of GDB for OS X in the README.
- When attaching to a process with GDB, the application being debugged cannot be interrupted. GDB will only bind breakpoints set while the application is not running (either before attaching to the application, or while the application is in a stopped state). This is due to a bug in GDB.
- Core dumps cannot be loaded when debugging with GDB because GDB does not support the core dump format used in macOS.
- When attached to a process with GDB, break-all will end the process.
Next steps
Read on to find out about:
- Configure VS Code for Windows Subsystem for Linux
- Configure VS Code for Mingw-w64 and GCC
- Configure VS Code for macOS
- Configure C/C++ debugging — Learn about additional debugger configuration options.
- Basic Editing — Learn about the powerful Visual Studio Code editor.
- Code Navigation — Move quickly through your source code.
- Tasks — use tasks to build your project and more.
- Debugging — find out about the Visual Studio Code debugger.
If you have any other questions or run into any issues, please file an issue on GitHub.
5/21/2020
This article is about using VS Code for Debugging your C/C++ code on Windows(8/9/10). I thought it was a simple task when I was trying to debug my code for one of the problems for an online coding competition on codeforces but I found out a lot of blockers in front of me when I did it the very first time.
The first one of those was setting up a debugger in Windows(Windows 10 in my case) was quite problematic when used for languages like C++. Although I could have used Codeblocks which supports debugging features on Windows platforms in this case, but I am not used to light-theme applications and I don’t quite like the debugging interface it offers. Like a lot of other developers, I am a fan of dark-themes too, and using something like VS Code will give me more options to explore in dark themes. For that reason, I decided to get the debugger for C++ running on my Windows system.
After a lot of googling and reading a lot of articles on the same, I was finally able to debug my C++ code using VS Code on my Windows system but it took a lot of my time to work out the complete solution. So I decided to prepare a compiled step-by-step guide for the complete process so that everything can be found at a single place. Here are the steps:
-
Install Visual Studio Code.
-
Install Windows Subsystems for Linux(WSL) using the instructions from the official documentation here.
-
Install your Linux distribution of choice. Just open the Microsoft Store and select your favorite Linux distribution(Ubuntu in my case).
-
After installation is completed, search for the Linux distribution which you installed in windows search(lets say Ubuntu). Opening it will start the WSL command prompt.
-
Inside the WSL command prompt, first run apt-get update to update the Ubuntu package lists just to avoid any issues because of out-of-date packages:
sudo apt-get update
-
Next, install the GNU compiler tools and the GDB debugger by typing:
sudo apt-get install build-essential gdb
-
After installing the compiler tools, verify that the GNU C++ Compiler and the debugger is installed by using these commands:
g++ --version gdb --version
If both these commands do not return the version currently present on WSL and give some error, try updating/installing the GNU compiler tools once again.
-
Now your Linux environment is fully set up to get the things running. Create a folder for your visual studio project(say helloWorld) and open it in Visual Studio Code in the project folder using following commands.
mkdir helloworld cd mkdir code .
-
Opening VS Code in WSL command prompt will install a small server(VS Code Server) on the Linux side that the Windows system VS Code will talk to.
-
Once the VS Code is open on WSL, go to View > Extensions(or Ctrl+Shift+X) and install these two extensions:
- Remote — WSL extension : The Remote — WSL extension extension lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code.
-
C/C++: C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.
-
Once these two extensions are installed, you will see the context in which the VS code is running is changed to [WSL: Ubuntu] in the status bar present at the bottom of Visual Studio.
-
Now you are ready to write your code. Add a source code file(say helloWorld.cpp) from VS code and write your code in that file:
// helloWorld.CPP #include<bits/stdc++.h> using namespace std; int lengthOfLIS(vector<int>& a, int n) { if(n==0) return 0; vector<int> dp(n, 0); dp[0] = a[0]; int len = 1; for(int i=1; i<n; i++){ auto it = lower_bound(dp.begin(), dp.begin()+len, a[i]); if(it == dp.begin()+len) dp[len++] = a[i]; else *it = a[i]; } return len; } int main(){ int n; cin>>n; vector<int> v; int x; for(int i=0; i<n; i++){ cin>>x; v.push_back(x); } cout<<lengthOfLIS(v, n); }
-
Build the Task: After writing the code, go to
Terminal > Configure Default Build Task
. In the dropdown, chooseg++ build active file
, which will build the file that is currently displayed(helloWorld.cpp in this case) in the editor. -
This will create a tasks.json file in a .vscode folder and open it in the editor. Your new tasks.json file should look similar to the JSON below:
{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "g++ build active file", "command": "/usr/bin/g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "/usr/bin" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true } } ] }
-
Next,
Run > Add Configuration
and then chooseC++(GDB/LLDB)
.
You’ll then see a dropdown for various predefined debugging configurations. Chooseg++ build and debug active file
. VS Code creates a launch.json file which should look like this:{ /**************************************************** Use IntelliSense to learn about possible attributes. Hover to view descriptions of existing attributes. For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 ****************************************************/ "version": "0.2.0", "configurations": [ { "name": "g++ - Build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "g++ build active file", "miDebuggerPath": "/usr/bin/gdb", } ] }
-
Now you can start the debugging session. Go back to helloworld.cpp so that it is the active file. Press F5 or from the main menu choose
Run > Start Debugging
. Do not forget to set the breakpoints(just click on the left of line number) where you want the debugger to stop as shown in the sample image below.
- This way you can set breakpoints and go line by line(https://code.visualstudio.com/docs/cpp/config-mingw#_step-through-the-code) through your code using the debugger options to find where it might be going wrong. Here is some help on how to use a debugger.
So that is it. Hope it helps in debugging the C++ code on Windows OS and making lives easier.
By the end of this short guide, you’d be able to run, debug, and get IntelliSense for C/C++ files in VSCode. Though, this guide is focused on the Windows platform but can be extended to Mac and Linux with some minor changes.
I extensively used C & C++ in my competitive programming years and wanted better support for debugging & IntelliSense. The only options available were Dev-C++ (outdated) and the original «Mammoth» Visual Studio. Lately, I found VSCode and fell in love with it (first love was Atom). I tweaked it around and set it up as a complete IDE For small C, C++ projects especially geared towards competitive programming.
Create a sample C/C++ project
-
Open/Create an empty folder in VSCode.
-
Create a
new.cpp
file inside it like below:#include <iostream> using namespace std; int main() { cout << "Hello World" << endl; // uncomment below line to stop cmd from exiting immediately in case of "externalConsole": true //system("pause"); return 0; }
-
Install recommended C/C++ extension in VSCode and reload.
Official C/C++ Extension for VSCode
Install C/C++ Compiler
C/C++ extension does not include a C++ compiler. So, you will need to install one or use which is already installed on your computer.
Windows: Download MinGW64.zip (latest release) and extract it to the C Drive.
Mac: xcode
Linux: gcc
Also, Make sure to add C++ compiler PATH to environment variable of your platform. For Windows MinGW64 add: C:\MinGW64\bin
Run and Debug C/C++ Code
You’ll notice that there is also a .vscode
folder in your sample project. To configure debug configuration
, 2 files are required launch.json
and tasks.json
inside .vscode
folder.
VSCode can create and auto-configure these files if we try to debug for the first time. To do that, open C++ file in VSCode and either hit F5 or go to Debug -> Start Debugging and select C++ (GDB/LLDB)
then select g++.exe build and debug active file
.
This should create 2 files launch.json
and tasks.json
in .vscode
folder which should look like below (update the MinGW64 path if not correct)
Notice that I’ve added one more optional configuration g++ build & run active file
in launch.json
and g++ build & run
in tasks.json
file for purpose of also Running C/C++ code without debugging. Now you may choose which configuration to pick when you start debugging. You may remove the configuration whichever you won’t need.
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false, //set to true to see output in cmd instead
"MIMode": "gdb",
"miDebuggerPath": "C:\MinGW64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe build active file"
},
{
"name": "g++ build & run active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false, //set to true to see output in cmd instead
"MIMode": "gdb",
"miDebuggerPath": "C:\MinGW64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++ build & run active file"
}
]
}
tasks.json
{
"tasks": [
{
"type": "shell",
"label": "g++.exe build active file",
"command": "C:\MinGW64\bin\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\MinGW64\bin"
}
},
{
"type": "shell",
"label": "g++ build & run active file",
"command": "C:\MinGW64\bin\g++.exe",
"args": [
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\MinGW64\bin"
}
}
],
"version":"2.0.0"
}
externalConsole in launch.json can be set to true to see code output in cmd instead.
Restart VSCode to take effects of newly added compiler paths.
Open any C/C++ file, set some breakpoints (or not), and hit the Big Green Play Button.
(Shortcut to debug: F5 )
Tip: To hide *.exe
files in the side explorer of VSCode, open settings and paste the below config:
"files.exclude": {
"*.exe": true
}
💬 Discuss on Github
That’s all, folks!
I’ve never used a debugger and the time has come to give them a try. MinGW appears to come with GDB which I’ve been trying to use. Supposdly running gdb from the command line and typing run myprog.exe
starts the debugger but when I do this I get
Starting program: C:\MinGW\bin\myprog.exe MyProg.exe
[New Thread 1828.0xd8c]
Error opening file.
[Inferior 1 (process 1828) exited with code 02]
How to proceed or what’s an easier way?
In particular I’m trying to flush out undefined behavior.
asked Oct 4, 2013 at 8:36
CeleritasCeleritas
14.5k36 gold badges115 silver badges194 bronze badges
Since your program terminates, you’ll need to set a breakpoint to see anything. Try break main
before the run line. Then you can do commands line next
(next line), step
(step into/outof function calls), print expression
(where expression can be a variable name or a function-call or a calculation), display expression
(same as print, but prints just before each prompt). At any given point you can type backtrace
to get a call stack. You can even type up
and down
to move up the callstack, so you can print higher local variables.
answered Oct 4, 2013 at 8:48
luser droogluser droog
19.1k3 gold badges53 silver badges105 bronze badges
1
Well, the easiest way would be to use an IDE, actually. You might want to give code::blocks a try — very easy to use, configures everything for you on installation (just make sure to pick a compiler — don’t worry, it’ll prompt you) and there, you’re all set and ready to go. As it’s multi-platform, it doesn’t really lock you into windows either, and gives you very powerful (and, I guess more importantly, convenient) possibilities of graphical debugging.
answered Oct 4, 2013 at 8:39
FenixpFenixp
6455 silver badges22 bronze badges
1
pass the binary with gdb
gdb <binary>
then set breakpoint to main
gdb) break main
Then run your program in gdb
gdb) run
then break point hits use ‘n’ or ‘next’ to step to different lines
gdb) n
Use ‘s’ for stepping into function and ‘p’ printing var value
Example :
gdb) s <fun_name>
gdb) p x
answered Oct 4, 2013 at 9:08
Sohil OmerSohil Omer
1,1717 silver badges14 bronze badges
I would suggest , as a beginner start off with Visual Studio. It has a very good and easy to use debugger. Just create a break point in the line from which you want to start debugging (click on the left bar beside the line or right click and create a break point). Once your break points are set you can just simply run the program in debug mode and the execution of the program will halt in the point where the break was created.
At this point you should be able to view all valuable information about the execution of the program. You can use F10 to continue the execution step or F11 to step inside the execution tree.
The debugger as many other advanced features like break on condition , hit count etc but you can start off with it’s basic functionality.
answered Oct 4, 2013 at 10:33
Genocide_HoaxGenocide_Hoax
8432 gold badges19 silver badges42 bronze badges
1
If I compiled a program like this:
gcc -o my-prog -g myprog.c
I could then debug the executable my-prog
it like this:
gdb my-prog
The -g
option tells gcc
to generate full debugging info. Other compilers will have their own versions of this option (e.g. the MSVC cl
command has the /Zi
option).
Since you’re having issues running the gdb
on your program, it might be worth checking if it was compiled with debugging info in the first place. The debugging info is usually generated in the same location as where you compiled your program.
answered Sep 29, 2021 at 15:38
Contents
- 1 Tutorial Debugging C Programs In Vs Code On Windows
- 2 Tutorial: Debugging C Programs In Vs Code On Windows
- 2.1 Conclusion
- 2.1.1 Related image with tutorial debugging c programs in vs code on windows
- 2.1.2 Related image with tutorial debugging c programs in vs code on windows
- 2.1 Conclusion
Master Your Finances for a Secure Future: Take control of your financial destiny with our Tutorial Debugging C Programs In Vs Code On Windows articles. From smart money management to investment strategies, our expert guidance will help you make informed decisions and achieve financial freedom. Editor-this configuration 1 tried for setup installing friendsin video visual code in debugging this Hello to containspart series program studio mingw- i c
Debugging How To Run Or Debug Php On Visual Studio Code Vscode Stack Overflow
Debugging How To Run Or Debug Php On Visual Studio Code Vscode Stack Overflow
To bring up the run and debug view, select the run and debug icon in the activity bar on the side of vs code. you can also use the keyboard shortcut ⇧⌘d (windows, linux ctrl shift d). the run and debug view displays all information related to running and debugging and has a top bar with debugging commands and configuration settings. 226 28k views 5 months ago c programming tutorials for beginners (complete series) in this tutorial, we will guide you through the process of debugging a c program using visual.
Vs Code Build Run And Debug In C Geeksforgeeks
Vs Code Build Run And Debug In C Geeksforgeeks
Simply open your terminal and use gcc version and g version. if you get the version number, then the compiler is already installed on your system. you can check the version using the same commands on any operating system, whether that is a windows, linux, or macos based operating system. Open a new vs code terminal window using ( ⌃⇧` (windows, linux ctrl shift `)) use the following command to check for the gcc compiler g : g version or this command for the clang compiler clang: clang version the output should show you the compiler version and details. In this tutorial, you configure visual studio code to use the gcc c compiler (g ) and gdb debugger from mingw w64 to create programs that run on windows. after configuring vs code, you will compile, run, and debug a simple hello world program. this tutorial does not teach you about gcc, gdb, mingw w64, or the c language. To debug a memory dump, open your launch.json file and add the coredumppath (for gdb or lldb) or dumppath (for the visual studio windows debugger) property to the c launch configuration, set its value to be a string containing the path to the memory dump. this will even work for x86 programs being debugged on an x64 machine. additional symbols.
Vs Code Build Run And Debug In C Geeksforgeeks
Vs Code Build Run And Debug In C Geeksforgeeks
In this tutorial, you configure visual studio code to use the gcc c compiler (g ) and gdb debugger from mingw w64 to create programs that run on windows. after configuring vs code, you will compile, run, and debug a simple hello world program. this tutorial does not teach you about gcc, gdb, mingw w64, or the c language. To debug a memory dump, open your launch.json file and add the coredumppath (for gdb or lldb) or dumppath (for the visual studio windows debugger) property to the c launch configuration, set its value to be a string containing the path to the memory dump. this will even work for x86 programs being debugged on an x64 machine. additional symbols. Hello friends,in this video i tried to setup configuration for debugging c program in visual studio code editor.this series containspart 1: installing mingw. Learn commands to step through code in the debugger inspect variables in data tips and debugger windows examine the call stack prerequisites you must have visual studio installed and the desktop development with c workload. if you haven’t already installed visual studio 2022, go to the visual studio 2022 downloads page to install it for free.
Tutorial: Debugging C Programs In Vs Code On Windows
Tutorial: Debugging C Programs In Vs Code On Windows
in this video, we demonstrate the steps of using vs code for debugging c programs on windows, including how to set in this tutorial, we will guide you through the process of debugging a c program using visual studio code. visual studio code is a in this tutorial, you will learn how to set up visual studio code for creating and executing and debugging c programs. 00:00 hello friends, in this video i tried to setup configuration for debugging c program in visual studio code editor. this series contains in this video, we learn how to debug c programs with gdb. ◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾ programming books & merch this video explains how to setup visual studio code for building and debugging c programs on windows 10. g and gdb in this tutorial, you will learn how to set up visual studio code for creating, executing and debugging c programs. 00:00 pre requisites hi! thanks for taking the time to checkout my code. this is a pre requisites wiki before continuing to try debug with this is one of my course lecture where i’ll show you how to debug c with visual studio code. this tutorial is recorded in shows how to debug c c using gdm in vs code. in this case, demonstrated from linux. link to c c language info for vscode: in this video, i walk you through how to debug a basic hello world program in c in visual studio using the microsoft c tldr: 1) put all your project code files into a single folder, and only have one main function. 2) try debugging as normal to generate
Conclusion
Taking everything into consideration, it is evident that post provides informative insights concerning Tutorial Debugging C Programs In Vs Code On Windows. From start to finish, the author presents a deep understanding on the topic. Notably, the discussion of Z stands out as a highlight. Thank you for taking the time to this article. If you would like to know more, please do not hesitate to reach out through the comments. I look forward to your feedback. Additionally, below are some similar posts that you may find helpful: