{"id":1075,"date":"2021-10-22T15:44:00","date_gmt":"2021-10-22T12:44:00","guid":{"rendered":"https:\/\/tandemg.ussl.co.il\/?p=1075"},"modified":"2021-11-22T16:17:09","modified_gmt":"2021-11-22T14:17:09","slug":"overcome-your-fear-use-gdb-by-moria-zuberi","status":"publish","type":"post","link":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/","title":{"rendered":"Overcome your fear: Use GDB \u2013 By Moria Zuberi"},"content":{"rendered":"<div id=\"breadcrumbs\"><span><span><a href=\"https:\/\/tandemg.com\/en\/\">\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea<\/a><\/span><\/span><\/div>\n<p>So, you\u2019re a talented programmer, and you\u2019ve written some code that didn\u2019t get even a single compilation or linker error. You ran it and got \u201csegmentation fault\u201d. How is that possible? I mean, it was soooo perfect! Right?<\/p>\n\n\n\n<p>Wrong! Whenever you write code, you also write bugs. Noticing that something isn\u2019t working (like getting a segmentation fault) is one thing, but finding what exactly went wrong \u2013 is something else.<\/p>\n\n\n\n<p>If you are an Embedded-Linux programer, you probably know that there are several methods for debugging. The main two approaches are prints and debuggers. Each method has its benefits and limitations.<\/p>\n\n\n\n<p><strong>GDB ( GNU Debugger)<\/strong>&nbsp;is a command line debugger tool. It is not new and not shiny, but it definitely gets the job done, and it\u2019s very easy to use. I guarantee that if you dedicate the next 10 minutes to reading this article you will have a new tool in your toolbox.<\/p>\n\n\n\n<p>Let\u2019s take a closer look.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why use GDB?<\/strong><\/h3>\n\n\n\n<p>GDB is a tool that you can use on various platforms, without depending on the presence of an IDE. In fact, some IDE debuggers are even based on GDB. So, it\u2019s not a bad thing working with the source and expanding your debug abilities.<\/p>\n\n\n\n<p>GDB is quick and easy to use with some basic functions and it can save a lot of repetitive work (as can happen with prints). It works with C,C++ and other languages as well. Support packages even make it possible to work with Python.<\/p>\n\n\n\n<p><strong>GDB can be used in 2 ways:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>As a debug tool during runtime (can attach to already running process)<\/li><li>To analyze a core dump (file that contains a snapshot of the program\u2019s memory during its crash)<\/li><\/ul>\n\n\n\n<p>So, get over the GDB appearance, you\u2019re a Linux programmer!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GDB basics<\/h3>\n\n\n\n<p>In order to work with GDB, you first need to compile your code with the -g flag, in order for it to have information for GDB.<br><code>g++ main.cpp -g -Wall -o myProg<\/code><\/p>\n\n\n\n<p>Run your program with GDB:<br><code>gdb &lt;executable name&gt;<\/code>Once inside the GDB prompt, you may use the following commands (and many others \u2013 please refer to online manuals):<\/p>\n\n\n\n<p><code>help &lt;command&gt; - to get some helpful info on any command<\/code><br><code>run \/ r - to start running your program<\/code><br><code>break \/ b &lt;source code line number&gt; - to add a breakpoint. May also be used with a condition.<\/code><br><code>continue \/ c - continue running after breakpoint or ctrl + c.<\/code><br><code>step \/ s - go through the code line by line and enter the next function.<\/code><br><code>next \/ n - go through the code line by line without entering functions.<\/code><br><code>print \/ p &lt;variable&gt; - print variable value. May also be used for complex data structs.<\/code><br><code>set &lt;variable&gt; = &lt;value&gt; - change variable value.<\/code><\/p>\n\n\n\n<p>For a lot more useful info and examples, visit the following links:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.cprogramming.com\/gdb.html\" target=\"_blank\" rel=\"noreferrer noopener\">gdb basics \u2013 manual #1<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.cs.umd.edu\/~srhuang\/teaching\/cmsc212\/gdb-tutorial-handout.pdf\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">gdb basics \u2013 manual #2<\/a><\/p>\n\n\n\n<p>Of course, you can find more examples and info online.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core Dump<\/h3>\n\n\n\n<p>Quoting Wikipedia: \u201cCore dump consists of the recorded state of the working memory of a computer program at a specific time, generally when the program has crashed or otherwise terminated abnormally\u201d.<\/p>\n\n\n\n<p>Remember that segmentation fault we talked about at the beginning of the article? That is a prime example of when to create a core dump file for analysis.<\/p>\n\n\n\n<p>Creating a core dump file depends on what shell you are using. If you are using Bash, use the following command and run your program (to let your program dump memory info during crash):<br><code>ulimit -c unlimited<\/code><br>Now that you have a dump file \u2013 load it into GDB:<br><code>gdb &lt;executable name&gt; &lt;dump file name&gt;<\/code><br>What we see now, is some GDB information (copyrights, etc.) and then our crash info.<br>For example:<br><code>Core was generated by&nbsp;'.\/myProg'.<br>Program terminated with signal SIGSEGV, Segmentation fault.<br>#0 &nbsp;__memcpy_avx_unaligned () at ..\/sysdeps\/x86_64\/multiarch\/memcpy-avx-unaligned.S:138<br>138..\/sysdeps\/x86_64\/multiarch\/memcpy-avx-unaligned.S: No such file or directory.<br>(gdb)<\/code><\/p>\n\n\n\n<p>This means that the core was generated by \u201cmyProg\u201d and the function that crashed the program is &nbsp;__memcpy_avx_unaligned().<\/p>\n\n\n\n<p>Now we can use the following commands:<\/p>\n\n\n\n<p><code>backtrace \/ bt - to see the function calls in the stack that got us up to this crash.<\/code><br><code>up - to get information about the previous function in the stack<\/code><br><code>down - to get information about the next function in the stack<\/code><br><code>list - to view function or line in the code<\/code><\/p>\n\n\n\n<p>In our example:<\/p>\n\n\n\n<p><code>(gdb)&nbsp;bt<br>#0 &nbsp;__memcpy_avx_unaligned () at ..\/sysdeps\/x86_64\/multiarch\/memcpy-avx-unaligned.S:138<br>#1 &nbsp;0x000000000040078e in main () at main.c:35<\/code><\/p>\n\n\n\n<p>The&nbsp;<em>bt<\/em>&nbsp;command show us that the crash happened in line 35 of main.c.<\/p>\n\n\n\n<p><code>(gdb) up<br>#1 &nbsp;0x000000000040078e in main () at main.c:35<br>35 memcpy(dest, src, strlen(src)+1);<\/code><\/p>\n\n\n\n<p>The&nbsp;<em>up<\/em>&nbsp;command goes back to the previous frame in the stack and shows the specific line in main.c.<\/p>\n\n\n\n<p><code>(gdb)&nbsp;list<br>30 unsigned int page, reg;<br>31 unsigned int gray;<br>32 char src[] = \"hello world\";<br>33 char* dest;<br>34<br>35 memcpy(dest, src, strlen(src)+1);<br>36<br>37 printf(\"please select your test: 1 - paging, 2 - gray\\n\");<br>38 scanf(\"%ld\", &amp;val);<br>39 if(1 == val)<br>(gdb)<\/code><\/p>\n\n\n\n<p>Finally,&nbsp;<em>list<\/em>&nbsp;gives us more context and we can definitely see that&nbsp;<em>dest<\/em>&nbsp;is used without memory allocation.<\/p>\n\n\n\n<p>For more info and examples, visit the following link:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.cprogramming.com\/debugging\/segfaults.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.cprogramming.com\/debugging\/segfaults.html<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wrapping Up<\/h3>\n\n\n\n<p>GDB is a powerful and easy tool, it doesn\u2019t require much effort to set up and you can use it quickly with just a few basic functions. It offers some very useful options, such as conditional breakpoints, close-watch variables, core-dump analysis, and even interactive change of variable value to check your possible solution.<\/p>\n\n\n\n<p>That\u2019s it, I hope you got to know GDB a little and won\u2019t hesitate to use it the next time you get a segmentation fault. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea So, you\u2019re a talented programmer, and you\u2019ve written some code that didn\u2019t get even a single compilation or linker error. You ran it and got \u201csegmentation fault\u201d. How is that possible? I mean, it was soooo perfect! Right? Wrong! Whenever you write code, you also write bugs. Noticing that something isn\u2019t working (like [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1076,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1075","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Overcome your fear: Use GDB \u2013 By Moria Zuberi - TandemG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Overcome your fear: Use GDB \u2013 By Moria Zuberi - TandemG\" \/>\n<meta property=\"og:description\" content=\"\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea So, you\u2019re a talented programmer, and you\u2019ve written some code that didn\u2019t get even a single compilation or linker error. You ran it and got \u201csegmentation fault\u201d. How is that possible? I mean, it was soooo perfect! Right? Wrong! Whenever you write code, you also write bugs. Noticing that something isn\u2019t working (like [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/\" \/>\n<meta property=\"og:site_name\" content=\"TandemG\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TandemGroup\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-22T12:44:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-22T14:17:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tandemg.com\/wp-content\/uploads\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"157\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Keren Many\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keren Many\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/\"},\"author\":{\"name\":\"Keren Many\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#\\\/schema\\\/person\\\/2f2060bbe5771576ce6fcfe0faa794ef\"},\"headline\":\"Overcome your fear: Use GDB \u2013 By Moria Zuberi\",\"datePublished\":\"2021-10-22T12:44:00+00:00\",\"dateModified\":\"2021-11-22T14:17:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/\"},\"wordCount\":704,\"publisher\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tandemg.com\\\/wp-content\\\/uploads\\\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/\",\"url\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/\",\"name\":\"Overcome your fear: Use GDB \u2013 By Moria Zuberi - TandemG\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tandemg.com\\\/wp-content\\\/uploads\\\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg\",\"datePublished\":\"2021-10-22T12:44:00+00:00\",\"dateModified\":\"2021-11-22T14:17:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tandemg.com\\\/wp-content\\\/uploads\\\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg\",\"contentUrl\":\"https:\\\/\\\/tandemg.com\\\/wp-content\\\/uploads\\\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg\",\"width\":300,\"height\":157},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/overcome-your-fear-use-gdb-by-moria-zuberi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea\",\"item\":\"https:\\\/\\\/tandemg.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overcome your fear: Use GDB \u2013 By Moria Zuberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/tandemg.com\\\/en\\\/\",\"name\":\"TandemG\",\"description\":\"We Make IoT Happen\",\"publisher\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tandemg.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#organization\",\"name\":\"TandemG \u05e4\u05d9\u05ea\u05d5\u05d7 \u05de\u05d5\u05e6\u05e8 \u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9\",\"url\":\"https:\\\/\\\/tandemg.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/tandemg.com\\\/wp-content\\\/uploads\\\/tndmf50.png\",\"contentUrl\":\"https:\\\/\\\/tandemg.com\\\/wp-content\\\/uploads\\\/tndmf50.png\",\"width\":50,\"height\":50,\"caption\":\"TandemG \u05e4\u05d9\u05ea\u05d5\u05d7 \u05de\u05d5\u05e6\u05e8 \u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9\"},\"image\":{\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/TandemGroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/tandemg\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/tandemg.com\\\/en\\\/#\\\/schema\\\/person\\\/2f2060bbe5771576ce6fcfe0faa794ef\",\"name\":\"Keren Many\",\"url\":\"https:\\\/\\\/tandemg.com\\\/en\\\/author\\\/keren\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Overcome your fear: Use GDB \u2013 By Moria Zuberi - TandemG","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:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/","og_locale":"en_US","og_type":"article","og_title":"Overcome your fear: Use GDB \u2013 By Moria Zuberi - TandemG","og_description":"\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea So, you\u2019re a talented programmer, and you\u2019ve written some code that didn\u2019t get even a single compilation or linker error. You ran it and got \u201csegmentation fault\u201d. How is that possible? I mean, it was soooo perfect! Right? Wrong! Whenever you write code, you also write bugs. Noticing that something isn\u2019t working (like [&hellip;]","og_url":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/","og_site_name":"TandemG","article_publisher":"https:\/\/www.facebook.com\/TandemGroup","article_published_time":"2021-10-22T12:44:00+00:00","article_modified_time":"2021-11-22T14:17:09+00:00","og_image":[{"width":300,"height":157,"url":"https:\/\/tandemg.com\/wp-content\/uploads\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg","type":"image\/jpeg"}],"author":"Keren Many","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Keren Many","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#article","isPartOf":{"@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/"},"author":{"name":"Keren Many","@id":"https:\/\/tandemg.com\/en\/#\/schema\/person\/2f2060bbe5771576ce6fcfe0faa794ef"},"headline":"Overcome your fear: Use GDB \u2013 By Moria Zuberi","datePublished":"2021-10-22T12:44:00+00:00","dateModified":"2021-11-22T14:17:09+00:00","mainEntityOfPage":{"@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/"},"wordCount":704,"publisher":{"@id":"https:\/\/tandemg.com\/en\/#organization"},"image":{"@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#primaryimage"},"thumbnailUrl":"https:\/\/tandemg.com\/wp-content\/uploads\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/","url":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/","name":"Overcome your fear: Use GDB \u2013 By Moria Zuberi - TandemG","isPartOf":{"@id":"https:\/\/tandemg.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#primaryimage"},"image":{"@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#primaryimage"},"thumbnailUrl":"https:\/\/tandemg.com\/wp-content\/uploads\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg","datePublished":"2021-10-22T12:44:00+00:00","dateModified":"2021-11-22T14:17:09+00:00","breadcrumb":{"@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#primaryimage","url":"https:\/\/tandemg.com\/wp-content\/uploads\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg","contentUrl":"https:\/\/tandemg.com\/wp-content\/uploads\/Overcome-your-fear-Use-GDB-By-Moria-Zuberi.jpg","width":300,"height":157},{"@type":"BreadcrumbList","@id":"https:\/\/tandemg.com\/en\/overcome-your-fear-use-gdb-by-moria-zuberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea","item":"https:\/\/tandemg.com\/en\/"},{"@type":"ListItem","position":2,"name":"Overcome your fear: Use GDB \u2013 By Moria Zuberi"}]},{"@type":"WebSite","@id":"https:\/\/tandemg.com\/en\/#website","url":"https:\/\/tandemg.com\/en\/","name":"TandemG","description":"We Make IoT Happen","publisher":{"@id":"https:\/\/tandemg.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tandemg.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/tandemg.com\/en\/#organization","name":"TandemG \u05e4\u05d9\u05ea\u05d5\u05d7 \u05de\u05d5\u05e6\u05e8 \u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9","url":"https:\/\/tandemg.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tandemg.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/tandemg.com\/wp-content\/uploads\/tndmf50.png","contentUrl":"https:\/\/tandemg.com\/wp-content\/uploads\/tndmf50.png","width":50,"height":50,"caption":"TandemG \u05e4\u05d9\u05ea\u05d5\u05d7 \u05de\u05d5\u05e6\u05e8 \u05d8\u05db\u05e0\u05d5\u05dc\u05d5\u05d2\u05d9"},"image":{"@id":"https:\/\/tandemg.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TandemGroup","https:\/\/www.linkedin.com\/company\/tandemg\/"]},{"@type":"Person","@id":"https:\/\/tandemg.com\/en\/#\/schema\/person\/2f2060bbe5771576ce6fcfe0faa794ef","name":"Keren Many","url":"https:\/\/tandemg.com\/en\/author\/keren\/"}]}},"_links":{"self":[{"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/posts\/1075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/comments?post=1075"}],"version-history":[{"count":1,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/posts\/1075\/revisions"}],"predecessor-version":[{"id":1078,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/posts\/1075\/revisions\/1078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/media\/1076"}],"wp:attachment":[{"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/media?parent=1075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/categories?post=1075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tandemg.com\/en\/wp-json\/wp\/v2\/tags?post=1075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}