Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Effective Erlang Debugging

Effective Erlang Debugging

One of the strengths of the Erlang programming language is the ability to seamlessly debug and trace Erlang code. Many tools and libraries exist, but they are sometimes under-utilized by the Community.

In this talk we will go through some common techniques and tools to trace and debug Erlang programs, sharing some precious tips and tricks that can make the difference when troubleshooting a complex Erlang system.

C20f7f4a8aa455aa6e0c2a0092883cd0?s=128

Roberto Aloi

October 20, 2020
Tweet

Transcript

  1. None
  2. None
  3. ĸ½°}‡½Ç°r¤°—

  4. ‡~Ɨԇ ¼£r©‘ ‡}ˑ‘—©‘ 0¤r½ªr§½¤rª‘çåçå ĸ½°}‡½Ç°r¤°—

  5. Ė /r½‘°ªrªƒLJ½©—ª°¤°‘Ü Ė T—ºÁrªƒǽ—~¢Á Ė ‡}̑‘—ª‘T°°¤Á Ė c½rº̺

  6. ‡~Ɨԇ ¼£r©‘ ‡}ˑ‘—©‘

  7. Ĝ'ª~°©ºÌLJ½º½°‘½r©©—ª‘rªƒÁ°ÇÖr½‡ ƒ‡Õ‡¤°º©‡ªÇāƒ‡}̑‘—ª‘—ÁǕ‡º½°~‡ÁÁ° —ªƒ—ª‘rªƒ½‡Á°¤Õ—ª‘}̑ÁĒƒ‡‡~ÇÁ°½ º½°}¤‡©ÁǕrǺ½‡Õ‡ªÇ~°½½‡~Ç°º‡½rǗ°ªē֗Ǖ—ª ~°©ºÌLJ½º½°‘½r©ÁāÁ°ÇÖr½‡ā°½ÁÜÁLJ©ÁĆĝ •ÇǺÁĀČȇªĆ֗¢—º‡ƒ—rĆ°½‘Č֗¢—ȇ}̑‘—ª‘

  8. Ë©ÔÀ ¼ËÀƼrƗ©‘

  9. T%>Ki b2'T'>8

  10. 7—©—¨r£K‡¹¼¯ƒË~—}£‡Úr¨¹£‡

  11. ‡~Ɨԇ ¼£r©‘ ‡}ˑ‘—©‘

  12. T%>Ki b2'T'>8

  13. None
  14. K‡ƒË~‡ƕ‡‡‡ƒ}r~¡£¯¯¹

  15. ĕ

  16. Š Ѕ ­šh·ğķ_Qő›ķĠ

  17. |­•h›†ĐxŠ±ª•hÇğÅh·Ġ

  18. T—¹Àr©ƒT¼—~¡À

  19. ­•h›†ě;QEÔÕģ|­·±ĥÓÓĎÓĎÓĤģ± »­t|ĥhØx|ÓÙÒxÒxĤ ģØÖĥsŠ·Ĥģ±šªĐÓÔĝÓÔĤģx±ĐÓÔĝÓÔĝÓÒĤ ģh±Ç›tĥ·‰­|hx±ĐÓĤģ‰Šª|Ĥ ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ Óŋ

  20. ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ Óŋ‰|•ªğĠĎ ę걉|••Š›·|­›h•t ššh›x±ęę sğĠĥĥxŠ±ª•hÇh••Äh­Šhs•|sŠ›xŠ›†± |ğ6Ġĥĥ­|ª|h··‰||ƪ­|±±Š ›Š›¬»|­ÇŌ6ŋ …ğĠĥĥ… ­†|·h••Äh­Šhs•|sŠ›xŠ›†±

    …ğ`Ġĥĥ… ­†|··‰|sŠ›xŠ›† …Äh­Šhs•|` ‰ğĠĥĥ‰Š±· ­Ç ‰ğ5 xĠĥĥ‰|•ªhs »·š x»•| ģĎĎĎĤ
  21. Óŋģ·­•ĥ†Ĥ U±|­±ÅŠ·t‰t ššh›x ĥĥŋ‰ tģ››Ĥĥt ››|t·· ’ s Šģ››ĤĥŠ›·|­­»ª·’ s

    “ģ››Ĥĥ“Š••’ s ’ĥ•Š±·h••’ s± ±ģ±‰|••Ĥĥ±·h­·• th•±‰|•• ­ģ› x|ģ±‰|••ĤĤĥ±·h­·­|š ·|±‰|•• ¬ĥ¬»Š·|­•h›† ĕű‰ĥ·‰Š±š|±±h†|
  22. O•‡££%—ÀƯ¼Û |ƪ ­·H0ĩ 0!Lʼnķĥ“|­›|•±‰|••ĩ‰Š±· ­Ç|›hs•|xķ

  23. ıċą‡¼£r©‘ 2—¢‡őěĎsh±‰­tā°½½¤rª‘

  24. ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ ÓŋEŠxʼnʼn|­|Š±ğ|•±ĩ±|­Ä|­ĠĎ ŌÒĎÔÒÖĎÒŋ Ôŋ|­•h›†Đª­ t|±±ĩŠ›… ğEŠxďš|±±h†|ĩ¬»|»|ĩ•|›ĠĎ ġš|±±h†|ĩ¬»|»|ĩ•|›ďÔĢ

  25. ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ Óŋ±Ç±Đ†|·ĩ±·h·|ğ|•±ĩ±|­Ä|­ĠĎ ġ±·h·|ď|•±ĩ±·xŠ ďŌÒĎÓÙÚĎÒŋďÙďĚġ±·h·»±ʼnŋ Š›Š·Šh•ŠÊ|xĢĢ

  26. ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ Óŋ±Ç±Đ†|·ĩ±·h·|ğ|•±ĩ±|­Ä|­ĠĎ ġ±·h·|ď|•±ĩ±·xŠ ďŌÒĎÓÙÚĎÒŋďÙďĚġ±·h·»±ʼnŋ Š›Š·Šh•ŠÊ|xĢĢ Ôŋ­­ğ|•±ĩ±|­Ä|­ĠĎ ģ±·h·|Ĥ

  27. ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ Óŋ±Ç±Đ†|·ĩ±·h·|ğ|•±ĩ±|­Ä|­ĠĎ ġ±·h·|ď|•±ĩ±·xŠ ďŌÒĎÓÙÚĎÒŋďÙďĚġ±·h·»±ʼnŋ Š›Š·Šh•ŠÊ|xĢĢ Ôŋ­­ğ|•±ĩ±|­Ä|­ĠĎ ģ±·h·|Ĥ Õŋ±Ç±Đ†|·ĩ±·h·|ğ|•±ĩ±|­Ä|­ĠĎ Ě±·h·|ġ·­h›±ª

    ­·ʼn|•±ĩ±·xŠ ď t ››|t·Š ›ʼnŌÒĎÓÙÚĎÒŋď ­|¬»|±·ĩŠxʼnÙď Š›·|­›h•ĩ±·h·|ʼnĚġ±·h·»±ʼnŋŠ›Š·Šh•ŠÊ|xĢĢ
  28. ±‰|••^ÓÓĎÓĎÓğhs ­·Ŋ·‰œ!Ġ Óŋ•Š±·±Đ±|¬ğÓďÕÔĠĎ ģÓďÔďÕďÖď×ďØďÙďÚďÛďÓÒďÓÓďÓÔďÓÕďÓÖďÓ×ďÓØďÓÙďÓÚďÓÛď ÔÒďÔÓďÔÔďÔÕďÔÖďÔ×ďÔØďÔÙďÔÚďÔÛűĎĎĎĤ Ôŋ­ªğ•Š±·±Đ±|¬ğÓďÕÔĠĠĎ ģÓďÔďÕďÖď×ďØďÙďÚďÛďÓÒďÓÓďÓÔďÓÕďÓÖďÓ×ďÓØďÓÙďÓÚďÓÛď ÔÒďÔÓďÔÔďÔÕďÔÖďÔ×ďÔØďÔÙďÔÚďÔÛďÕÒďÕÓďÕÔĤ

  29. ‡}ˑ‘—©‘T¯¯£À

  30. T¼r~—©‘T¯¯£À

  31. ĜT½r~—ª‘—ªÕ°¤Õ‡ÁrÁº‡~—r¤—ᇃÌÁ‡°¤°‘‘—ª‘ Ç°½‡~°½ƒ—ª°½©rǗ°ªr}°ÌÇrº½°‘½r©ĊÁ ‡Û‡~ÌǗ°ªĝ •ÇǺÁĀČȇªĆ֗¢—º‡ƒ—rĆ°½‘Č֗¢—ČT½r~—ª‘

  32. æĆ OÇr½ÇČ°ª—‘̽‡T½r~‡½ çĆ K̪H½°‘½r© èĆ OÇ°ºT½r~‡½ éĆ ªr¤Üᇰ¤¤‡~LJƒrÇr

  33. ƒ}‘ĕT•‡T‡ÚÆ}rÀ‡ƒT¼r~‡ r~—£—ÆÛ •ÆƹÀÿċċ‡¼£r©‘ą¯¼‘ċƒ¯~ċ¨r©ċƒ}‘ą•Æ¨£

  34. ƒ}‘ Ė °©‡Á֗Ǖ½¤rª‘Č>TH Ė ½ÜºÇ—~H' Ė YÁ‡֗Ǖ~r½‡

  35. ƒ}‘ Óŋxs†Đ·­ht|­ğĠĎ Ôŋxs†Đªğh••ďtĠĎ Õŋxs†Đ·ªğ•Š±·±ď±|¬ďÆĠĎ Öŋ•Š±·±Đ±|¬ğÓďÓÒĠĎ ğŌÒĎÕÖĎÒŋĠth•••Š±·±Đ±|¬ğÓďÓÒĠ ğŌÒĎÕÖĎÒŋĠ­|·»­›|x…­ š•Š±·±Đ±|¬ěÔĥŋģÓďÔďÕďÖď×ďØďÙďÚďÛďÓÒĤ ×ŋxs†Đ±· ªğĠ

  36. ƒ}‘ ÓŋEŠxʼn±ªhÅ›ğ…»›ğĠĥŋ­|t|ŠÄ|ġ ­ šď5±†Ģĥŋ ­ šē5±†|›x|›xĠĎ ŌÒĎÚØĎÒŋ Ôŋxs†Đ·­ht|­ğĠĎ Õŋxs†ĐªğEŠxďšĠĎ ÖŋEŠxēġ±|•…ğĠď‰|••

    ĢĎ ğŌÒĎÚØĎÒŋĠŌŌġŌÒĎÚÖĎÒŋď‰|•• Ģ ğŌÒĎÚØĎÒŋĠŌÒĎÚÖĎÒŋē‰|•• ×ŋ…•»±‰ğĠĎ L‰|••† ·‰|••
  37. ¼‡ƒ}ˑĕT•‡K‡ÀƼ—~Ƈƒ‡}ˑ‘—©‘YƗ£—ÆÛ •ÆƹÀÿċċ‘—Æ•Ë}ą~¯¨ċ¨rÀÀ‡¨r©‡Æċ¼‡ƒ}ˑ

  38. ¼‡ƒ}ˑ Ė O‡ºr½rLJrºº¤—~rǗ°ª Ė >Շ½¤°rƒº½°Ç‡~Ǘ°ª Ė Or‡½—ªº½°ƒÌ~Ǘ°ª Ė 8—~‡½Yh

  39. ¼‡ƒ}ˑĕ•‡£¹ Óŋ­|xs»†Đ‰|•ªğĠĎ ģĎĎĎĤ ·Šš|ğÓ×ÒÒÒĠ±· ª·­ht|h…·|­·‰Š±šh›Çš± š±†±ğÓÒĠ±· ª·­ht|h…·|­·‰Š±šh›Çš±†± ·h­†|·ğ› x|ğĠĠ› x|·

    ·­ht| › t “Š|ğ‰ ±·t “Š|Ġ·h­†|·› x|t “Š| s• t“Š›†ğ…h•±|Ġs• t“±·h­·ěÔď­|·»­›h•Š±· …š|±±h†|± h­Š·Çğ…h•±|Ġª­Š›·h­Š·ÇŠ›±·|hx …h­†•Š±· ·­ht|ĩt‰Š•xğ…h•±|Ġt‰Š•x­|›†|·±·­ht|xğ±|·ĩ ›ĩ±ªhśĠ ģĎĎĎĤ
  40. ¼‡ƒ}ˑĕT•‡ rÀ—~À Óŋ­|xs»†Đ±·h­·ğķ•Š±·±Đ± ­·ěÓķĠĎ Ôŋ•Š±·±Đ± ­·ğģÕďÔďÓĤĠĎ ģÓďÔďÕĤ ŝÓ×ĝÔÒĝÔÒŌÒĎÕÓĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ ŝ•Š±·±Đ± ­·ğģÕďÔďÓĤĠ

  41. ¼‡ƒ}ˑĕ¼‡Æ˼© Óŋ­|xs»†Đ±·h­·ğķ•Š±·±Đ± ­·ěÓĥŋ­|·»­›ķĠĎ Ôŋ•Š±·±Đ± ­·ğģÕďÔďÓĤĠĎ ģÓďÔďÕĤ ŝÓ×ĝÕ×ĝ×ÔŌÒĎÕÓĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ ŝ•Š±·±Đ± ­·ğģÕďÔďÓĤĠ ŝÓ×ĝÕ×ĝ×ÔŌÒĎÕÓĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ

    ŝ•Š±·±Đ± ­·ěÓĥŋģÓďÔďÕĤ
  42. Óŋ­|xs»†Đ±·h­·ğķ•Š±·±Đ± ­·ěÓĥŋ­|·»­›ķďģġh­Š·Çď·­»|Ģď ġª­Š›·ĩ­|·»­›ď…h•±|ĢĤĠĎ Ôŋ•Š±·±Đ± ­·ğ•Š±·±Đ±|¬ğÓÒÒÒÒďÓďĥÓĠĠĎ ģÓďÔďÕďÖď×ďØďÙďÚďÛďÓÒďÓÓďÓÔďÓÕďÓÖďÓ×ďÓØďÓÙďÓÚďÓÛďÔÒďÔÓďÔÔď ÔÕďÔÖďÔ×ďÔØďÔÙďÔÚďÔÛűĎĎĎĤ ŝÓ×ĝ××ĝÕÔŌÒĎÙÙĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ ŝ•Š±·±Đ± ­·ěÓ

    ŝÓ×ĝ××ĝÕÔŌÒĎÙÙĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ ŝ•Š±·±Đ± ­·ěÓĥŋĸĎĎĎĸ ¼‡ƒ}ˑĕb‡¼}¯À—ÆÛ
  43. ¼‡ƒ}ˑĕ7rÆ~•—©‘ Óŋ­|xs»†Đ±·h­·ğķ•Š±·±Đ± ­·ğģÓďĩď×ĤĠĥŋ­|·»­›ķĠĎ Ôŋ•Š±·±Đ± ­·ğģÔďÖď×ĤĠĎ ģÔďÖď×Ĥ Õŋ•Š±·±Đ± ­·ğģÓďÔď×ĤĠĎ ģÓďÔď×Ĥ ŝÓÚĝÖÛĝÒÙŌÒĎÕÔĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ•Š±·±Đ±

    ­·ğģÓďÔď×ĤĠ ŝÓÚĝÖÛĝÒÙŌÒĎÕÔĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ•Š±·±Đ± ­·ěÓĥŋģÓďÔď×Ĥ
  44. ¼‡ƒ}ˑĕ7ˣƗ¹£‡O¹‡~À Óŋ­|xs»†Đ±·h­·ğģķ•Š±·±Đ± ­·ěÓĥŋ­|·»­›ķďķ•Š±·±Đ± ­·ĩÓěÕĥŋ­|·»­›ķĤĠĎ Ôŋ•Š±·±Đ± ­·ğģÖďÖďÔďÓĤĠĎ ģÓďÔďÖďÖĤ ŝÓÚĝÕÛĝÔØŌÒĎÕÔĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ ŝ•Š±·±Đ± ­·ğģÖďÖďÔďÓĤĠ

    ŝÓÚĝÕÛĝÔØŌÒĎÕÔĎÒŋğġ|­•h›†ďhªª•ÇďÔĢĠ ŝ•Š±·±Đ± ­·ĩÓğÖďģÔďÓĤďģÖĤĠ
  45. ¼‡ƒ}ˑĕ>ƕ‡¼>¹Æ—¯©À ·Šš|ğÓ×ÒÒÒĠ±· ª·­ht|h…·|­·‰Š±šh›Çš± š±†±ğÓÒĠ±· ª·­ht|h…·|­·‰Š±šh›Çš±†± ª­Š›·ĩ…Š•|ğ±·h›xh­xĩŠ Ġª­Š›·· ·‰Š±…Š•| ª­Š›·ĩš±|tğ…h•±|Ġª­Š›·šŠ••Š±|t ›x±

    ›·Šš|±·hšª± ª­ t±ğh••Ġ𕊱· …Ġ­•h›†ª­ t|±±ğ|±Ġ •ÇǺÁĀČČ}¤°‘ĆÁLJª©rªÁĆ°½‘ČǕ‡ ‡r© °°¢Čąč½‡ƒ}̑ •ÇǺÁĀČČ½°}‡½Ç°r¤°—Ć‘—Ç•Ì}Ɨ°Č‡½¤rª‘Čº½°—¤—ª‘Ė‡½¤rª‘Ėrºº¤—~rǗ°ªÁĖÌÁ—ª‘Ė½‡ƒ}̑
  46. Ė ‡}̑‘—ª‘—Áºr½Ç°°Ì½ °} Ė c‡ƒ‡~—ƒ‡——Ç—Á½ÌÁǽrǗª‘°½Ìª Ė K‡Áº°ªÁ‡¤°°º—Á¢‡Ü Ė T—ºÁrªƒǽ—~¢Á Ė

    ƒ}‘Ħ½‡ƒ}̑ c¼r¹¹—©‘Y¹
  47. ĸ½°}‡½Ç°r¤°— ½°}‡½ÇĆr¤°—ĸ¢¤r½ªrĆ~°© T•rª¢Áă

  48. ­»±·­h·Š ›ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ’ÊQG^ÆÇ.a±sÇL|sh±·Šh›$|­­šh›› 6|·Å ­“ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ;.;;!;ÛÝÞ|

    sÇ›h±·h±Šh»•†Š|­ ! h•±ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ06Ê»;.×!ÆHUsÇ5h­“»±_Š›“•|­  5 ­|ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ.֛ÞĮÛÞ5GsÇh­•$|Ç|­xh‰• »†ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğÊßßĭĩÜ5xa5sÇhĊx• x| »†Øĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ ^ÙÊQ.ÝÄ»EÖsÇEh»• dŠ|š|­ _ x|›­št‰hŠ­ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğG;·.¬Þ|‰tÅsÇ5Št‰|••|Š›† ­hŠ›±· ­šĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ¬؛ÜHGUÚ^ÅsÇU`%›x ›|±Šh LªŠ­h• ›t­|·|L·hŠ­±ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ»ØxÖEd `;asÇQŠ›|%Äh›Št Q^ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ.ج6ÜÞE†ÜQ%sÇhÄ|_|h·‰|­h•• L‰|••ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ_ Ê×Üa $t%sÇh­ ›»­x|› 0 ††Š›†ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğhÚ»EGt-“0ÞsÇ›x­|ÅHŠx•|Ç Q •±ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ±Þ;;Øĩ·ĩ$šGsÇ$»›·|­$h•|Ç _­Š·Š›†ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ±ßØL.ÇL-5sÇ!­||›‰hš|•| › H|xs»†ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ±ÊÖ·Ö%× 0sÇ6|­Š›†h$¾››|…|•x 5h†ŠtŠh›ĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğٛÝx•“5…†sÇ­·|š5h•·±|^ L»ššh­Çĩ‰··ª±Ĕğğ»›±ª•h±‰Ēt šğª‰ · ±ğ^EÊH†x݆…tsÇsÇ.|••ÇLŠ““|šh H•¯Æ¯¼‡ƒ—ÆÀ