# Debugging the Debugger Debugging the Debugger is one of the highest levels of inception. Before you begin, prepare yourself for a mind-bending trip of self discovery. ### Playing with the debugger Setup the Debugger so that your environment looks like this [gif][debugger-intro-gif]. If you have any questions, go back to the [getting setup][getting-setup] instructions. ### Design a new theme :snowflake: Lets design a new theme for the debugger, it's not too hard! Our goal here is to style the source tree, editor, and other UI components. Share your a screenshot of your theme [here](./getting-setup.md) ! Here's an example camo [theme][camo-theme] that I designed the other day. ### Make breakpoints dance :dancers: Adding a breakpoint is a critical piece in the inception game... Lets make the debugger do something special when a breakpoint is added. You can find the file that handles breakpoints here: `/debugger.html/src/components/Editor/Breakpoint.js` Then go ahead and find (Cntrl-F) "addBreakpoint". This should pull up the addBreakpoint function, which (surprise!) adds a breakpoint! Then we are going to add an alert so can see something for our actions: ```javascript addBreakpoint() { const { breakpoint, editor, selectedSource } = this.props; // Hidden Breakpoints are never rendered on the client if (breakpoint.hidden) { return; } //Add the code below alert("Your first breakpoint! Congratulations!"); // NOTE: we need to wait for the breakpoint to be loaded // to get the generated location if (!selectedSource || breakpoint.loading) { return; } ``` This will show a popup when we create a breakpoint. ### Pausing FTW :red_circle: When the debugger pauses, the fun begins. Here's a [gif](http://g.recordit.co/qutDioRQvy.gif) of what the debugger does normally when it pauses. Your mission if you choose to accept it, is to make it do something truly weird. Here's some example code that you can help you to get you started; `debugger.html/src/components/SecondaryPanes/Frames/WhyPaused.js` renders the pause reason into the sidebar, and `/debugger.html/src/utils/pause.js` is used in several places to expose the current paused state. WhyPaused.js (Starts at line 48): ```javascript export default function renderWhyPaused({ pause }: { pause: Pause }) { const reason = getPauseReason(pause); if (!reason) { return null; } //Add the code below: console.log("Hello from src/components/SecondaryPanes/Frames/WhyPaused.js!"); return (