Courseiva
DebugPrivileged EXEC

no debug all

Disables all active debug commands on the router to stop excessive console output and reduce CPU load, typically used after troubleshooting is complete.

Definition: no debug all is a Cisco IOS privileged exec command. Disables all active debug commands on the router to stop excessive console output and reduce CPU load, typically used after troubleshooting is complete.

Overview

The `no debug all` command is a critical tool in Cisco IOS that disables all active debug operations on a router. Debug commands are used during troubleshooting to monitor real-time events such as routing protocol updates, packet forwarding, or error conditions. However, debug output consumes significant CPU resources and can flood the console with messages, potentially causing the router to become unresponsive or drop critical traffic.

The `no debug all` command provides a single, reliable way to stop all debugging activity, returning the router to normal operation. This command is typically executed after troubleshooting is complete, or when debug output becomes overwhelming. It is important to note that debug commands are not saved to the running configuration; they are active only in the current session.

However, if debug commands are enabled via the configuration (e.g., `debug ip ospf events` under a specific interface), they may persist across reloads. The `no debug all` command clears all debug flags, including those set from the command line or from configuration. The command is available in Privileged EXEC mode (enable mode) and requires a privilege level of 15.

It does not affect the running configuration; it only stops the output. In contrast, the `undebug all` command is an alias and performs the same function. Network engineers often use `no debug all` as a safety net when debugging becomes too verbose, or as a standard step in troubleshooting procedures to ensure no residual debug processes are running.

The command is also useful in scripts or automated tasks to guarantee a clean state. Understanding the impact of debug on router performance is essential; even a single debug command can increase CPU utilization by 50% or more on low-end platforms. Therefore, `no debug all` is a best practice to include in any troubleshooting checklist.

Syntax·Privileged EXEC
no debug all

When to Use This Command

  • After finishing OSPF neighbor troubleshooting to stop debug ip ospf events output.
  • When a router becomes unresponsive due to high CPU from multiple debug commands.
  • Before leaving a production router to ensure no debug commands remain active.
  • When a junior engineer accidentally enables debug all and needs to quickly disable all debugging.

Command Examples

Disabling all active debugs

no debug all
All possible debugging has been turned off

The single line confirms that every active debug command on the router has been disabled. No further output is generated.

Verifying debugs are off after disabling

show debug
No active debug commands

After issuing 'no debug all', the 'show debug' command confirms that no debug commands are currently active.

Understanding the Output

The output of 'no debug all' is a single confirmation line: 'All possible debugging has been turned off'. This indicates that every debug command that was previously enabled (e.g., debug ip ospf events, debug ip packet) has been disabled. In a real network scenario, you would use this command to stop the flood of debug messages that can overwhelm the console and degrade router performance.

After running it, you should verify with 'show debug' that no active debugs remain. If the router was experiencing high CPU due to debugging, you should see CPU utilization drop in 'show processes cpu'.

Configuration Scenarios

Stopping Debug Output After Troubleshooting OSPF Neighbor Issues

After enabling debug ip ospf events to troubleshoot an OSPF adjacency problem, the console is flooded with messages. The engineer needs to stop all debug output to restore normal router operation.

Topology

R1(Gi0/0)---10.0.12.0/30---(Gi0/0)R2

Steps

  1. 1.Step 1: Enter privileged EXEC mode on R1: R1> enable
  2. 2.Step 2: Verify active debug commands: R1# show debug
  3. 3.Step 3: Disable all debug commands: R1# no debug all
  4. 4.Step 4: Confirm no debug is active: R1# show debug
Configuration
! No configuration is changed; the command is executed in EXEC mode.
R1# no debug all

Verify: Use 'show debug' to confirm that no debug commands are active. Expected output: 'No active debug commands'.

Watch out: If debug commands were enabled via configuration (e.g., 'debug ip ospf events' under router ospf), 'no debug all' stops them only for the current session; they will reappear after reload unless removed from config.

Emergency Stop of Debug During Production Hours

A junior engineer accidentally enabled 'debug ip packet' on a core router, causing high CPU and packet loss. The senior engineer needs to immediately stop all debug to prevent network impact.

Topology

Core1(Gi0/0)---10.0.0.0/30---(Gi0/0)Core2

Steps

  1. 1.Step 1: Access the router via console or SSH: Core1> enable
  2. 2.Step 2: Immediately disable all debug: Core1# no debug all
  3. 3.Step 3: Optionally, verify CPU usage returns to normal: Core1# show processes cpu | include CPU
  4. 4.Step 4: Inform the team that debug has been stopped.
Configuration
! Emergency command executed in EXEC mode.
Core1# no debug all

