ಡೌಗ್ LLOYD: ಸರಿ GDB. ಇದು ನಿಖರವಾಗಿ ಏನು? ನಿಂತಿರುವ ಆದ್ದರಿಂದ GDB, ಗ್ನೂ ಡೀಬಗ್ಗರ್, ನಿಜವಾಗಿಯೂ ನಾಡಿದು ಸಾಧನ ಎಂದು ನಾವು ಮಾಡಬಹುದು ನಮ್ಮ ಕಾರ್ಯಕ್ರಮಗಳು ದೋಷ ನಮಗೆ ಸಹಾಯ ಮಾಡಲು, ಅಥವಾ ವಿಷಯಗಳನ್ನು ಅಲ್ಲಿ ಕಂಡುಹಿಡಿಯಲು ನಮ್ಮ ಕಾರ್ಯಕ್ರಮಗಳಲ್ಲಿ ತಪ್ಪು ಹೋಗುವ. GDB, ಆಶ್ಚರ್ಯಕರವಾಗಿ ಪ್ರಬಲ ಆದರೆ ಇದು ಔಟ್ ಪುಟ್ ಮತ್ತು ಪರಸ್ಪರ ಸ್ವಲ್ಪ ರಹಸ್ಯ ಇರಬಹುದು. ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ಆಜ್ಞಾ ಸಾಲು ಉಪಕರಣವಾಗಿರುತ್ತದೆ, ಮತ್ತು ಇದು ನೀವು ಸಂದೇಶಗಳನ್ನು ಬಹಳಷ್ಟು ಎಸೆಯಲು ಮಾಡಬಹುದು. ಮತ್ತು ಇದು ರೀತಿಯ ಹಾರ್ಡ್ ಮಾಡಬಹುದು ನಡೆಯುತ್ತಿದೆ ನಿಖರವಾಗಿ ಯಾವ ಪಾರ್ಸ್. ಅದೃಷ್ಟವಶಾತ್, ನಾವು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಕ್ರಮಗಳನ್ನು ನೀವು ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನೀವು CS50 ಮೂಲಕ ಕೆಲಸ ಎಂದು. ನೀವು ಚಿತ್ರಾತ್ಮಕ ಬಳಸದೇ ಇದ್ದರೆ ದೋಷಸೂಚಕವು, ಇದು ನನ್ನ ಸಹೋದ್ಯೋಗಿ ಡಾನ್ Armandarse ಸಾಕಷ್ಟು ಮಾತನಾಡಿದರು ವೀಡಿಯೊ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಎಂದು ಇಲ್ಲಿ ಇರಬೇಕು ಇದೀಗ, ನೀವು ಬೇಕು ಈ ಆಜ್ಞಾ ಸಾಲಿನ ಬಳಸಲು ಉಪಕರಣಗಳು GDB ಕೆಲಸ. ನೀವು CS50 ರಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದಾರೆ ಐಡಿಇ, ನೀವು ಇದನ್ನು ಮಾಡಲು ಅಗತ್ಯವಿಲ್ಲ. ಆದರೆ ನೀವು ಇಲ್ಲದಿದ್ದರೆ CS50 ಐಡಿಇ ಕೆಲಸ, ಬಹುಶಃ ಆವೃತ್ತಿಯನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ CS50 ಯಂತ್ರ ಆಫ್, ಅಥವಾ ಇನ್ನೊಂದು ಲಿನಕ್ಸ್ ಆಪರೇಟಿಂಗ್ GDB ವ್ಯವಸ್ಥೆಯ, ಇದು ಸ್ಥಾಪಿಸಿದ ನೀವು ಬಳಸಬೇಕಾಗಬಹುದು ಈ ಆಜ್ಞಾ ಸಾಲಿನ ಉಪಕರಣಗಳನ್ನು. ಮತ್ತು ನಂತರ ನೀವು ಮಾಡಬಹುದು ಅದು ಇಲ್ಲಿದೆ, ಹಾಗೆ ಕೇವಲ ಹೇಗೆ ತಿಳಿಯಲು ಉಪಯುಕ್ತ GDB ಆಜ್ಞಾ ಸಾಲಿನಿಂದ ಕೆಲಸ. ಆದರೆ ಮತ್ತೆ, ನೀವು ಇಂತಹ CS50 ಐಡಿಇ ಬಳಸಿಕೊಂಡು, ನೀವು ಚಿತ್ರಾತ್ಮಕ ದೋಷಸೂಚಕವು ಬಳಸಬಹುದು ಅದು IDE ರಚಿಸಲ್ಪಟ್ಟಿದೆ. ಆದ್ದರಿಂದ ವಿಷಯಗಳನ್ನು ಹೋಗುವ ಪಡೆಯಲು GDB, ಡೀಬಗ್ ಆರಂಭಿಸಲು ನಿರ್ದಿಷ್ಟ ಪ್ರಕ್ರಿಯೆ ಪ್ರೋಗ್ರಾಂ, ನೀವು ಮಾಡಬೇಕು ಎಲ್ಲಾ ಅಗತ್ಯವಿದೆ GDB ನಂತರ ವಿಧ ಕಾರ್ಯಕ್ರಮದ ಹೆಸರು. ಆದ್ದರಿಂದ ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ವೇಳೆ ಹಲೋ, ನೀವು GDB ಹಲೋ ಟೈಪ್ ಎಂದು. ನೀವು ಹಾಗೆ ಮಾಡಿದಾಗ, ನೀವು ನೀನು GDB ಪರಿಸರ ಮೇಲೆಳೆದುಕೊಳ್ಳಲು. ನಿಮ್ಮ ಕೇಳುತ್ತದೆ, ಮತ್ತು ಬದಲಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಅದರ ನೀವು ವಿಷಯಗಳನ್ನು ಟೈಪ್ ಆಗಿದೆ ಆಜ್ಞಾ ಸಾಲಿನ ಕರಗಳು ನಲ್ಲಿ, ನಿಮ್ಮ ವಿಶಿಷ್ಟ ಎಲ್ಲಾ cd-- ಲಿನಕ್ಸ್ ನಿಮ್ಮ ಪ್ರಾಂಪ್ಟ್ ಆಜ್ಞೆಗಳನ್ನು ಬಹುಶಃ, ಏನೋ ಬದಲಾಗುತ್ತದೆ ಆವರಣ ರೀತಿಯ GDB ಆವರಣ. ಏಕೆಂದರೆ, ನಿಮ್ಮ ಹೊಸ GDB ​​ಪ್ರಾಂಪ್ಟ್ ಇಲ್ಲಿದೆ ನೀವು GDB ಪರಿಸರ ಒಳಗೆ ಆರ್. ಒಮ್ಮೆ ಆ ಪರಿಸರದ ಒಳಗೆ, ಎರಡು ಪ್ರಮುಖ ಆಜ್ಞೆಗಳನ್ನು ಇಲ್ಲ ನೀವು ಬಹುಶಃ ಬಳಸಿ ಈ ಕ್ರಮದಲ್ಲಿ. ಮೊದಲ ಬಿ, ಇದು ವಿರಾಮದ ಚಿಕ್ಕದಾಗಿದೆ. ಮತ್ತು ನೀವು ಬಿ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಟೈಪ್ ನಂತರ ಒಂದು ಕ್ರಿಯೆಯ ಹೆಸರು ಟೈಪ್ ಅಥವಾ ನಿಮಗೆ ಸಂಭವಿಸಿದಾಗ ಸಾಲು ಸಂಖ್ಯೆ ಸುಮಾರು ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಪ್ರಾರಂಭದಿಂದಲೂ ಸ್ವಲ್ಪ ವಿಯರ್ಡ್ ವರ್ತಿಸುವಂತೆ, ನೀವು ಒಂದು ಸಾಲಿನಲ್ಲಿ ಟೈಪಿಸಿದರೆ ಸಂಖ್ಯೆಯ ಹಾಗೂ. ಬಿ, ಅಥವಾ ಬ್ರೇಕ್, ಮಾಡುತ್ತದೆ ಇದು ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಅನುಮತಿಸುತ್ತದೆ ಒಂದು ಕೆಲವು ಪಾಯಿಂಟ್ ವರೆಗೂ ಚಲಾಯಿಸಲು, ಕ್ರಿಯೆಯ ಅಂದರೆ, ಹೆಸರು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಅಥವಾ ಲೈನ್ ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಸಂಖ್ಯೆ. ಮತ್ತು ಆ ಸಮಯದಲ್ಲಿ, ಇದು ಮರಣದಂಡನೆ ಫ್ರೀಜ್. ಈ ಕಾರಣ, ಒಳ್ಳೆಯ ವಿಷಯ ಮರಣದಂಡನೆ ಸ್ಥಗಿತಗೊಂಡಿದೆ ಒಮ್ಮೆ ನೀವು ಬಹಳ ನಿಧಾನವಾಗಿ ಪ್ರಾರಂಭಿಸಬಹುದು ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಮೂಲಕ ಹೆಜ್ಜೆ. ನೀವು ಇಲ್ಲಿಗೆ ವೇಳೆ ಸಾಮಾನ್ಯವಾಗಿ, ಚಾಲನೆಯಲ್ಲಿರುವ ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮಗಳು, ಅವರು ಬಹಳ ಸಣ್ಣ ಆರ್. ಸಾಮಾನ್ಯವಾಗಿ, ನೀವು ಡಾಟ್ ಕತ್ತರಿಸಿ ಟೈಪ್ ಯಾವುದೇ ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಹೆಸರು, ನಮೂದಿಸಿ ಹಿಟ್ ಇದೆ ಮತ್ತು ನೀವು ಮಿನುಗು ಮೊದಲು, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಈಗಾಗಲೇ ಮುಗಿದ. ಇದು ನಿಜವಾಗಿಯೂ ಪ್ರಯತ್ನಿಸಿ ಸಾಕಷ್ಟು ಸಮಯ ಅಲ್ಲ ಮತ್ತು ತಪ್ಪು ವಿಶೇಷವೇನು ಏನೆಂದು ಲೆಕ್ಕಾಚಾರ. ಇದು ನಿಜವಾಗಿಯೂ ವಿಷಯಗಳನ್ನು ನಿಧಾನಗೊಳಿಸುವ ಸಾಧ್ಯವಾಗುತ್ತದೆ ಆದ್ದರಿಂದ ಕೆಳಗೆ ಬಿ ಒಂದು ಬ್ರೇಕ್ ಪಾಯಿಂಟ್ ಸೆಟ್ ಮೂಲಕ ತದನಂತರ ಮೆಟ್ಟಿಲು. ನಿಮ್ಮ ಬ್ರೇಕ್ ಸೆಟ್ ಮಾಡಿದ ನಂತರ ಒಮ್ಮೆ ಬಿಂದು, ನೀವು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಚಲಾಯಿಸಬಹುದು. ಮತ್ತು ನೀವು ಯಾವುದೇ ಹೊಂದಿದ್ದರೆ ಆಜ್ಞಾ ಸಾಲಿನ ಆರ್ಗುಮೆಂಟ್ಗಳನ್ನು, ನೀವು ಅವುಗಳನ್ನು ಇಲ್ಲಿ ಸೂಚಿಸಲು ಮಾಡಿದಾಗ ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಹೆಸರು ರೀತಿಯ GDB. ನೀವು ಎಲ್ಲಾ ಆಜ್ಞಾ ಸಾಲಿನ ಸೂಚಿಸಿ ಆರ್, ಅಥವಾ ರನ್ ತೆಗೆದುಕೊಳ್ಳುವ ಮೂಲಕ ಚರ್ಚೆ ತದನಂತರ ಯಾವುದೇ ಆಜ್ಞಾ ಸಾಲಿನ ಆರ್ಗುಮೆಂಟ್ಗಳನ್ನು ನೀವು ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಒಳಗೆ ಅಗತ್ಯವಿದೆ. ಇತರ ಹಲವಾರು ನಿಜವಾಗಿಯೂ ಇವೆ ಪ್ರಮುಖ ಮತ್ತು ಉಪಯುಕ್ತ ಆಜ್ಞೆಗಳನ್ನು ಜಿಡಿಪಿ ಪರಿಸರದ ಒಳಗೆ. ಆದ್ದರಿಂದ ಕೇವಲ ತ್ವರಿತವಾಗಿ ನನಗೆ ಅವಕಾಶ ಅವುಗಳಲ್ಲಿ ಕೆಲವು ಹೋಗಿ. ಮೊದಲ, ಮುಂದಿನ ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಎನ್, ಆಗಿದೆ ಮತ್ತು ನೀವು ಮುಂದಿನ ಬದಲಿಗೆ n ನ ಟೈಪಿಸಿದರೆ ಎರಡೂ ಕೆಲಸ. ಮತ್ತು ಇದು ಕೇವಲ ಸಂಕ್ಷಿಪ್ತ ಇಲ್ಲಿದೆ. ಮತ್ತು ನೀವು ಬಹುಶಃ ಈಗಾಗಲೇ ಪಡೆದ ಎಂದು ವಿಷಯಗಳನ್ನು ಟೈಪ್ ಸಾಧ್ಯವಾಗದ, ಬಳಸಲಾಗುತ್ತದೆ ಕಡಿಮೆ ಸಾಮಾನ್ಯವಾಗಿ ಉತ್ತಮ. ಮತ್ತು ಏನು ಮಾಡುತ್ತಾನೆ ಇದು ಮಾಡುತ್ತೇವೆ ಕೋಡ್ ಮುಂದೆ ಒಂದು ಬ್ಲಾಕ್ ಹೆಜ್ಜೆ. ಆದ್ದರಿಂದ ಮುಂದುವರೆಯಲು ಮಾಡುತ್ತೇವೆ ಒಂದು ಕಾರ್ಯ ಕರೆ ರವರೆಗೆ. ತದನಂತರ ಬದಲಿಗೆ ಆ ಕಾರ್ಯವನ್ನು ಒಳಗೆ ಡೈವಿಂಗ್ ಮತ್ತು ಕಾರ್ಯಗಳನ್ನು ಎಲ್ಲಾ ಮೂಲಕ ಹೋಗುವ ಕೋಡ್, ಇದು ಕಾರ್ಯ ಹೊಂದಿರುತ್ತದೆ. ಕಾರ್ಯ ಎಂದು ನಡೆಯಲಿದೆ. ಇದು ತನ್ನ ಕೆಲಸವನ್ನು ಯಾವುದೇ ಮಾಡುತ್ತೇನೆ. ಇದು ಈ ಕೆಳಗಿನ ಹಿಂದಿರುಗುವ ಇದು ಎಂಬ ಕ್ರಿಯೆಯ. ತದನಂತರ ನೀವು ಕಡೆಗೆ ಮಾಡುತ್ತೇವೆ ಕರೆ ಕಾರ್ಯದ ಮುಂದಿನ ಸಾಲಿನ. ನೀವು ಹಂತ ಬಯಸಿದರೆ ಕಾರ್ಯದ ಒಳಗೆ, ಬದಲಿಗೆ ಕೇವಲ ಹೊಂದುವ ಇದು ವಿಶೇಷವಾಗಿ, ಕಾರ್ಯಗತಗೊಳಿಸಲು ನೀವು ಸಮಸ್ಯೆ ಅನಿಸಿದರೆ ಕಾರ್ಯದ ಒಳಗೆ ಸುಳ್ಳು ಇರಬಹುದು, ನೀವು, ಸಹಜವಾಗಿ, ವಿರಾಮ ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಒಳಗೆ ಕ್ರಿಯೆಯ ಪಾಯಿಂಟ್. ನೀವು ಈಗಾಗಲೇ ಚಾಲನೆಯಲ್ಲಿರುವ ಬಳಸುತ್ತಿದ್ದರೆ ಅಥವಾ ನೀವು ಕೋಡ್ ಮುಂದೆ ಒಂದು ಸಾಲಿನ ಸ್ಟೆಪ್ ಬಳಸಲು. ಆದ್ದರಿಂದ ಈ ಹೆಜ್ಜೆ ಕಾಣಿಸುತ್ತದೆ ಮತ್ತು ಕಾರ್ಯಗಳನ್ನು ಡೈವ್, ಬದಲಿಗೆ ಕೇವಲ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಹೊಂದಿವೆ ಮತ್ತು ಕಾರ್ಯದಲ್ಲಿ ಮುಂದುವರೆಯುತ್ತಿದೆ ನೀವು ಡೀಬಗ್ ಆರ್. ನೀವು ಎಂದಾದರೂ ತಿಳಿಯಲು ಬಯಸಿದರೆ ಒಂದು ವೇರಿಯಬಲ್ ಮೌಲ್ಯವನ್ನು, ನೀವು ಪು, ಅಥವಾ ಪ್ರಿಂಟ್ ಟೈಪ್ ಮಾಡಬಹುದು ತದನಂತರ ವೇರಿಯಬಲ್ ಹೆಸರು. ಮತ್ತು, ನಿಮಗೆ ಮುದ್ರಿಸುತ್ತದೆ GDB ಪರಿಸರದ ಒಳಗೆ, ವೇರಿಯಬಲ್ ಹೆಸರು, ಎಂದು you-- ನನಗೆ ವೇರಿಯಬಲ್ ಮೌಲ್ಯವನ್ನು ಕ್ಷಮಿಸಬೇಕು ನೀವು ಎಂಬ ಬಂದಿದೆ ಎಂದು. ನೀವು ಪ್ರತಿ ಮೌಲ್ಯಗಳನ್ನು ತಿಳಿಯಲು ಬಯಸಿದರೆ ಅಲ್ಲಿ ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್ ಪ್ರವೇಶಿಸಬಹುದು ನೀವು ಪ್ರಸ್ತುತ ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ, ನೀವು ಮಾಹಿತಿಯನ್ನು ಸ್ಥಳೀಯರು ಟೈಪ್ ಮಾಡಬಹುದು. ಇದು ಹೆಚ್ಚು ಬಹಳಷ್ಟು ವೇಗವಾಗಿ ಇಲ್ಲಿದೆ ನಂತರ ಪು ಟೈಪ್ ಮತ್ತು ಯಾವುದೇ, ಎಲ್ಲಾ ಔಟ್ ಪಟ್ಟಿ ನೀವು ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ತಿಳಿದಿರುವ ಅಸ್ಥಿರ. ನೀವು ಮಾಹಿತಿಯನ್ನು ಸ್ಥಳೀಯರು ಟೈಪ್, ಮತ್ತು ಇದು ಮಾಡಬಹುದು ನೀವು ಎಲ್ಲವನ್ನೂ ಮುದ್ರಿಸುತ್ತದೆ. ಪಕ್ಕದಲ್ಲಿ ಇದು ಬಿಟಿ ಆಗಿದೆ ಬ್ಯಾಕ್ ಟ್ರೇಸ್ ಸಣ್ಣ. ಈಗ, ಸಾಮಾನ್ಯವಾಗಿ, ವಿಶೇಷವಾಗಿ ಆರಂಭಿಕ CS50 ರಲ್ಲಿ, ನೀವು ನಿಜವಾಗಿಯೂ ಸಂದರ್ಭದಲ್ಲಿ ಬೀರುವುದಿಲ್ಲ ಬಿಟಿ, ಅಥವಾ ಬ್ಯಾಕ್ ಟ್ರೇಸ್ ಬಳಸಲು, ನೀವು ಕ್ರಿಯೆಗಳನ್ನು ಪಡೆಯುವುದು ಏಕೆಂದರೆ ಇತರ ಕಾರ್ಯಗಳನ್ನು ಕರೆ. ನೀವು ಮುಖ್ಯ ಕರೆ ಒಂದು ಹೊಂದಿರಬಹುದು ಕಾರ್ಯ, ಆದರೆ ಬಹುಶಃ ಅದು ಇಲ್ಲಿದೆ. ನೀವು ಇತರ ಕಾರ್ಯವನ್ನು ಹೊಂದಿಲ್ಲ, ಮತ್ತೊಂದು ಕ್ರಿಯೆ, ಕರೆ ಇದು ಮತ್ತೊಂದು ಕಾರ್ಯ ಕರೆಗಳನ್ನು, ಹೀಗೆ. ಆದರೆ ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮಗಳು ಹೆಚ್ಚು ಪಡೆಯಲು ಎಂದು ಸಂಕೀರ್ಣ, ಮತ್ತು ವಿಶೇಷವಾಗಿ ನೀವು ಕೆಲಸ ಪ್ರಾರಂಭಿಸಿದಾಗ ಪುನರಾವರ್ತನ ಜೊತೆ, ಮತ್ತೆ ಜಾಡಿನ ನೀವು ಅವಕಾಶ ಒಂದು ನಿಜವಾಗಿಯೂ ಉಪಯುಕ್ತ ಮಾರ್ಗವಾಗಿದೆ ರೀತಿಯ ಅಲ್ಲಿ ಕೆಲವು ಸಂದರ್ಭದಲ್ಲಿ ಪಡೆಯಲು ನನ್ನ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ನಾನು. ಆದ್ದರಿಂದ ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಬರೆದು ನಾವು ಹೇಳಲು, ಮತ್ತು ನೀವು ಮುಖ್ಯ ಒಂದು ಕಾರ್ಯ ಕರೆಗಳನ್ನು ತಿಳಿದಿದೆ ಒಂದು ಕಾರ್ಯ ಕರೆಗಳನ್ನು ಇದು ಎಫ್, ಒಂದು ಫಂಕ್ಷನ್ h ಅನ್ನು ಕರೆಯುತ್ತದೆ, ಜಿ. ನಾವು ಹಲವಾರು ಪದರಗಳು ಗೂಡುಕಟ್ಟುವ ಇಲ್ಲಿ ನಡೆಯುತ್ತಿರುವ. ನೀವು ಒಳಗೆ ನೀವು ನಿಮ್ಮ GDB ಪರಿಸರ, ಮತ್ತು ನಿಮ್ಮ ಒಳಗೆ ಗೊತ್ತು ಗಂ, ಆದರೆ ನೀವು ಮರೆಯಬೇಡಿ ನೀವು ಅಲ್ಲಿ ನೀವು ಪಡೆದುಕೊಂಡದ್ದು ಬಗ್ಗೆ ನೀವು ಬಿಟಿ, ಅಥವಾ ಮತ್ತೆ ಜಾಡಿನ ಟೈಪಿಸಿದರೆ are--, ಮತ್ತು ಇದು, ಗಂ, ಗ್ರಾಂ ಔಟ್ ಮುಖ್ಯ F ಮುದ್ರಿಸಲು ಕಾಣಿಸುತ್ತದೆ ಕೆಲವು ಮಾಹಿತಿ, ಜೊತೆಗೆ ಇದು ನೀವು ಒಂದು ಸುಳಿವನ್ನು ನೀಡುತ್ತದೆ, ಸರಿ ಮುಖ್ಯ ಎಂಬ ಎಫ್ ಎಂಬ ಗ್ರಾಂ ಎಫ್, ಜಿ, ಹೆಚ್ ಎಂಬ ಮತ್ತು ಅಲ್ಲಿ ನಾನು ಪ್ರಸ್ತುತ ನನ್ನ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ನಾನು. ಆದ್ದರಿಂದ, ನಿಜವಾಗಿಯೂ ಉಪಯುಕ್ತವಾಗಿದೆ ವಿಶೇಷವಾಗಿ GDB ಯ ಗೂಢ ಸೆಲ್ಲೋಫೇನ್ ಎಂದು ಗೆ, ಸ್ವಲ್ಪ ಅಗಾಧ ಆಗುತ್ತದೆ ವಸ್ತುಗಳು ನಿಖರವಾಗಿ ಅಲ್ಲಿ ಕಂಡುಹಿಡಿಯಲು. ಅಂತಿಮವಾಗಿ, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಮಾಡಲಾಗುತ್ತದೆ, ನೀವು ಪೂರೈಸಿದಾಗ ಅಥವಾ ಅದನ್ನು ಡೀಬಗ್ ಮತ್ತು ನೀವು ದೂರ ಹೆಜ್ಜೆ GDB ಪರಿಸರದಿಂದ, ಅದು ಹೊರಗೆ ಹೇಗೆ ತಿಳಿಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನೀವು ಪ್ರಶ್ನೆ ಟೈಪ್ ಅಥವಾ ಹೊರಬರಲು, ಬಿಟ್ಟು. ಈಗ, ಇಂದಿನ ವಿಡಿಯೋ ಮೊದಲು ನಾನು ಒಂದು ದೋಷಯುಕ್ತ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ತಯಾರಿಸಲಾಗುತ್ತದೆ ನಾನು ಸಂಕಲನ ಇದು ಎಂಬ buggy1, buggy1.c ಎಂಬ ಕಡತದಿಂದ. ನೀವು, ಈ ಅಪೇಕ್ಷಿಸಬಹುದು ಮಾಹಿತಿ ಪ್ರೋಗ್ರಾಂ ವಾಸ್ತವವಾಗಿ ದೋಷಯುಕ್ತ ಹೊಂದಿದೆ. ಏನಾದರೂ ತಪ್ಪಾದಲ್ಲಿ ನಾನು ಪ್ರಯತ್ನಿಸಿ ಮತ್ತು ಚಾಲನೆ. ಈಗ, ದುರದೃಷ್ಟವಶಾತ್, ನಾನು ತಿಳಿಯದೆ ನನ್ನ buggy1.c ಕಡತ ಅಳಿಸಲಾಗಿದೆ ಆದ್ದರಿಂದ ಸಲುವಾಗಿ ನನಗೆ ಲೆಕ್ಕಾಚಾರ ಏನು, ಈ ಪ್ರೋಗ್ರಾಂ ತಪ್ಪು ವಿಶೇಷವೇನು ನಾನು ಬಳಸಲು ಹೊಂದಿರುತ್ತವೆ ಪಡೆಯಲಿದ್ದೇನೆ GDB ರೀತಿಯ ಕುರುಡಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಈ ಪ್ರೋಗ್ರಾಂ ಮೂಲಕ ನ್ಯಾವಿಗೇಟ್ ತಪ್ಪು ವಿಶೇಷವೇನು ನಿಖರವಾಗಿ ಲೆಕ್ಕಾಚಾರ. ಆದರೆ ಸಾಧನಗಳನ್ನು ಬಳಸುವ ನಾವು ಈಗಾಗಲೇ ಕಲಿತ ನಾವು ಅತ್ಯಧಿಕವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಅದು ನಿಖರವಾಗಿ ಏನೆಂದು. ಆದ್ದರಿಂದ ಮೇಲೆ ತಲೆಯಿಂದ ಅವಕಾಶ CS50 ಐಡಿಇ ಮತ್ತು ಒಂದು ನೋಟ ಹೊಂದಿವೆ. ಸರಿ, ಆದ್ದರಿಂದ ನಾವು ಇಲ್ಲಿ ನೀವು ನನ್ನ CS50 ಐಡಿಇ ಪರಿಸರ, ಮತ್ತು ನಾನು ಸ್ವಲ್ಪ ಜೂಮ್ ವಿಲ್ ಆದ್ದರಿಂದ ನೀವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ನೋಡಬಹುದು. ನನ್ನ ಟರ್ಮಿನಲ್ ವಿಂಡೋದಲ್ಲಿ, ನಾನು ಪಟ್ಟಿ ನನ್ನ ಪ್ರಸ್ತುತ ನಿರ್ದೇಶಕ ವಿಷಯಗಳನ್ನು LS ಹೊಂದಿರುವ, ನಾವು ನಾನು ನೋಡುತ್ತಾರೆ ಮೂಲ ಕಡತಗಳನ್ನು ಒಂದೆರಡು ಹೊಂದಿವೆ ಇಲ್ಲಿ, ಸೇರಿದಂತೆ ಹಿಂದೆ buggy1 ಚರ್ಚಿಸಲಾಗಿದೆ. ಏನು ಯಾವಾಗ ಹೋಗುತ್ತದೆ ನಾನು ಪ್ರಯತ್ನಿಸಿ ಮತ್ತು buggy1 ರನ್. ಅಲ್ಲದೆ ನ ಔಟ್ ಕಂಡುಹಿಡಿಯೋಣ. ನಾನು, ಡಾಟ್ ಕತ್ತರಿಸಿ ಟೈಪ್ ದೋಷಯುಕ್ತ, ಮತ್ತು ನಾನು ನಮೂದಿಸಿ ಹಿಟ್. ವಿಭಜನೆ ದೋಷಗಳು. ಉತ್ತಮ ಅಲ್ಲ. ನೀವು ಮರುಪಡೆಯಲು ವೇಳೆ, ಒಂದು ಸೆಗ್ಮೆಂಟೇಶನ್ ದೋಷಕ್ಕೆ ವಿಶಿಷ್ಟವಾಗಿ ನಾವು ಮೆಮೊರಿ ಪ್ರವೇಶಿಸುವಾಗ ಸಂಭವಿಸುವ ನಾವು ಮುಟ್ಟುವಂತಿಲ್ಲ ನೀವು. ನಾವು ಹೇಗೋ ತಲುಪಿದ್ದೀರಿ ಪರಿಧಿಯಿಂದ ಹೊರಗೆ ಯಾವ ಪ್ರೋಗ್ರಾಂ, ಕಂಪೈಲರ್, ನಮಗೆ ನೀಡಿದೆ. ಆದ್ದರಿಂದ ಈಗಾಗಲೇ ಒಂದು ಸುಳಿವು ಉಪಕರಣ ಇರಿಸಿಕೊಳ್ಳಲು ನಾವು ಡೀಬಗ್ ಪ್ರಕ್ರಿಯೆ ಆರಂಭಿಸಿದಾಗ. ಏನೋ ಇಲ್ಲಿ ಸ್ವಲ್ಪ ತಪ್ಪಾಗಿದೆ. ಸರಿ, ಆದ್ದರಿಂದ ನಾವು ಆರಂಭ GDB ಪರಿಸರವನ್ನು ನಾವು ವ್ಯಕ್ತಿಯು ಒಂದು ವೇಳೆ ಮತ್ತು ನೋಡಿ ನಿಖರವಾಗಿ ಸಮಸ್ಯೆ. ನನ್ನ ಪರದೆಯ ತೆರವುಗೊಳಿಸಲು ಪಡೆಯಲಿದ್ದೇನೆ ಮತ್ತು ನಾನು GDB ಟೈಪ್ ಪಡೆಯಲಿದ್ದೇನೆ ಮತ್ತೆ, GDB ಪರಿಸರಕ್ಕೆ ಪ್ರವೇಶಿಸಲು, ಮತ್ತು ಕಾರ್ಯಕ್ರಮದ ಹೆಸರು ನಾನು buggy1 ದೋಷ ಬಯಸುವ. ನಾವು ಓದುವ, ಸ್ವಲ್ಪ ಸಂದೇಶವನ್ನು buggy1 ಸಂಕೇತಗಳಿಂದ, ಮಾಡಲಾಗುತ್ತದೆ. ಅರ್ಥ ಎಲ್ಲಾ ಇದು ಆಕರ್ಷಿಸಲ್ಪಡುತ್ತದೆ ಒಟ್ಟಿಗೆ ಕೋಡ್ ಎಲ್ಲಾ, ಈಗ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ GDB, ಮತ್ತು ಹೋಗಲು ಸಿದ್ಧ. ಈಗ, ನಾನು ಏನನ್ನು ಬಯಸುತ್ತೀರಿ? ನೀವು ಏನು ನೆನಪಿದೆಯೇ ಮೊದಲ ಹಂತದ ವಿಶಿಷ್ಟವಾಗಿ ನಾನು ಈ ಪರಿಸರದ ಒಳಗೆ ಮನುಷ್ಯ ನಂತರ? ಆಶಾದಾಯಕವಾಗಿ, ನೀವು ಸೆಟ್ ಹೇಳಿದರು ಒಂದು ಬ್ರೇಕ್ ಪಾಯಿಂಟ್, ಏಕೆಂದರೆ ವಾಸ್ತವವಾಗಿ ಎಂದು ನಾನು ಬಯಸುವ ಏನು. ಈಗ, ನಾನು ಹೊಂದಿಲ್ಲ ಈ ಮೂಲ ಕೋಡ್ ನನ್ನ ಮುಂದೆ, ಇದು ಬಹುಶಃ ವಿಶಿಷ್ಟ ಬಳಕೆಯ ಸಂದರ್ಭದಲ್ಲಿ, ಮೂಲಕ. ನೀವು ಬಹುಶಃ. ಆ ಉತ್ತಮ ಇಲ್ಲಿದೆ. ಆದರೆ ಊಹಿಸಿಕೊಂಡು ನೀವು ನಾಟ್, ಇಲ್ಲಿದೆ ಮಾಡಲು ನಿಮಗೆ ಒಂದು ಕಾರ್ಯ ಪ್ರತಿಯೊಂದು ಸಿ ಪ್ರೋಗ್ರಾಂ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ? ಎಷ್ಟೇ ದೊಡ್ಡ ಅಥವಾ ಎಷ್ಟು ಸಂಕೀರ್ಣ ಅದು, ಈ ಕಾರ್ಯ ಖಂಡಿತವಾಗಿಯೂ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಮುಖ್ಯ, ಬಲ? ಆದ್ದರಿಂದ ಬೇರೆ ಎಲ್ಲಾ, ನಾವು ಮಾಡಬಹುದು ವಿಫಲವಾದ ಮುಖ್ಯ ಒಂದು ಬ್ರೇಕ್ ಪಾಯಿಂಟ್ ಸೆಟ್. ಮತ್ತೆ, ನಾನು ಟೈಪ್ ಮಾಡಬಹುದು ಬದಲಿಗೆ ಬಿ, ಮುಖ್ಯ ಮುರಿಯಲು. ಮತ್ತು ನೀವು, ಕುತೂಹಲದಿಂದ, ನೀವು ವೇಳೆ ಇದುವರೆಗೆ ದೀರ್ಘ ಆಜ್ಞೆಯನ್ನು ಟೈಪ್ ಮತ್ತು ನಂತರ ನೀವು ಅರ್ಥ ತಪ್ಪು ವಿಷಯ ಟೈಪಿಸಿದ, ಮತ್ತು ನೀವು ತೊಡೆದುಹಾಕಲು ಬಯಸುವ ಎಲ್ಲಾ ನಾನು ಮಾಡಿದಂತೆ, ನೀವು ತಿನ್ನುವೆ, ಕಂಟ್ರೋಲ್ ಯು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಎಲ್ಲವನ್ನೂ ಅಳಿಸಿ ಮತ್ತು ನೀವು ತಿಳಿಯಪಡಿಸಲು ಕರ್ಸರ್ ಸಾಲುಗಳನ್ನು ಆರಂಭಕ್ಕೆ. ಕೇವಲ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಿ ವೇಗವಾಗಿ ಬಹಳಷ್ಟು ಅಳಿಸಿ ಅಥವಾ ಒಂದು ಗುಂಪನ್ನು ಬಾರಿ ಹೊಡೆಯುವ ಮೇಲೆ. ಆದ್ದರಿಂದ ಮುಖ್ಯ ಒಂದು ಬ್ರೇಕ್ ಪಾಯಿಂಟ್ ಸೆಟ್ ಮಾಡುತ್ತೇವೆ. ಮತ್ತು ನೀವು ನೋಡಬಹುದು ಎಂದು, ಇದು ನಾವು ಮಾಡಿದ ಹೇಳುತ್ತಾರೆ ಕಡತ buggy1.c ಒಂದು ಬ್ರೇಕ್ ಪಾಯಿಂಟ್ ಸೆಟ್, ಮತ್ತು ಸ್ಪಷ್ಟವಾಗಿ ಮೊದಲ ಸಾಲು ಮುಖ್ಯ ಕೋಡ್ ಸಾಲಿನ ಏಳು. ಮತ್ತೆ, ನಾವು ಇಲ್ಲ ಇಲ್ಲಿ ಮೂಲ ಫೈಲ್, ಆದರೆ ನಾನು ಎಂದು ಊಹಿಸುತ್ತವೆ ಮಾಡುತ್ತೇವೆ ನನಗೆ ಸತ್ಯ ಹೇಳುವ. ತದನಂತರ, ನಾನು ಪ್ರಯತ್ನಿಸುವಾಗ ನಾನು ಮತ್ತು ಆರ್, ಪ್ರೋಗ್ರಾಂ. ಕಾರ್ಯಕ್ರಮವನ್ನು ಪ್ರಾರಂಭಿಸುವ. ಸರಿ, ಈ ಸಂದೇಶವನ್ನು ಒಂದು ಸ್ವಲ್ಪ ರಹಸ್ಯ. ಆದರೆ ಮೂಲಭೂತವಾಗಿ ಇಲ್ಲಿದೆ ಇಲ್ಲಿ ಏನು ನಡೆಯುತ್ತಿದೆ ಅದು ಕೇವಲ ಆಗಿದೆ ನನ್ನ ಬ್ರೇಕ್ ಹಿಟ್ ಮಾಡಿದ ನನಗೆ ಹೇಳುವ ಪಾಯಿಂಟ್, ಬ್ರೇಕ್ ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆ 1. ತದನಂತರ, ಕೋಡ್ ಆಫ್ ಸಾಲನ್ನು ಯಾವುದೇ ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿ. ಕೇವಲ ಕಾರಣದಿಂದ ನಾನು ಸಂದೇಶವನ್ನು ನೋಡಿದ ಬಾಗುತ್ತೇನೆ ನಾನು ಅಜಾಗರೂಕತೆಯಿಂದ ಏಕೆಂದರೆ ನನ್ನ buggy.c ಕಡತ ಅಳಿಸಲಾಗಿದೆ. ನನ್ನ buggy1.c ಕಡತ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ವೇಳೆ ಪ್ರಸ್ತುತ ಕೋಶದಲ್ಲಿ ವಾಸ್ತವವಾಗಿ ಎಂದು ಸಾಲನ್ನು ಬಲ ಹೇಳಿ ಕೋಡ್ ಸಾಲು ಅಕ್ಷರಶಃ ಓದುತ್ತದೆ. ದುರದೃಷ್ಟವಶಾತ್, ನಾನು ಅಳಿಸಲಾಗಿದೆ. ನಾವು ರೀತಿಯ ನ್ಯಾವಿಗೇಟ್ ನೀನು ಹೆಚ್ಚು ಕುರುಡಾಗಿ ಈ ಸ್ವಲ್ಪ ಮೂಲಕ. ಸರಿ, ಆದ್ದರಿಂದ ನೋಡೋಣ, ಏನು ನಾನು ಇಲ್ಲಿ ಮಾಡಲು ಬಯಸುತ್ತೀರಿ? ನಾನು ಸ್ಥಳೀಯ ಏನು ತಿಳಿಯಲು ಬಯಸುತ್ತೇನೆ ಅಸ್ಥಿರ ಬಹುಶಃ ನನಗೆ ಲಭ್ಯವಿದೆ. ನನ್ನ ಪ್ರೋಗ್ರಾಂ ಪ್ರಾರಂಭಿಸಿದಾಗ. ನ ಇರಬಹುದು ಎಂಬುದನ್ನು ನೋಡೋಣ ಈಗಾಗಲೇ ನಮಗೆ ಆರಂಭಿಸಲಾಗಿಲ್ಲ. ನಾನು ಮಾಹಿತಿಯನ್ನು ಸ್ಥಳೀಯರು, ಯಾವುದೇ ಸ್ಥಳೀಯರು ಟೈಪ್. ಎಲ್ಲಾ ಸರಿ, ಆದ್ದರಿಂದ ನನಗೆ ಮಾಹಿತಿಯನ್ನು ಒಂದು ಟನ್ ನೀಡುತ್ತದೆ. ನಾನು ಪ್ರಯತ್ನಿಸಿ ಮತ್ತು ಒಂದು ವೇರಿಯೇಬಲ್ ಮುದ್ರಿಸುತ್ತದೆ, ಆದರೆ ನಾನು ಯಾವುದೇ ವೇರಿಯಬಲ್ ಹೆಸರುಗಳು ಗೊತ್ತಿಲ್ಲ. ನಾನು ಮತ್ತೆ ಜಾಡಿನ ಪ್ರಯತ್ನಿಸಬಹುದು, ಆದರೆ ನಾನು ಮುಖ್ಯ ಒಳಗೆ ಮನುಷ್ಯ, ಆದ್ದರಿಂದ ನಾನು ಮಾಡಿಲ್ಲ ಗೊತ್ತು ಇದೀಗ ಮತ್ತೊಂದು ಕ್ರಿಯೆ ಕರೆ. ನನ್ನ ಮಾತ್ರ ಆಯ್ಕೆಗಳೆಂದರೆ ಹಾಗೆ ಕಾಣುತ್ತದೆ ಎನ್ ಅಥವಾ ಬಳಸಲು ಮತ್ತು ಧುಮುಕುವುದಿಲ್ಲ ಆರಂಭಿಸಲು. ನಾನು ಎನ್ ಬಳಸಲು ಪಡೆಯಲಿದ್ದೇನೆ. ಹಾಗಾಗಿ N ಟೈಪ್. ದೇವತೆ ನನ್ನ ಓಹ್, ಏನು ಇಲ್ಲಿ ನಡೆಯುತ್ತಿದೆ. ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ಸಂಕೇತಗಳನ್ನು ಪಡೆದರು, SIGSEGV ಸೆಗ್ಮೆಂಟೇಶನ್ ದೋಷಕ್ಕೆ ತದನಂತರ ವಿಷಯದ ಸಂಪೂರ್ಣ ಗುಂಪೇ. ನಾನು ಈಗಾಗಲೇ ಚಿತ್ತಸ್ಥೈರ್ಯವು ಮನುಷ್ಯ. ಅಲ್ಲದೆ, ವಾಸ್ತವವಾಗಿ ಇಲ್ಲ ಒಂದು ಬಹಳಷ್ಟು ಇಲ್ಲಿ ಕಲಿಯಬೇಕಾದ. ಹಾಗಾಗಿ ಈ ನಮಗೆ ಹೇಳಲು ಇಲ್ಲ? ಏನು ಇದು ತಿಳಿಸುತ್ತದೆ ಈ ಕಾರ್ಯಕ್ರಮ, ಆಗಿದೆ ಸುಮಾರು, ಆದರೆ ಇನ್ನೂ, seg ತಪ್ಪು. ವಿಶೇಷವಾಗಿ, ನಾನು ಪಡೆಯಲಿದ್ದೇನೆ ಮತ್ತಷ್ಟು ಇಲ್ಲಿ ಜೂಮ್, ಅದರ ಬಗ್ಗೆ seg ತಪ್ಪು ಬಗ್ಗೆ ಏನೋ strcmp ಕರೆಯಲಾಗುತ್ತದೆ. ಈಗ, ನಾವು ಚರ್ಚಿಸಲಾಗಿದೆ ಇರಬಹುದು ವ್ಯಾಪಕವಾಗಿ ಈ ಕಾರ್ಯ. ನಾವು ಹೋಗುತ್ತಿಲ್ಲ ಏಕೆಂದರೆ ಆದರೆ is-- ಪ್ರತಿ ಕಾರ್ಯ ಬಗ್ಗೆ ಮಾತನಾಡಲು ಎಂದು ಸಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಗ್ರಂಥಾಲಯದ ಆದರೆ, ನಿಮಗೆ ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಆರ್ ನೀವು ತೆಗೆದುಕೊಳ್ಳಲು ವಿಶೇಷವಾಗಿ ವೇಳೆ reference.cs50.net ನೋಡಲು. ಮತ್ತು strcmp ನಿಜವಾಗಿಯೂ ಬಲಶಾಲಿ ಒಳಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂದು ಕಾರ್ಯ string.h ಹೆಡರ್ ಶೀರ್ಷಿಕೆ ಇದು ಕಡತ, ಕಾರ್ಯಗಳನ್ನು ಸಮರ್ಪಿಸಲಾಗಿದೆ ಎಂದು ಫೈಲ್ ಆ ಕೆಲಸ ಮತ್ತು ತಂತಿಗಳನ್ನು ಕುಶಲತೆಯಿಂದ. ವಿಶೇಷವಾಗಿ, ಏನು strcmp ಮಾಡುತ್ತದೆ ಇದು ಎರಡು ತಂತಿಗಳು ಮೌಲ್ಯಗಳನ್ನು ಹೋಲಿಸುತ್ತದೆ. ಹಾಗಾಗಿ ತಪ್ಪು ವಿಭಜನೆ ಬಗ್ಗೆ ನಾನು ಕರೆ ಕಾಣುತ್ತದೆ strcmp ಗೆ. ನಾನು ಹಿಟ್ N, ಮತ್ತು ವಾಸ್ತವವಾಗಿ ನಾನು ಸಂದೇಶವನ್ನು ಪ್ರೋಗ್ರಾಂ ಸಿಗ್ನಲ್ SIGSEGV ಅಂತ್ಯಗೊಳ್ಳುತ್ತದೆ ಸೆಗ್ಮೆಂಟೇಶನ್ ದೋಷಕ್ಕೆ. ಈಗ ನಾನು ವಾಸ್ತವವಾಗಿ seg faulted ಎಂದು, ಮತ್ತು ನನ್ನ ಪ್ರೋಗ್ರಾಂ ಸಾಕಷ್ಟು ಹೊಂದಿದೆ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಿಟ್ಟುಬಿಟ್ಟಿದ್ದಾರೆ. ಈ ಪ್ರೋಗ್ರಾಂ ಅಂತ್ಯ. ಅದು ಮುರಿದು ಅದನ್ನು ಅಪ್ಪಳಿಸಿತು. ಆದ್ದರಿಂದ ಸಾಕಷ್ಟು ಅಲ್ಲ, ಆದರೆ ನಾನು ವಾಸ್ತವವಾಗಿ ಸ್ವಲ್ಪ ಕಲಿತರು ಈ ಕಡಿಮೆ ಅನುಭವದಿಂದ. ನಾನು ಏನು ಕಲಿತಿರಿ? ಸರಿ, ನನ್ನ ಪ್ರೊಗ್ರಾಂ ಕುಸಿತಗೊಂಡಾಗ ತಕ್ಷಣ ಬಹುಮಟ್ಟಿಗೆ. ನನ್ನ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ಭರಾಟೆ ಒಂದು strcmp ಕರೆ, ಆದರೆ ನಾನು ಯಾವುದೇ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ಇಲ್ಲ ನನ್ನ ಇದು ಭರಾಟೆ ಆ ಸಮಯದಲ್ಲಿ ಪ್ರೋಗ್ರಾಂ. ಹಾಗಾಗಿ ಸ್ಟ್ರಿಂಗ್, ಅಥವಾ ತಂತಿಗಳು ನಾನು ಬಹುಶಃ ಹೋಲಿಸುವ ಆಗಿರಬಹುದು. ನಾನು ಯಾವುದೇ ಸ್ಥಳೀಯ ಹೊಂದಿಲ್ಲದಿದ್ದರೆ ಚರಾಂಕಗಳ ನೀವು ಮಾಡಬಹುದು ಬಹುಶಃ ನಾನು ಅಲ್ಲಿ ಹೊಂದಿಲ್ಲ ಎಂದು ಸಮ್ಮರೈಸ್ ನಿಜವಾದ ಸಾಧ್ಯವಿದೆ ಜಾಗತಿಕ ವೇರಿಯಬಲ್,. ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ, ಇದು ತೋರುತ್ತದೆ ಹಾಗೆ ನಾನು ಹೋಲಿಕೆ ಬಾಗುತ್ತೇನೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಏನೋ. ಆದ್ದರಿಂದ ತನಿಖೆ ಅವಕಾಶ ಸ್ವಲ್ಪ ಮುಂದೆ ಎಂದು. ಹಾಗಾಗಿ ನನ್ನ ಪರದೆಯ ತೆರವುಗೊಳಿಸಲು ಪಡೆಯಲಿದ್ದೇನೆ. ನಾನು ಹೊರಗೆ ಬಿಟ್ಟು ಪಡೆಯಲಿದ್ದೇನೆ ಎರಡನೇ GDB ಪರಿಸರ. ನಾನು ಸರಿ, ನಾನು ಯೋಚಿಸುತ್ತೇನೆ, ಆದ್ದರಿಂದ ಇಲ್ಲ ನನ್ನ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ಯಾವುದೇ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು. ನಾನು ಪಾಸ್ ಆಗಿರಬೇಕು ಬಾಗುತ್ತೇನೆ ಬಹುಶಃ ನಾನು ಆಶ್ಚರ್ಯ ಒಂದು ಆಜ್ಞಾ ಸಾಲಿನ ಚರ್ಚೆಯಂತೆ ಪಂಕ್ತಿಯಲ್ಲಿ. ಆದ್ದರಿಂದ ಈ ಔಟ್ ಪರೀಕ್ಷಿಸಲು ಅವಕಾಶ. ನಾನು ಮೊದಲು ಈ ಮಾಡದಿದ್ದರೆ. ಈ ಪ್ರೋಗ್ರಾಂ ಬಹುಶಃ ವೇಳೆ ನೋಡೋಣ ಒಂದು ಆಜ್ಞಾ ಸಾಲಿನ ಚರ್ಚೆಯಂತೆ ಅದನ್ನು ಕೆಲಸ. ಶಬ್ದ, ಯಾವುದೇ ಸೆಗ್ಮೆಂಟೇಶನ್ ದೋಷಕ್ಕೆ. ಇದು ಕೇವಲ ನಾನು ಅದನ್ನು ಕಾಣಿಸಿಕೊಂಡಿತ್ತು ಎಂದು ಹೇಳಿದ್ದರು. ಆದ್ದರಿಂದ ಬಹುಶಃ ಫಿಕ್ಸ್ ಇಲ್ಲಿ. ನಾನು ಮತ್ತೆ ಹೋಗಿ ವೇಳೆ ಮತ್ತು ವಾಸ್ತವವಾಗಿ, ನೋಡಲು buggy1.c ನಿಜವಾದ ಮೂಲ ಕೋಡ್, ನಾನು ಏನು ಆದರೂ ಇದು ತೋರುತ್ತದೆ ನಾನು ಇಲ್ಲದೆ strcmp ಕರೆ ಮಾಡುವ ಬಾಗುತ್ತೇನೆ ವಾಸ್ತವವಾಗಿ argv [1] ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸುವ. ಈ ವಾಸ್ತವವಾಗಿ buggy1.c ಮೂಲ ಕೋಡ್. ಆದ್ದರಿಂದ ನಾನು ಅಗತ್ಯವಿರುವ ನನ್ನ ಪ್ರೋಗ್ರಾಂ ಸರಿಪಡಿಸಲು ಇಲ್ಲಿ, ಊಹಿಸಿಕೊಂಡು ನಾನು , ನನಗೆ ಮುಂದೆ ಫೈಲ್ ಕೇವಲ ಮಾಡಲು ಒಂದು ಚೆಕ್ ಸೇರಿಸಲು ಖಚಿತವಾಗಿ ಆ argc 2 ಸಮಾನವಾಗಿರುತ್ತದೆ. ಆದ್ದರಿಂದ ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಮತ್ತೆ ನಾನು, ಹೇಳಿದ ಹಾಗೆ ಬಲ, ಸ್ವಲ್ಪ contrived ಇದು? ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಹೋಗುತ್ತಿಲ್ಲ ಆಕಸ್ಮಿಕವಾಗಿ ನಿಮ್ಮ ಮೂಲ ಕೋಡ್ ಅಳಿಸಬಹುದು ತದನಂತರ ಪ್ರಯತ್ನಿಸಬೇಕು ಮತ್ತು ಪ್ರೋಗ್ರಾಂ ದೋಷ. ಆದರೆ ಆಶಾದಾಯಕವಾಗಿ, ಕೊಡುತ್ತಾನೆ ನೀವು ಸಚಿತ್ರ ವಸ್ತುಗಳ ರೀತಿಯ ಆ ನೀವು ಬಗ್ಗೆ ಯೋಚನೆ ಮಾಡಬಹುದು ನೀವು ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಡೀಬಗ್ ನೀವು. ಇಲ್ಲಿ ವ್ಯವಹಾರಗಳ ರಾಜ್ಯ ಯಾವುದು? ಏನು ವ್ಯತ್ಯಾಸಗಳ ನಾನು ನನಗೆ ಸುಲಭವಾಗಿ ಹೊಂದಿವೆ? ಅಲ್ಲಿ ನಿಖರವಾಗಿ ನನ್ನ ಕಾರ್ಯಕ್ರಮ ಯಾವ ಸಾಲು ಕ್ರ್ಯಾಶಿಂಗ್, ಯಾವ ಕಾರ್ಯವನ್ನು ಮಾಡಬೇಕೆಂದು ಕರೆ? ಸುಳಿವುಗಳನ್ನು ಯಾವ ರೀತಿಯ ನನಗೆ ನೀಡಿದ್ದರು? ಮತ್ತು ನಿಖರವಾಗಿ ಮನಸ್ಸು ರೀತಿಯ ನೀವು ನೀವು ಇರುವಾಗ ಬರುವುದು ಮಾಡಬೇಕು ನಿಮ್ಮ ಡೀಬಗ್ ಕಾರ್ಯಕ್ರಮಗಳಿಗೆ ವಿಚಾರ. ನಾನು ಡೌಗ್ ಲಾಯ್ಡ್ ಮನುಷ್ಯ. ಈ CS50 ಹೊಂದಿದೆ.