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��lj����܂��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

Last updated