Verify: Check CPU utilization with 'show processes cpu' to ensure it drops. Also, 'show debug' should show no active debugs.

Watch out: If the router is extremely overloaded, the command may take a few seconds to take effect. Be patient and avoid re-entering the command repeatedly.

Troubleshooting with This Command

The `no debug all` command is primarily used as a cleanup tool rather than a diagnostic command. However, it plays a vital role in troubleshooting workflows. When debugging is active, the console output can obscure important syslog messages or make it difficult to issue further commands.

The first step in any debugging session should be to ensure no debug commands are already running, using `show debug`. If debug is active, `no debug all` clears the slate. During troubleshooting, if you enable a debug command and the output becomes too verbose or causes performance degradation, immediately issue `no debug all` to stop it.

Healthy output from `show debug` is simply 'No active debug commands'. Problem indicators include a long list of active debugs, especially CPU-intensive ones like `debug ip packet` or `debug ip ospf packet`. Common symptoms that lead to using `no debug all` include: router console flooding with messages, high CPU utilization (check with `show processes cpu`), slow CLI response, or dropped keepalives.

A typical diagnostic flow: 1) Notice performance issues or excessive console messages. 2) Run `show debug` to see active debugs. 3) If any are present, run `no debug all`. 4) Verify CPU returns to normal. 5) If the issue persists, check for other causes. Correlate with `show processes cpu` to confirm debug was the culprit. Also, `show logging` may show buffered debug messages if logging was enabled.

Remember that `no debug all` does not clear the log buffer; use `clear logging` if needed. In summary, `no debug all` is the emergency brake for debugging, essential for maintaining router stability.

CCNA Exam Tips

1.

CCNA exam tip: 'no debug all' is the safest way to disable all debugging; 'undebug all' is an alias and works identically.

2.

CCNA exam tip: Remember that 'debug all' can crash a router; always use 'no debug all' to turn it off.

3.

CCNA exam tip: The exam may test that 'no debug all' is a privileged EXEC command, not available in user EXEC mode.

4.

CCNA exam tip: After troubleshooting, always disable debugs to avoid performance issues; the exam expects you to know this best practice.

Common Mistakes

Mistake 1: Using 'no debug all' in user EXEC mode — it fails because it requires privileged EXEC mode.

Mistake 2: Forgetting to disable debugs after troubleshooting, causing high CPU and potential router crash.

Mistake 3: Typing 'no debug all' but not realizing it only affects the current session; debugs enabled in other VTY lines remain active.

no debug all vs undebug all

Both no debug all and undebug all serve the same purpose: disabling all active debug operations. They are commonly compared because 'undebug' is a shorthand synonym for 'no debug', leading to confusion about whether they have different behaviors. In reality, they are functionally identical.

Aspectno debug allundebug all
Syntaxno debug allundebug all
Effect on DebugsDisables all active debugsSame
CPU ImpactReduces CPU load by stopping debug outputSame
Mode RequirementPrivileged EXECPrivileged EXEC
PersistenceImmediate, not persistent across rebootsSame
Typical UseAfter troubleshooting to stop debug outputSame

Use no debug all when you prefer the standard 'no debug' syntax or are following a configuration template that uses full command names.

Use undebug all when you want a shorter command or are accustomed to the 'undebug' alias common in older IOS versions.

Platform Notes

In IOS-XE (e.g., Catalyst 9000 switches, ISR 4000 series), the `no debug all` command behaves identically to classic IOS. The syntax and output are the same. In NX-OS (e.g., Nexus switches), the equivalent command is `no debug all` as well, but NX-OS also supports `undebug all`.

However, NX-OS debug commands are often module-specific (e.g., `debug ip ospf`), and `no debug all` disables all debugs across all modules. In ASA firewalls, the command is `no debug all` and works similarly, but ASA has a separate `debug` command set. In IOS-XR (e.g., ASR 9000, CRS), the command is `no debug all` but note that IOS-XR uses a different debugging model; some debugs are process-specific and may require `debug process <process-name>`.

The `no debug all` command in IOS-XR disables all debugs for the current session. There are no significant syntax differences between IOS versions 12.x, 15.x, and 16.x for this command. However, in newer IOS versions, the output of `show debug` may be more detailed.

Always use `no debug all` with caution in production environments, as it may stop debugs that were intentionally left running for monitoring. On some platforms, there is a slight delay before all debugs are stopped; the command is processed asynchronously.

Related Commands

Practice for the CCNA 200-301

Test your knowledge with practice questions covering all CCNA 200-301 exam domains.

Practice CCNA 200-301 Questions