{"id":20058,"date":"2026-09-14T22:06:30","date_gmt":"2026-09-14T22:06:30","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/apresentamos-novo-depurador-multiplataforma-go\/"},"modified":"2026-09-14T22:06:30","modified_gmt":"2026-09-14T22:06:30","slug":"apresentamos-novo-depurador-multiplataforma-go","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/","title":{"rendered":"Apresentamos um depurador multiplataforma para Go"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Usamos Go para grande parte do nosso desenvolvimento de servidores aqui no Mailgun, e \u00e9 \u00f3timo. No entanto, vindo do Python, houve uma coisa da qual senti muita falta:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eu podia inserir esta pequena linha sempre que ficasse confuso sobre o que estava acontecendo no c\u00f3digo e ver exatamente o que se passava. Mas e no Go? Nem tanto. Quando comecei este projeto em janeiro, o gdb falhava em todos os programas nos quais eu testava. O delve n\u00e3o funcionava no OS X, e o uso de prints na depura\u00e7\u00e3o era muito lento e limitado. O que uma pessoa desenvolvedora deve fazer?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Criar meu pr\u00f3prio depurador, \u00e9 claro.<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-4715\"><p class=\"h5 m-0\" id=\"toc-title-4715\">\u00cdndice<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#godebug\">godebug<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#como-isso-funcionou\">Como isso funcionou?<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#como-usar-o-godebug\">Como usar o godebug<\/a><a class=\"scrollme link-body-color\" href=\"#passo-1-como-instalar\">Passo 1. Como instalar<\/a><a class=\"scrollme link-body-color\" href=\"#passo-2-como-definir-breakpoints\">Passo 2. Como definir breakpoints<\/a><a class=\"scrollme link-body-color\" href=\"#passo-3-como-executar-seu-programa\">Passo 3. Como executar seu programa<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#experimente\">Experimente!<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">godebug<\/h2>\n\n\n    <div data-content-type=\"longform\" class=\"quote hub-quote longform-spacings d-flex flex-column rounded-lg px-5 py-6 px-md-6 py-md-7 p-lg-7 shadow-sm bg-primary\" data-theme=\"light\">\r\n\r\n        <div class=\"quote-logo mb-3\">\r\n                            <svg height=\"40\" class=\"quote-icon quote-icon-color\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/custom-icons\/quotes-right.svg\"><\/svg>\r\n                    <\/div>\r\n\r\n        <blockquote class=\"quote-content content-body m-0 text-body-color\" id=\"quote-block-c7376e30dfe1404061f130eb15f302f2\">\r\n            Tudo o que est\u00e1 no caminho [de um bom depurador de Go] \u00e9 a escrita de muito c\u00f3digo de baixo n\u00edvel e n\u00e3o port\u00e1til, comunicando-se com interfaces problem\u00e1ticas e n\u00e3o documentadas.        <\/blockquote>\r\n\r\n                    <div class=\"d-flex gap-3 mt-5\">\r\n                                <div class=\"d-flex flex-column align-self-center fs-sm\">\r\n                    <cite class=\"mb-0 fw-bold text-accent fst-normal\" aria-describedby=\"quote-block-c7376e30dfe1404061f130eb15f302f2\">\r\n                        Rob Pike                    <\/cite>\r\n                                    <\/div>\r\n            <\/div>\r\n            <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/mailgun\/godebug\">godebug<\/a>\u00a0\u00e9 um tipo diferente de depurador. Depuradores tradicionais para linguagens compiladas usam chamadas de sistema de baixo n\u00edvel e leem arquivos bin\u00e1rios para depurar s\u00edmbolos. Eles s\u00e3o dif\u00edceis de acertar e dif\u00edceis de portar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O godebug adota uma abordagem diferente: pega o c\u00f3digo-fonte de um programa de destino, insere o c\u00f3digo de depura\u00e7\u00e3o entre todas as linhas, em seguida compila e executa o resultado. O resultado \u00e9 um depurador totalmente funcional e extremamente port\u00e1til. Na verdade, gra\u00e7as ao\u00a0<a href=\"http:\/\/www.gopherjs.org\/\">gopherjs<\/a>, voc\u00ea pode execut\u00e1-lo bem aqui no seu navegador!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode editar o programa e reinici\u00e1-lo com o bot\u00e3o \u201cDEBUG IT!\u201d quantas vezes quiser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como isso funcionou?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqui est\u00e1 um diagrama r\u00e1pido da demonstra\u00e7\u00e3o acima:<\/p>\n\n\n\n\n\n<p class=\"wp-block-paragraph\">O c\u00f3digo original \u00e9 transformado duas vezes. Primeiro, o godebug\u00a0inseriu a instrumenta\u00e7\u00e3o de depura\u00e7\u00e3o. Em seguida, o gopherjs compilou o resultado para javascript.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos dar uma olhada na etapa de instrumenta\u00e7\u00e3o. (Para saber mais sobre a parte do gopherjs (que \u00e9 incr\u00edvel), confira o seu\u00a0<a href=\"http:\/\/www.gopherjs.org\/\">site<\/a>.) Aqui est\u00e3o algumas das chamadas que o godebug insere:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O <code>godebug.EnterFunc\u00a0<\/code>informa \u00e0 biblioteca de tempo de execu\u00e7\u00e3o do godebug que estamos entrando em uma fun\u00e7\u00e3o. Como o &#8220;next&#8221; n\u00e3o para dentro de chamadas de fun\u00e7\u00e3o, a biblioteca de tempo de execu\u00e7\u00e3o anota essas chamadas para saber quando pular as linhas.<\/li>\n\n\n\n<li>O <code>godebug.ExitFunc\u00a0<\/code>informa \u00e0 biblioteca de tempo de execu\u00e7\u00e3o que estamos saindo de uma fun\u00e7\u00e3o. Omitido em\u00a0<code>main<\/code>.<\/li>\n\n\n\n<li>O <code>godebug.Line\u00a0<\/code>faz com que o programa pause e espere por uma entrada se, e somente se, um comando do usu\u00e1rio ou um breakpoint o ordenar. Quando pausa, ele solicita a entrada do usu\u00e1rio e responde a quaisquer comandos.<\/li>\n\n\n\n<li>O <code>godebug.Declare\u00a0<\/code>registra o mapeamento dos nomes de vari\u00e1vel para seus valores. Esse mapeamento \u00e9 usado pelo comando print.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Esta \u00e9 uma vis\u00e3o geral resumida. Existem outras fun\u00e7\u00f5es que o godebug insere, e muitos detalhes das fun\u00e7\u00f5es acima foram omitidos. Mas essas s\u00e3o as partes b\u00e1sicas de como o godebug funciona.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como usar o godebug<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tudo isso (menos a parte do servidor e do javascript) est\u00e1 empacotado na ferramenta de linha de comando\u00a0<code>godebug<\/code>. Veja como us\u00e1-lo:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Passo 1. Como instalar<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>$ go get -u github.com\/mailgun\/godebug<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Passo 2. Como definir breakpoints<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Adicione este marcador em qualquer lugar que voc\u00ea queira um breakpoint:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>_ = \"breakpoint\"<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa declara\u00e7\u00e3o se torna um breakpoint quando executada sob o godebug e \u00e9 uma opera\u00e7\u00e3o nula caso contr\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como os breakpoints fazem parte do c\u00f3digo-fonte, voc\u00ea pode envolver sua pr\u00f3pria l\u00f3gica ao redor deles. Digamos que voc\u00ea esteja executando um\u00a0<a href=\"http:\/\/dave.cheney.net\/2013\/06\/09\/writing-table-driven-tests-in-go\">teste orientado a tabelas<\/a>\u00a0com dezenas de casos, e um dos casos de teste falha: aquele que testou a entrada\u00a0<code>\"weird string\"<\/code>. Voc\u00ea pode adicionar este breakpoint ao seu teste:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>for _, tt := range myTestCases { if tt.in == \"weird string\" { _ = \"breakpoint\" } ... }<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O <code>godebug test<\/code>\u00a0pausar\u00e1 o programa na declara\u00e7\u00e3o do marcador, que est\u00e1 convenientemente posicionada logo antes da execu\u00e7\u00e3o do caso de teste que falhou.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Passo 3. Como executar seu programa<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use o comando godebug run:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>godebug run <\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ou, para testes, use o comando godebug test:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>godebug test<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por padr\u00e3o, o godebug s\u00f3 adicionar\u00e1 a instrumenta\u00e7\u00e3o de depura\u00e7\u00e3o ao pacote main (para o godebug run) ou ao pacote em teste (para o godebug test). Ele n\u00e3o instrumentar\u00e1 nenhum pacote importado. Isso serve para diminuir a sobrecarga do depurador \u2014 quaisquer pacotes que n\u00e3o sejam do seu interesse rodar\u00e3o normalmente, em velocidade total.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso significa que,\u00a0<strong>por padr\u00e3o, voc\u00ea n\u00e3o pode entrar em chamadas de fun\u00e7\u00e3o de pacotes importados<\/strong>. Mas \u00e0s vezes voc\u00ea vai precisar fazer isso! Para depurar outros pacotes, passe a flag\u00a0<code>-instrument<\/code>\u00a0para o\u00a0<code>godebug run<\/code>\u00a0ou\u00a0<code>godebug test<\/code>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>godebug test -instrument=pkgA,pkgB,pkgC pkg\/under\/test<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O comando acima ir\u00e1 instrumentar (e, portanto, permitir que voc\u00ea entre em)\u00a0<code>pkgA<\/code>,\u00a0<code>pkgB<\/code>,\u00a0<code>pkgC<\/code> e\u00a0<code>pkg\/under\/test<\/code>. Em seguida, ele criar\u00e1 e executar\u00e1 os testes para\u00a0<code>pkg\/under\/test<\/code>. Uma sem\u00e2ntica semelhante se aplica ao\u00a0<code>godebug run<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Experimente!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Da pr\u00f3xima vez que quiser entender o que est\u00e1 acontecendo em um programa Go, experimente o\u00a0<a href=\"https:\/\/github.com\/mailgun\/godebug\">godebug<\/a>. Tenha em mente que ainda \u00e9 uma ferramenta nova que precisa de um certo polimento. Em particular, algumas limita\u00e7\u00f5es conhecidas s\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sobrecarga de desempenho<\/li>\n\n\n\n<li>pode causar conflitos de leitura se o seu programa ler a partir do stdin<\/li>\n\n\n\n<li>n\u00e3o pode ser anexado a um processo em execu\u00e7\u00e3o<\/li>\n\n\n\n<li>\u00e9 preciso conhecer os pacotes que voc\u00ea deseja depurar antes de iniciar a sess\u00e3o<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dito isso, estou empolgado com esta ferramenta e espero que ela possa agregar muito valor \u00e0 comunidade Go. Experimente e diga o que voc\u00ea achou! Se voc\u00ea tiver algum problema, ficarei feliz em saber. Abra uma issue no\u00a0<a href=\"https:\/\/github.com\/mailgun\/godebug\/issues\">https:\/\/github.com\/mailgun\/godebug\/issues<\/a>\u00a0ou envie um e-mail para: dev@godebug.rocks<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Espero que voc\u00ea goste!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">https:\/\/github.com\/mailgun\/godebug<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Quer saber mais sobre o godebug? Aqui est\u00e1 uma palestra que dei no GoSF, incluindo mais detalhes sobre gera\u00e7\u00e3o de c\u00f3digo e gerenciamento de concorr\u00eancia:<\/em><\/p>\n\n\n\t<div class=\"custom-video\">\r\n\t\t\t\t\t                    <div class=\"iframe-responsive-container lazy-video rounded-lg overflow-hidden \">\r\n                <a href=\"https:\/\/www.youtube.com\/watch?v=qo4RAPxCTa0\" class=\"lazy-video-link\" data-lazy-video=\"qo4RAPxCTa0\" target=\"_blank\" rel=\"nofollow\" role=\"button\" data-source=\"youtube\" data-language=\"pt\" data-thumb=\"https:\/\/img.youtube.com\/vi\/qo4RAPxCTa0\/maxresdefault.jpg\" title=\"Sinch Video\">\r\n                    <div class=\"btn btn-light btn-light-social btn-play btn-play-circle\">\r\n                                                    <svg aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/play.svg\"><\/svg>\r\n                                            <\/div>\r\n                    <img decoding=\"async\"  src=\"https:\/\/img.youtube.com\/vi\/qo4RAPxCTa0\/maxresdefault.jpg\" alt=\"Godebug and the Wonders of Code Generation\">\r\n                <\/a>\r\n            <\/div>\r\n                        <script type=\"application\/ld+json\">\r\n            {\n    \"@context\": \"http:\/\/schema.org\",\n    \"@type\": \"VideoObject\",\n    \"@id\": \"https:\/\/www.youtube.com\/watch?v=qo4RAPxCTa0#VideoObject\",\n    \"thumbnailUrl\": \"https:\/\/img.youtube.com\/vi\/qo4RAPxCTa0\/maxresdefault.jpg\",\n    \"embedUrl\": \"https:\/\/www.youtube.com\/embed\/qo4RAPxCTa0\",\n    \"contentUrl\": \"https:\/\/www.youtube.com\/watch?v=qo4RAPxCTa0\",\n    \"name\": \"Godebug and the Wonders of Code Generation\",\n    \"description\": \"Full post here: Hakkalabs.co\/articles\/godebug-and-the-wonders-of-code-generation\\n\\nABOUT DATA COUNCIL: \\nData Council (https:\/\/www.datacouncil.ai\/) is a community and conference series that provides data professionals with the learning and networking opportunities they need to grow their careers. Make sure to subscribe to our channel for more videos, including DC_THURS, our series of live online interviews with leading data professionals from top open source projects and startups. \\n\\nFOLLOW DATA COUNCIL:\\nTwitter: https:\/\/twitter.com\/DataCouncilAI \\nLinkedIn: https:\/\/www.linkedin.com\/company\/datacouncil-ai \\nFacebook: https:\/\/www.facebook.com\/datacouncilai\\nEventbrite: https:\/\/www.eventbrite.com\/o\/data-council-30357384520 -\\n\\n\\ud83c\\udf9f\\ufe0f GET YOUR TICKET TO AI COUNCIL 2026 \\ud83c\\udf9f\\ufe0f\\nMeet the world's top AI infrastructure minds where architects of AI share what works. Three days of high-quality technical talks and meaningful interactions.\\n\\n\\u2192 https:\/\/aicouncil.com\/sf-2026\\n\\n\\u26a1 FIND US:\\nX: https:\/\/x.com\/AICouncilConf\\nLinkedIn: https:\/\/www.linkedin.com\/company\/aicouncilconf\/\\nWebsite: https:\/\/aicouncil.com\/\",\n    \"uploadDate\": \"2015-04-03T16:52:07+00:00\",\n    \"duration\": \"PT27M20S\"\n}        <\/script>\r\n        \t\t\r\n\t\t\t<\/div>\r\n\r\n\t\r\n","protected":false},"excerpt":{"rendered":"<p>Usamos Go para grande parte do nosso desenvolvimento de servidores aqui no Mailgun, e \u00e9 \u00f3timo. No entanto, vindo do Python, houve uma coisa da qual senti muita falta:<\/p>\n","protected":false},"author":13,"featured_media":3952,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[19],"class_list":["post-20058","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-dev-life"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Apresentamos um depurador multiplataforma para Go - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"O Godebug \u00e9 um novo depurador interativo para Go que funciona em todas as plataformas. Ele usa gera\u00e7\u00e3o de c\u00f3digo-fonte em vez de chamadas de sistema (syscalls). Experimente!\" \/>\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.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apresentamos um depurador multiplataforma para Go - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"O Godebug \u00e9 um novo depurador interativo para Go que funciona em todas as plataformas. Ele usa gera\u00e7\u00e3o de c\u00f3digo-fonte em vez de chamadas de sistema (syscalls). Experimente!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/\",\"name\":\"Apresentamos um depurador multiplataforma para Go - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"datePublished\":\"2026-09-14T22:06:30+00:00\",\"description\":\"O Godebug \u00e9 um novo depurador interativo para Go que funciona em todas as plataformas. Ele usa gera\u00e7\u00e3o de c\u00f3digo-fonte em vez de chamadas de sistema (syscalls). Experimente!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/dev-life\\\/apresentamos-novo-depurador-multiplataforma-go\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/inicio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Apresentamos um depurador multiplataforma para Go\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Poderosas APIs de e-mail transacional que permitem a voc\u00ea enviar, receber e rastrear e-mails, criadas com os desenvolvedores em mente. Saiba mais hoje mesmo!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apresentamos um depurador multiplataforma para Go - Transactional Email API Service For Developers | Mailgun","description":"O Godebug \u00e9 um novo depurador interativo para Go que funciona em todas as plataformas. Ele usa gera\u00e7\u00e3o de c\u00f3digo-fonte em vez de chamadas de sistema (syscalls). Experimente!","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.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/","og_locale":"pt_BR","og_type":"article","og_title":"Apresentamos um depurador multiplataforma para Go - Transactional Email API Service For Developers | Mailgun","og_description":"O Godebug \u00e9 um novo depurador interativo para Go que funciona em todas as plataformas. Ele usa gera\u00e7\u00e3o de c\u00f3digo-fonte em vez de chamadas de sistema (syscalls). Experimente!","og_url":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/","url":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/","name":"Apresentamos um depurador multiplataforma para Go - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","datePublished":"2026-09-14T22:06:30+00:00","description":"O Godebug \u00e9 um novo depurador interativo para Go que funciona em todas as plataformas. Ele usa gera\u00e7\u00e3o de c\u00f3digo-fonte em vez de chamadas de sistema (syscalls). Experimente!","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/pt\/blog\/dev-life\/apresentamos-novo-depurador-multiplataforma-go\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/pt\/inicio\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/pt\/blog\/"},{"@type":"ListItem","position":3,"name":"Apresentamos um depurador multiplataforma para Go"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/pt\/#website","url":"https:\/\/www.mailgun.com\/pt\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Poderosas APIs de e-mail transacional que permitem a voc\u00ea enviar, receber e rastrear e-mails, criadas com os desenvolvedores em mente. Saiba mais hoje mesmo!","publisher":{"@id":"https:\/\/www.mailgun.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/pt\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/pt\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/20058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/20058\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media\/3952"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media?parent=20058"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog_category?post=20058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}