<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Module 3 on Ghafoor's Personal Blog</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/</link><description>Recent content in Module 3 on Ghafoor's Personal Blog</description><generator>Hugo</generator><language>en</language><managingEditor>noreply@example.com (AG Sayyed)</managingEditor><webMaster>noreply@example.com (AG Sayyed)</webMaster><copyright>Copyright © 2024-2026 AG Sayyed. All Rights Reserved.</copyright><atom:link href="http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/index.xml" rel="self" type="application/rss+xml"/><item><title>Debugging Segmentation Faults</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/011-segmentation-fault/</link><pubDate>Thu, 13 Nov 2025 12:11:37 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/011-segmentation-fault/</guid><description>&lt;p class="lead text-primary"&gt;
This document provides a practical walkthrough of debugging segmentation faults in C programs using core files and GDB debugger, demonstrating commands like backtrace, up, list, and print to analyze crashes, examine variables, and identify common errors like off-by-one array access.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Segmentation faults represent one of the most common crash types in C and C++ programs. Understanding how to debug these crashes using core files and the GDB debugger is essential for diagnosing memory access violations and fixing the underlying code issues.&lt;/p&gt;</description></item><item><title>Working with Someone Else's Code</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/010-someone-else-code/</link><pubDate>Thu, 13 Nov 2025 12:09:21 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/010-someone-else-code/</guid><description>&lt;p class="lead text-primary"&gt;
This document provides strategies for understanding and fixing problems in code written by others, covering techniques for reading unfamiliar code, leveraging comments and tests, navigating large codebases, and building skills through practice with open-source projects.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In IT roles, fixing problems in code written by others is a common task. Whether working with open-source software or internal company projects, understanding unfamiliar code requires specific strategies and approaches. Developing these skills enables effective troubleshooting and maintenance of codebases regardless of original authorship.&lt;/p&gt;</description></item><item><title>Unhandled Errors</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/009-unhandled-errors/</link><pubDate>Thu, 13 Nov 2025 12:04:01 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/009-unhandled-errors/</guid><description>&lt;p class="lead text-primary"&gt;
This document explains how to handle unexpected errors and exceptions in high-level programming languages like Python, covering common error types, traceback analysis, debugging techniques including printf debugging and the logging module, and strategies for making programs resilient to failures.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;While high-level languages like Python, Java, and Ruby handle memory management automatically, programs written in these languages can still encounter unexpected conditions that cause failures. When code doesn&amp;rsquo;t properly handle these conditions, it triggers errors or exceptions, causing programs to terminate unexpectedly.&lt;/p&gt;</description></item><item><title>Invalid Memory</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/008-invalid-memory/</link><pubDate>Thu, 13 Nov 2025 11:56:57 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/008-invalid-memory/</guid><description>&lt;p class="lead text-primary"&gt;
This document explains invalid memory access errors in applications, covering how operating systems manage memory allocation, common causes of segmentation faults, debugging techniques using symbols and debuggers, and tools like valgrind for detecting memory issues before crashes occur.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;One common reason applications crash is invalid memory access. Understanding how operating systems manage memory and the programming errors that lead to these crashes is essential for effective debugging and remediation.&lt;/p&gt;</description></item><item><title>Resources For Understanding Crashes</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/007-resuources/</link><pubDate>Thu, 13 Nov 2025 11:54:25 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/007-resuources/</guid><description>&lt;p class="lead text-primary"&gt;
This document provides an overview of tools and resources for understanding computer crashes, covering hardware failures, operating system errors, software vulnerabilities, and diagnostic tools including Blue Screen of Death analysis, system logs, Process Monitor, and system call tracing.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Computing systems are complex, and IT professionals must understand various vulnerabilities including hardware malfunctions, operating system glitches, and software deficiencies. Common issues include viruses, malware, low memory, constrained disk space, and software corruption. Research indicates that crashes are predominantly caused by operating system errors, though hardware failures can also cause significant harm.&lt;/p&gt;</description></item><item><title>Internal Server Error</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/006-server-error/</link><pubDate>Thu, 13 Nov 2025 11:15:36 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/006-server-error/</guid><description>&lt;p class="lead text-primary"&gt;
This document walks through debugging a web server returning HTTP 500 errors, demonstrating systematic investigation of logs, configuration files, running processes, and file permissions to identify and resolve the root cause.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When a web server returns an HTTP 500 Internal Server Error, the root cause typically lies on the server side. This requires systematic investigation of logs, configurations, running processes, and system resources to identify the issue.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="initial-investigation"&gt;Initial Investigation&lt;/h2&gt;
&lt;h3 id="reproducing-the-error"&gt;Reproducing the Error&lt;/h3&gt;
&lt;p&gt;The first step is to confirm the error by accessing the failing webpage. An HTTP 500 response indicates a server-side crash or misconfiguration, but provides no details about the underlying cause.&lt;/p&gt;</description></item><item><title>Fixing Program</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/005-fixing-program/</link><pubDate>Thu, 13 Nov 2025 11:12:54 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/005-fixing-program/</guid><description>&lt;p class="lead text-primary"&gt;
This document describes practical strategies for handling crashing applications when modifying source is not possible: data preprocessing, compatibility wrappers, environment isolation (VM/container), and automations such as watchdogs to maintain availability.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When direct code changes are not feasible, alternative approaches can restore service and reduce user impact. This document presents common techniques for compatibility, isolation, and availability.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="common-workarounds"&gt;Common Workarounds&lt;/h2&gt;
&lt;h3 id="data-preprocessing"&gt;Data Preprocessing&lt;/h3&gt;
&lt;p&gt;If crashes are triggered by unexpected input formats, transform incoming data into the expected format before delivery to the application. Example: converting XML to YAML when the new application version requires YAML.&lt;/p&gt;</description></item><item><title>Understanding Crash Application</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/003-uderstanding-crash/</link><pubDate>Thu, 13 Nov 2025 11:06:11 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/003-uderstanding-crash/</guid><description>&lt;p class="lead text-primary"&gt;
This document explains how to investigate application crashes by examining logs, enabling diagnostic logging, tracing system calls, analysing recent changes, and building minimal reproduction cases to isolate root causes.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When an application terminates unexpectedly, the investigation should start with all available evidence and proceed by systematically reducing the problem scope. Logs, tracing tools, and change history provide primary clues.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="logs-and-initial-evidence"&gt;Logs and Initial Evidence&lt;/h2&gt;
&lt;p&gt;Logs are the primary source of evidence. Relevant data includes timestamps and error messages around the crash time. Search logs for entries near the known crash time and for messages related to the failing component.&lt;/p&gt;</description></item><item><title>System Crash</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/002-system-crash/</link><pubDate>Thu, 13 Nov 2025 10:58:50 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/002-system-crash/</guid><description>&lt;p class="lead text-primary"&gt;
This document outlines a systematic approach to diagnosing system crashes: reducing scope, gathering reproducible evidence, isolating hardware versus software faults, and applying appropriate remediation such as memory tests, disk checks, or OS reinstall.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;System crashes can arise from hardware failures, software defects, or configuration problems. A methodical approach—collecting evidence, reducing the scope, and testing components—helps identify the root cause and choose an efficient fix.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="diagnosing-a-crash"&gt;Diagnosing a Crash&lt;/h2&gt;
&lt;p&gt;Start by gathering available evidence:&lt;/p&gt;</description></item><item><title>Crashing Programs</title><link>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/001-crashing-programs/</link><pubDate>Thu, 13 Nov 2025 09:59:07 +0000</pubDate><author>noreply@example.com (AG Sayyed)</author><guid>http://ghafoorsblog.com/courses/google/it-automation-content/it-automation-python-pcert/04-troubleshooting-debugging/03-module/001-crashing-programs/</guid><description>&lt;p class="lead text-primary"&gt;
This document explains how to troubleshoot and debug crashing programs, focusing on quick workarounds, monitoring strategies, and long-term fixes to prevent recurring issues.
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When faced with a crashing program, the first step is to find a quick workaround to restore functionality. For example, if a database server crashes due to insufficient disk space, adding an extra hard drive can resolve the issue temporarily. However, long-term solutions are essential to prevent recurrence.&lt;/p&gt;</description></item></channel></rss>