{"id":20301,"date":"2020-03-05T15:14:06","date_gmt":"2020-03-05T23:14:06","guid":{"rendered":"https:\/\/www.tynker.com\/blog\/?p=20301"},"modified":"2023-08-06T12:35:18","modified_gmt":"2023-08-06T19:35:18","slug":"debugger","status":"publish","type":"post","link":"https:\/\/www.tynker.com\/blog\/debugger\/","title":{"rendered":"Tynker Toolbox: The Debugger Tool"},"content":{"rendered":"\n<p>Programmers make <strong><em>so <\/em><\/strong>many mistakes\u2014literally <em>all the time!<\/em>\u2014that they gave their mistakes a nickname:&nbsp;<br><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69fbea088364e\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #206be5;color:#206be5\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #206be5;color:#206be5\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69fbea088364e\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/#Bugs_%F0%9F%A6%9F\" >Bugs.   \ud83e\udd9f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/#Tynkers_Debugger\" >Tynker\u2019s Debugger<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/#Creating_Watchers\" >Creating Watchers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/#Breakpoints_%E2%80%94_Freeze_Frame\" >Breakpoints \u2014 Freeze Frame!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/#Other_Tricks_for_Squashing_Bugs\" >Other Tricks for Squashing Bugs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/#More_Activities\" >More Activities!<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading has-text-align-center\"><span class=\"ez-toc-section\" id=\"Bugs_%F0%9F%A6%9F\"><\/span><strong><em>Bugs<\/em><\/strong>.   \ud83e\udd9f<br><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><br>The process of finding and fixing bugs in code is called <strong><em>debugging<\/em><\/strong>. Ask any computer programmer, and you\u2019ll find that debugging is a big part of their day-to-day work.&nbsp;<br><\/p>\n\n\n\n<p>If you\u2019ve been coding for a while, you\u2019ve probably done your share of debugging, too. Because debugging is such a common problem, you can use tools called <strong><em>debuggers <\/em><\/strong>to help you find and fix bugs while coding.&nbsp;<br><\/p>\n\n\n\n<p>Unfortunately, debuggers can\u2019t magically fix your code. But they can do things like:&nbsp;<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\ud83d\uded1<\/strong> stop the execution of code at important points, and&nbsp;&nbsp;<\/li>\n\n\n\n<li>\ud83d\udd0e monitor the value of variables and Actor properties&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><strong><em>BTW.<\/em><\/strong> The term \u201cbug\u201d was popularized by computer scientist <a href=\"https:\/\/www.tynker.com\/blog\/computer-programmers-in-history-who-inspire-girls-in-tech\/\">Grace Hopper<\/a>, when she discovered that a <strong><em>moth<\/em><\/strong> had landed in her computer, causing it to malfunction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tynkers_Debugger\"><\/span>Tynker\u2019s Debugger<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Click the <strong>Bug <\/strong>icon at the top of the screen, and you\u2019ll see the debugger window.&nbsp;<br><\/p>\n\n\n\n<p>Once it\u2019s open, you can switch between several tabs: <strong>Actors<\/strong>, <strong>My Watchers<\/strong>, and <strong>Help<\/strong>.&nbsp;Start by looking at the <strong>Actors <\/strong>tab. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131818\/capture-1-annotated.png\" alt=\"\" class=\"wp-image-20328\" width=\"677\" height=\"563\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131818\/capture-1-annotated.png 903w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131818\/capture-1-annotated-150x125.png 150w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131818\/capture-1-annotated-300x250.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131818\/capture-1-annotated-768x639.png 768w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><figcaption class=\"wp-element-caption\"><em> \u2776 Actors are shown on the left: Click to show the Actor\u2019s properties.<br>\u2777 The Stage will list any global variable used in the project. <br>In the example above, the Stage shows the global variable named <strong>score<\/strong>.<\/em> <\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131940\/dbg-capture2-dark-annotated.png\" alt=\"\" class=\"wp-image-20329\" width=\"685\" height=\"570\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131940\/dbg-capture2-dark-annotated.png 913w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131940\/dbg-capture2-dark-annotated-150x125.png 150w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131940\/dbg-capture2-dark-annotated-300x250.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305131940\/dbg-capture2-dark-annotated-768x639.png 768w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><figcaption class=\"wp-element-caption\"><em> &nbsp;\u2778 Local variables are associated with their Actor. <br>For example, the Enemy Actor in this program has a local variable named <strong>health<\/strong>.&nbsp;<br>\u2779 Click the <strong>Eye <\/strong>icon to create a Watcher. <\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Creating_Watchers\"><\/span>Creating Watchers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Looking at a big list of values can be overwhelming. For example, you might only care about an actor\u2019s <strong>y position<\/strong> or the value of a variable or two.&nbsp;<br><\/p>\n\n\n\n<p>That\u2019s why we use a <strong><em>watcher <\/em><\/strong>to closely monitor the value of a variable or property on screen. To create a watcher, click on the <strong>Eye <\/strong>button in the Debugger. The example below shows watchers for the Global Variable <strong>score<\/strong> and the Player actor&#8217;s <strong>x position<\/strong>.  <br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305132100\/capture-3-annotated.png\" alt=\"\" class=\"wp-image-20330\" width=\"682\" height=\"569\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305132100\/capture-3-annotated.png 909w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305132100\/capture-3-annotated-150x125.png 150w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305132100\/capture-3-annotated-300x250.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305132100\/capture-3-annotated-768x640.png 768w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><figcaption class=\"wp-element-caption\"><em>\u277a This Clock button changes the <strong>sampling rate<\/strong>\u2014 <br>how quickly the debugger checks to see if the value updates.&nbsp; <\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Breakpoints_%E2%80%94_Freeze_Frame\"><\/span>Breakpoints \u2014 Freeze Frame!<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The <strong>breakpoint <\/strong>block allows you to say \u201cFreeze!\u201d to your program. Your actors will stop moving\u2014but more importantly, your <strong><em>code <\/em><\/strong>stops running too.&nbsp;<br><\/p>\n\n\n\n<p>Breakpoints let you check the value of variables and actor properties to make sure your program is working <em>exactly<\/em><strong><em> <\/em><\/strong>as you expected. By combining watchers and breakpoints, you can examine your programs at important moments.&nbsp;<br><\/p>\n\n\n\n<p>For example, you can use a <strong>breakpoint <\/strong>to stop after each iteration of the loop, as shown in the example below:&nbsp;&nbsp;&nbsp;<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-844x1024.png\" alt=\"\" class=\"wp-image-30706\" width=\"211\" height=\"256\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-844x1024.png 844w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-247x300.png 247w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-124x150.png 124w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-768x932.png 768w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-1265x1536.png 1265w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-1280x1554.png 1280w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint-150x182.png 150w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122433\/debugger-breakpoint.png 1374w\" sizes=\"auto, (max-width: 211px) 100vw, 211px\" \/><figcaption class=\"wp-element-caption\"><em> The debugger will stop with each iteration of the <strong>repeat 10 <\/strong>loop.  <\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>When a script reaches a <strong>breakpoint<\/strong>, the Debugger Window will open, (if it isn\u2019t already).&nbsp;<br><\/p>\n\n\n\n<p>There\u2019s also an advanced breakpoint called a <strong><em>conditional breakpoint<\/em><\/strong>. Just like other conditional statements (for example, if-else statements), this breakpoint is expecting a true-or-false expression as its condition.&nbsp;<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122445\/debugger-5-1.png\" alt=\"\" class=\"wp-image-30707\" width=\"258\" height=\"66\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122445\/debugger-5-1.png 515w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122445\/debugger-5-1-300x77.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122445\/debugger-5-1-150x38.png 150w\" sizes=\"auto, (max-width: 258px) 100vw, 258px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Other_Tricks_for_Squashing_Bugs\"><\/span>Other Tricks for Squashing Bugs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Besides the debugger, try these tricks while debugging.<br><\/p>\n\n\n\n<p><strong>Green Glow.<\/strong>Tynker Workshop highlights each script green as you run it.&nbsp;<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/7mTHwrIcnyfR2J4CVLqmZdB1expvgdi9ZYPhkt6OGn5-Q7GFJSSe0yJ-ls7SjCJOLsS5IbG2Yz7JXsd1nMx5jTDP1GlUU2-q4SSyNQ-SXsUDLr4TfwQmM7vdACuQbweUHmGQo_ne\" alt=\"\" width=\"320\" height=\"208\"\/><\/figure>\n<\/div>\n\n\n<p>If your code doesn\u2019t glow green, it\u2019s not running. In other words, the condition or event that triggers the code isn\u2019t working.<br><\/p>\n\n\n\n<p><strong>Print Values.<\/strong>You can make your actors report the value of a variable or their own properties on stage using <strong>say <\/strong>or <strong>set label <\/strong>blocks.&nbsp;<br><\/p>\n\n\n\n<p>For example, an actor reports the new value of <strong>score <\/strong>after it changes:&nbsp;&nbsp;<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score-1024x613.png\" alt=\"\" class=\"wp-image-30710\" width=\"256\" height=\"153\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score-1024x613.png 1024w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score-300x179.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score-150x90.png 150w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score-768x459.png 768w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score-1280x766.png 1280w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122631\/say-score.png 1414w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/figure>\n<\/div>\n\n\n<p>Or use the same trick with the <strong>actor properties <\/strong>block:&nbsp;<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122523\/debugger-4-1.png\" alt=\"\" class=\"wp-image-30709\" width=\"355\" height=\"151\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122523\/debugger-4-1.png 710w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122523\/debugger-4-1-300x128.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122523\/debugger-4-1-150x64.png 150w\" sizes=\"auto, (max-width: 355px) 100vw, 355px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Comment Your Code.&nbsp;<\/strong>Are you making a big project but don\u2019t have time to finish coding it in one sitting? Add <strong><em>comments <\/em><\/strong>to your code, reminding you of what needs to be done or isn\u2019t working yet. <br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment-1024x607.png\" alt=\"\" class=\"wp-image-30711\" width=\"256\" height=\"152\" srcset=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment-1024x607.png 1024w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment-300x178.png 300w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment-150x89.png 150w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment-768x455.png 768w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment-1280x759.png 1280w, https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20221025122811\/collision-comment.png 1528w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/figure>\n<\/div>\n\n\n<p>Here are a few more tricks for reducing errors and fixing bugs in your code:&nbsp;<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Write code a little bit at a time\u2014run your code as you add features, rather than writing everything all at once.<\/li>\n\n\n\n<li>Save different versions of your code before making big changes, in case you need to revert. Use <strong>Save As <\/strong>to save a different version of your Tynker project.&nbsp;<\/li>\n\n\n\n<li>Experiment in a new project, testing a small piece of your code\u2014use Tynker\u2019s <strong>Backpack <\/strong>to save code so you don\u2019t have to rewrite your script.<\/li>\n\n\n\n<li>Ask a teacher or another coder for help.<\/li>\n\n\n\n<li>Get a good night\u2019s sleep and try again tomorrow! The best debugger is a well-rested mind.<\/li>\n<\/ul>\n\n\n\n<p>Want to practice with the debugger? Check out this <em><a href=\"https:\/\/www.tynker.com\/ide\/v3?type=diy&amp;p=5e61758f2921ab3e800980d7\">buggy<\/a><\/em><a href=\"https:\/\/www.tynker.com\/ide\/v3?type=diy&amp;p=5e61758f2921ab3e800980d7\"> project<\/a> and see if you can make each row of clones a new color. Create a watcher for the variable <strong>color <\/strong>and try adding a breakpoint to the outer loop.&nbsp;<br><\/p>\n\n\n\n<p>Want to use this in your class? Go ahead. Share your own debugging tricks and tips with us at <a href=\"mailto:community@tynker.com\">community@tynker.com<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"More_Activities\"><\/span>More Activities!<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Looking for the next step? Check out these&nbsp;<strong>Tynker Toolbox<\/strong>&nbsp;articles!<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-workshop-basics\/\"><strong>Tynker Workshop Basics<\/strong><\/a> \u2014 Learn about coordinates and start coding with Tynker.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/animation-tool\/\"><strong>The Animation Tool<\/strong><\/a> \u2014 Learn about frame-based animation and other animation tips.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-character-creator\/\"><strong>The Character Creator<\/strong><\/a> \u2014 Take control of custom rigs using the Animation blocks.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/text-tricks\/\"><strong>Text Tricks<\/strong><\/a> \u2014 Work with speech bubbles and more. Tell your own stories, put on a play, or make a computer write poetry!<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-sound-blocks\/\"><strong>The Sound Blocks<\/strong><\/a> \u2014 Play music with code! Add custom sound effects, too. Tynker\u2019s brand new music tool supports MIDI and MP3.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/the-synth-blocks\/\"><strong>The Synth Blocks<\/strong><\/a> \u2014 Create your own sound effects and instruments! You can create crunchy dubstep drops, glitchy chiptunes, or instruments from any style of music you can imagine!&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-code-block-tricks\/\"><strong>Code Block Tricks<\/strong><\/a> \u2014 Get top-secret ninja tips for writing code fast in Tynker Workshop.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-pen-blocks\/\"><strong>The Pen Blocks<\/strong><\/a> \u2014 Make your actors draw as they move. Create patterns, draw geometric shapes, and more.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-physics-blocks\/\"><strong>The Physics Blocks<\/strong><\/a> \u2014 Create games or simulations with gravity, collisions, and more. Think: <em>Angry Birds<\/em> and <em>Marble Madness<\/em>.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/the-ar-blocks\/\"><strong>The Augmented Reality (AR) Blocks<\/strong><\/a> \u2014 Want to use video or photos in your programs? Try the AR Blocks, which let you code your own selfie!&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-ai-blocks\/\"><strong>The Artificial Intelligence (AI) Blocks<\/strong><\/a> \u2014 Take your AR projects to the next level with face-, hand-, and pose-tracking. Explore what makes AI special.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-tutorial-builder\/\"><strong>The Tutorial Builder<\/strong><\/a><span style=\"color: initial;\"> \u2014 Did you ever make a really cool Tynker Block project and wish you could teach the whole world exactly how you did it? Now you can!<\/span><\/li>\n\n\n\n<li><a href=\"https:\/\/www.tynker.com\/blog\/tynker-toolbox-the-python-editor\/\"><strong>The Python Editor<\/strong><\/a> \u2014 Looking for a challenge? Ready for your next step on your coding journey? Learn Python with Tynker too, and take the plunge into text-based coding.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-align-center\"><a class=\"sf-button large accent standard \" href=\"https:\/\/www.tynker.com\" target=\"_blank\"><span class=\"text\">GET STARTED FOR FREE<\/span><\/a>   <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programmers make so many mistakes\u2014literally all the time!\u2014that they gave their mistakes a nickname:&nbsp; Bugs. \ud83e\udd9f The process of finding and fixing bugs in code is called debugging. Ask any computer programmer, and you\u2019ll find that debugging is a big part of their day-to-day work.&nbsp; If you\u2019ve been coding for a while, you\u2019ve probably done your share of debugging, too. [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":20354,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[510,12,123],"tags":[439,429],"class_list":["post-20301","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-block-coding","category-ideas-and-tips","category-new-tynker-features","tag-debugging","tag-tynker-toolbox"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tynker Toolbox: The Debugger Tool - Tynker Blog<\/title>\n<meta name=\"description\" content=\"Discover the power of debugging in coding and learn valuable techniques to solve programming challenges effectively.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tynker.com\/blog\/debugger\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tynker Toolbox: The Debugger Tool - Tynker Blog\" \/>\n<meta property=\"og:description\" content=\"Discover the power of debugging in coding and learn valuable techniques to solve programming challenges effectively.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tynker.com\/blog\/debugger\/\" \/>\n<meta property=\"og:site_name\" content=\"Tynker Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Gotynker\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-05T23:14:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-06T19:35:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305151148\/blog-31.png\" \/>\n\t<meta property=\"og:image:width\" content=\"996\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tynker Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@gotynker\" \/>\n<meta name=\"twitter:site\" content=\"@gotynker\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tynker Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tynker Toolbox: The Debugger Tool - Tynker Blog","description":"Discover the power of debugging in coding and learn valuable techniques to solve programming challenges effectively.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.tynker.com\/blog\/debugger\/","og_locale":"en_US","og_type":"article","og_title":"Tynker Toolbox: The Debugger Tool - Tynker Blog","og_description":"Discover the power of debugging in coding and learn valuable techniques to solve programming challenges effectively.","og_url":"https:\/\/www.tynker.com\/blog\/debugger\/","og_site_name":"Tynker Blog","article_publisher":"https:\/\/www.facebook.com\/Gotynker\/","article_published_time":"2020-03-05T23:14:06+00:00","article_modified_time":"2023-08-06T19:35:18+00:00","og_image":[{"width":996,"height":450,"url":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305151148\/blog-31.png","type":"image\/png"}],"author":"Tynker Team","twitter_card":"summary_large_image","twitter_creator":"@gotynker","twitter_site":"@gotynker","twitter_misc":{"Written by":"Tynker Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tynker.com\/blog\/debugger\/#article","isPartOf":{"@id":"https:\/\/www.tynker.com\/blog\/debugger\/"},"author":{"name":"Tynker Team","@id":"https:\/\/www.tynker.com\/blog\/#\/schema\/person\/934d769f4839cb9df678306ee728f671"},"headline":"Tynker Toolbox: The Debugger Tool","datePublished":"2020-03-05T23:14:06+00:00","dateModified":"2023-08-06T19:35:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tynker.com\/blog\/debugger\/"},"wordCount":1144,"publisher":{"@id":"https:\/\/www.tynker.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.tynker.com\/blog\/debugger\/#primaryimage"},"thumbnailUrl":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305151148\/blog-31.png","keywords":["Debugging","Tynker Toolbox"],"articleSection":["Block Coding","Ideas and Tips","New Tynker Features"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.tynker.com\/blog\/debugger\/","url":"https:\/\/www.tynker.com\/blog\/debugger\/","name":"Tynker Toolbox: The Debugger Tool - Tynker Blog","isPartOf":{"@id":"https:\/\/www.tynker.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tynker.com\/blog\/debugger\/#primaryimage"},"image":{"@id":"https:\/\/www.tynker.com\/blog\/debugger\/#primaryimage"},"thumbnailUrl":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305151148\/blog-31.png","datePublished":"2020-03-05T23:14:06+00:00","dateModified":"2023-08-06T19:35:18+00:00","description":"Discover the power of debugging in coding and learn valuable techniques to solve programming challenges effectively.","breadcrumb":{"@id":"https:\/\/www.tynker.com\/blog\/debugger\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tynker.com\/blog\/debugger\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tynker.com\/blog\/debugger\/#primaryimage","url":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305151148\/blog-31.png","contentUrl":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20200305151148\/blog-31.png","width":996,"height":450},{"@type":"BreadcrumbList","@id":"https:\/\/www.tynker.com\/blog\/debugger\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Coding for Kids","item":"https:\/\/www.tynker.com\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.tynker.com\/blog\/"},{"@type":"ListItem","position":3,"name":"Tynker Toolbox: The Debugger Tool"}]},{"@type":"WebSite","@id":"https:\/\/www.tynker.com\/blog\/#website","url":"https:\/\/www.tynker.com\/blog\/","name":"Tynker Blog","description":"Tynker makes it fun and easy to learn computer programming. Get started today with Tynker&#039;s easy-to-learn, visual programming courses designed for young learners in grades K-12.","publisher":{"@id":"https:\/\/www.tynker.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tynker.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.tynker.com\/blog\/#organization","name":"Tynker - Coding for Kids","url":"https:\/\/www.tynker.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tynker.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20220713063303\/appicon-120.png","contentUrl":"https:\/\/images.tynker.com\/blog\/wp-content\/uploads\/20220713063303\/appicon-120.png","width":120,"height":120,"caption":"Tynker - Coding for Kids"},"image":{"@id":"https:\/\/www.tynker.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Gotynker\/","https:\/\/x.com\/gotynker","https:\/\/www.instagram.com\/tynkercoding\/","https:\/\/www.pinterest.com\/gotynker\/","https:\/\/www.linkedin.com\/company\/tynker"]},{"@type":"Person","@id":"https:\/\/www.tynker.com\/blog\/#\/schema\/person\/934d769f4839cb9df678306ee728f671","name":"Tynker Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tynker.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/53c002ba171d44324489e00b00f5b0ebf381cabfef3347db5e6d5257409d92ba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/53c002ba171d44324489e00b00f5b0ebf381cabfef3347db5e6d5257409d92ba?s=96&d=mm&r=g","caption":"Tynker Team"},"url":"https:\/\/www.tynker.com\/blog\/author\/lpateltynker-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/posts\/20301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/comments?post=20301"}],"version-history":[{"count":47,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/posts\/20301\/revisions"}],"predecessor-version":[{"id":34755,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/posts\/20301\/revisions\/34755"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/media\/20354"}],"wp:attachment":[{"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/media?parent=20301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/categories?post=20301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tynker.com\/blog\/wp-json\/wp\/v2\/tags?post=20301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}