# Learn to Debug

�f�o�b�O�̓v���O���}�ɂȂ邽�߂̊�b�ł��B���� "debug"�̍ŏ��̈Ӗ��̓G���\[����菜�����Ƃł����A���ۂɏd�v�ȈӖ��́A�v���O�����̎��s�𒲂ׂĒ��ׂ邱�Ƃł��B���ʓI�Ƀf�o�b�O�ł��Ȃ��v���O���}�\[�͖ڂ������܂���B

���z��\`�ҁA�݌v�A���́A���G���̗��\_�Ȃǂ��f�o�b�O������{�I���ƍl����l�́A�v���O���}�\[�𓭂����Ă��܂���B�����v���O���}�\[�͗��z�I�Ȑ��E�ɏZ��ł��܂���B���Ȃ��������ł����Ă��A���\�t�g�E�F�A��ЁAGNU�̂悤�ȑg�D�A����т��Ȃ��̓����ɂ���ď����ꂽ�R�\[�h�Ɉ͂܂�Ă��Ȃ���΂Ȃ�܂���B���̃R�\[�h�̂قƂ�ǂ͕s���S�ł���A�s���S�ɕ���������Ă��܂��B���̃R�\[�h�̎��s����������@�\���Ȃ���΁A�킸���ȃo���v�͂��Ȃ����i���ɓ����̂Ă܂��B�����̏ꍇ�A���̉����͎����i�f�o�b�O�j�ɂ���Ă̂ݓ����܂��B

�f�o�b�O�́A�v���O�������̂��̂ł͂Ȃ��A�v���O�����̎��s�Ɋւ�����̂ł��B���Ȃ������\�t�g�E�F�A��Ђ��牽�����w�������ꍇ�A�ʏ�͂��̃v���O���������邱�Ƃ͂ł��܂���B�������A�R�\[�h���h�L�������g�ɏ������Ă��Ȃ��ꏊ�i�}�V���S�̂��N���b�V�������邱�Ƃ͈�ʓI�ős��ȗ�ł��j��h�L�������e�\[�V�������\~���\[�g����Ă���ꏊ���������܂��B����ʓI�ɂ́A�G���\[���쐬���A�������񂾃R�\[�h�𒲂ׁA�G���\[���ǂ̂悤�ɔ�������\��������̂�??�킩��܂���B�K�R�I�ɁA����͂��Ȃ�������Ă���Ƃ����O�񂪂��Ȃ萳�����Ȃ����ƁA���邢�͂��Ȃ����\�����Ă��Ȃ���Ԃ������������Ƃ��Ӗ����܂��B���ɂ́A�\�\[�X�R�\[�h�𒭂߂Ă��閂�@�����܂����삷�邱�Ƃ�����܂��B�����łȂ��ꍇ�́A�f�o�b�O����K�v������܂��B

�v���O�����̎��s����������ɂ́A�R�\[�h�����s���Ă��̃R�\[�h���ώ@�ł���K�v������܂��B��ʂɕ\������Ă�����́A�܂���2�̃C�x���g�Ԃ̒x���̂悤�ɁA���ꂪ�ڂɌ����邱�Ƃ�����܂��B�����̏ꍇ�A�R�\[�h���̂������̕ϐ��̏�ԁA���ۂɎ��s����Ă���R�\[�h�̍s�A�܂��͕��G�ȃf�\[�^�\���ɂ킽���ē���̃A�T�\[�V�������ێ�����Ă��邩�ǂ����ȂǁA�ڂɌ����Ȃ����̂��܂܂�܂��B�����̉B���ꂽ���͖̂��炩�ɂ���Ȃ���΂Ȃ�܂���B

���s�v���O������ "nnards"�𒲂ׂ��ʓI�ȕ��@�́A���̂悤�ɕ��ނł��܂��B

* �f�o�b�O�c�\[�����g�p���āA
* Printlining - �v���O�������ꎞ�I�ɕύX���܂��B�ʏ�A�����o�͂���s��ǉ����܂��B
* ���M���O - �v���O�����̎��s�ɉi���I�ȃE�B���h�E�����O�̌\`�ō쐬���܂��B

�f�o�b�M���O�c�\[���́A���肵�ė��p�\�ȏꍇ�͑f���炵���ł����A������C�e�B���O�ƃ��M���O�͂���ɏd�v�ł��B�f�o�b�O�c�\[���͌���J���ɒx����Ƃ邱�Ƃ��������߁A���ł����p�ł��Ȃ��\��������܂��B����ɁA�f�o�b�O�c�\[���������Ƀv���O�����̎��s���@��ύX����\�������邽�߁A�K���������ۓI�ł͂Ȃ��ꍇ������܂��B�Ō�ɁA�傫�ȃf�\[�^�\���ɑ΂���A�T�\[�V�����̃\`�F�b�N�A�R�\[�h�̋L�q�A�v���O�����̎��s�̕ύX�ȂǁA�������̎�ނ̃f�o�b�O������܂��B�f�o�b�O�c�\[�������肵�Ă���Ƃ��Ƀf�o�b�O�c�\[�����g�p������@��m���Ă������Ƃ͗ǂ����Ƃł����A����2�̕��@���g�p�ł��邱�Ƃ��d�v�ł��B

�������̏��S�҂́A�R�\[�h��ύX����K�v������Ƃ��Ƀf�o�b�O������Ă��܂��B����͗����ł��� - ����͒T���I��p�̂悤�Ȃ��̂ł��B�������A���Ȃ��̓R�\[�h��˂��h���ăW�����v�����邱�Ƃ��w�΂Ȃ���΂Ȃ�܂���B���Ȃ��͂���������āA���Ȃ����ꎞ�I�ɍs�����Ƃ͂����������������͉̂����Ȃ����Ƃ𗝉����邱�Ƃ��w�΂Ȃ���΂Ȃ�܂���B���̋��|��������ꍇ�́A�����^�\[��T���Ă��������B���̋��|�ւ̕q���Ȏn�܂�ŁA�����̗D�ꂽ�v���O���}�\[�������܂��B

Next [How to Debug by Splitting the Problem Space](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space)
