ການກວດສອບຂໍ້ຜິດພາດ (Debugging) ໂປຣແກຣມ Basic

ເນື້ອໃນ

# ການກວດສອບຂໍ້ຜິດພາດໂປຣແກຣມ Basic

## ຈຸດຢຸດ ແລະ ການເຮັດວຽກເທື່ອລະຂັ້ນຕອນ

ທ່ານສາມາດກວດສອບແຕ່ລະແຖວໃນໂປຣແກຣມ Basic ເພື່ອຫາຂໍ້ຜິດພາດໄດ້ໂດຍໃຊ້ການເຮັດວຽກເທື່ອລະຂັ້ນຕອນ (single step execution). ຂໍ້ຜິດພາດຈະຖືກກວດພົບໄດ້ງ່າຍເພາະທ່ານສາມາດເຫັນຜົນລັດຂອງແຕ່ລະຂັ້ນຕອນໄດ້ທັນທີ. ຕົວຊີ້ບອກໃນຖັນຈຸດຢຸດຂອງ Editor ຈະບອກໃຫ້ຮູ້ວ່າກຳລັງຢູ່ໃນແຖວໃດ. ທ່ານຍັງສາມາດຕັ້ງຈຸດຢຸດ (breakpoint) ໄດ້ ຖ້າທ່ານຕ້ອງການບັງຄັບໃຫ້ໂປຣແກຣມຢຸດຊົ່ວຄາວຢູ່ຕຳແໜ່ງທີ່ລະບຸ.

ດັບເບິ້ລຄລິກໃນຖັນ ຈຸດຢຸດ (breakpoint) ທາງເບື້ອງຊ້າຍຂອງໜ້າຕ່າງ Editor ເພື່ອເປີດ/ປິດຈຸດຢຸດໃນແຖວນັ້ນ. ເມື່ອໂປຣແກຣມເຮັດວຽກມາຮອດຈຸດຢຸດ, ມັນຈະຢຸດຊົ່ວຄາວ.

ການເຮັດວຽກ ເທື່ອລະຂັ້ນຕອນ ໂດຍໃຊ້ໄອຄອນ Single Step ຈະເຮັດໃຫ້ໂປຣແກຣມເຂົ້າໄປກວດສອບພາຍໃນໂປຣຊີເຈີ ແລະ ຟັງຊັນຕ່າງໆ.

ການເຮັດວຽກຂ້າມໂປຣຊີເຈີໂດຍໃຊ້ໄອຄອນ Procedure Step ຈະເຮັດໃຫ້ໂປຣແກຣມເຮັດວຽກຂ້າມໂປຣຊີເຈີ ແລະ ຟັງຊັນນັ້ນໆໄປຄືກັບວ່າເປັນພຽງຂັ້ນຕອນດຽວ.

### ຄຸນສົມບັດຂອງຈຸດຢຸດ (Breakpoint)

ທ່ານສາມາດເບິ່ງຄຸນສົມບັດຂອງຈຸດຢຸດໄດ້ຜ່ານເມນູຄລິກຂວາ ໂດຍການຄລິກຂວາໃສ່ຈຸດຢຸດໃນຖັນຈຸດຢຸດ.

ທ່ານສາມາດ ເປີດໃຊ້ ແລະ ປິດໃຊ້ ຈຸດຢຸດໄດ້ໂດຍການເລືອກ ເປີດໃຊ້ງານ ຈາກເມນູຄລິກຂວາ. ເມື່ອຈຸດຢຸດຖືກປິດໃຊ້ງານ, ມັນຈະບໍ່ຢຸດການເຮັດວຽກຂອງໂປຣແກຣມ.

ເລືອກ ຄຸນສົມບັດ ຈາກເມນູຄລິກຂວາຂອງຈຸດຢຸດ ຫຼື ເລືອກ ຈຸດຢຸດ ຈາກເມນູຄລິກຂວາຂອງຖັນຈຸດຢຸດເພື່ອເອີ້ນໄດອາລັອກ ຈຸດຢຸດ ເຊິ່ງທ່ານສາມາດກຳນົດຕົວເລືອກອື່ນໆຂອງຈຸດຢຸດໄດ້.

ລາຍການຈະສະແດງ ຈຸດຢຸດ ທັງໝົດພ້ອມກັບເລກແຖວທີ່ກ່ຽວຂ້ອງໃນຊອດໂຄ້ດ. ທ່ານສາມາດເປີດ ຫຼື ປິດຈຸດຢຸດທີ່ເລືອກໄດ້ໂດຍການໝາຍ ຫຼື ເອົາເຄື່ອງໝາຍອອກໃນຫ້ອງ ເປີດໃຊ້ງານ.

Pass Count ແມ່ນການກຳນົດຈຳນວນຄັ້ງທີ່ຍອມໃຫ້ຂ້າມຈຸດຢຸດໄປ ກ່ອນທີ່ຈະໃຫ້ໂປຣແກຣມຢຸດ. ຖ້າທ່ານໃສ່ 0 (ຄ່າມາດຕະຖານ) ໂປຣແກຣມຈະຢຸດທັນທີທີ່ພົບຈຸດຢຸດນັ້ນ.

ຄລິກ ລຶບ ເພື່ອເອົາຈຸດຢຸດນັ້ນອອກຈາກໂປຣແກຣມ.

## ການສັງເກດຄ່າຂອງຕົວແປ

ທ່ານສາມາດຕິດຕາມຄ່າຂອງຕົວແປໄດ້ໂດຍການເພີ່ມມັນເຂົ້າໃນໜ້າຕ່າງ Watch. ເພື່ອເພີ່ມຕົວແປເຂົ້າໃນລາຍການຕິດຕາມ, ໃຫ້ພິມຊື່ຕົວແປໃນຫ້ອງຂໍ້ຄວາມ Watch ແລ້ວກົດ Enter.

ຄ່າຂອງຕົວແປຈະສະແດງກໍຕໍ່ເມື່ອພວກມັນຢູ່ໃນຂອບເຂດ (scope) ທີ່ໃຊ້ງານໄດ້ເທົ່ານັ້ນ. ຕົວແປທີ່ບໍ່ໄດ້ຖືກນິຍາມໃນຕຳແໜ່ງຊອດໂຄ້ດປັດຈຸບັນຈະສະແດງຄຳວ່າ ("Out of Scope") ແທນຄ່າຂໍ້ມູນ.

ທ່ານຍັງສາມາດຕິດຕາມອາເຣ (arrays) ໃນໜ້າຕ່າງ Watch ໄດ້ຄືກັນ. ຖ້າທ່ານປ້ອນຊື່ຕົວແປອາເຣໂດຍບໍ່ລະບຸເລກອິນເດັກ, ຄ່າຂອງທຸກອົງປະກອບໃນອາເຣນັ້ນຈະຖືກສະແດງອອກມາ.

ຖ້າທ່ານວາງເມົ້າໄວ້ເທິງຕົວປ່ຽນທີ່ກຳນົດໄວ້ລ່ວງໜ້າໃນຕົວແກ້ໄຂຂະນະທີ່ກຳລັງເຮັດວຽກ, ເນື້ອໃນຂອງຕົວປ່ຽນຈະຖືກສະແດງໃນກ່ອງປັອບອັບ.

## ໜ້າຕ່າງລຳດັບການເອີ້ນໃຊ້ (Call Stack)

ສະໜອງພາບລວມຂອງລຳດັບຊັ້ນການເອີ້ນໃຊ້ໂປຣຊີເຢີ ແລະ ຟັງຊັນ. ທ່ານສາມາດກຳນົດໄດ້ວ່າ ໂປຣຊີເຢີ ແລະ ຟັງຊັນໃດເອີ້ນໃຊ້ ໂປຣຊີເຢີ ແລະ ຟັງຊັນອື່ນໃດ ຢູ່ທີ່ຈຸດປັດຈຸບັນໃນຊອດໂຄດ.

## ລາຍການຂໍ້ຜິດພາດຂະນະເຮັດວຽກ

1 ເກີດຂໍ້ຜິດພາດທີ່ບໍ່ຄາດຄິດ (Exception)

2 ຂໍ້ຜິດພາດທາງໄວຍາກອນ

3 Return ໂດຍບໍ່ມີ Gosub

4 ການປ້ອນຂໍ້ມູນບໍ່ຖືກຕ້ອງ; ກະລຸນາລອງໃໝ່

5 ການເອີ້ນໃຊ້ໂປຣຊີເຈີບໍ່ຖືກຕ້ອງ

6 ຄ່າເກີນຂອບເຂດ (Overflow)

7 ໜ່ວຍຄວາມຈຳບໍ່ພຽງພໍ

8 ອາເຣ (Array) ຖືກກຳນົດຂະໜາດແລ້ວ

9 ອິນເດັກ (Index) ຢູ່ນອກຂອບເຂດທີ່ກຳນົດ

10 ມີການນິຍາມຊ້ຳກັນ

11 ການຫານດ້ວຍສູນ

12 ຕົວແປບໍ່ໄດ້ຖືກນິຍາມ

13 ປະເພດຂໍ້ມູນບໍ່ເຂົ້າກັນ

14 ພາຣາມິເຕີບໍ່ຖືກຕ້ອງ

18 ຂະບວນການຖືກຂັດຈັງຫວະໂດຍຜູ້ໃຊ້

20 Resume ໂດຍບໍ່ມີຂໍ້ຜິດພາດ

28 ໜ່ວຍຄວາມຈຳ Stack ບໍ່ພຽງພໍ

35 ບໍ່ໄດ້ນິຍາມ Sub ຫຼື Function

48 ເກີດຂໍ້ຜິດພາດໃນການໂຫຼດໄຟລ໌ DLL

49 ຮູບແບບການເອີ້ນໃຊ້ DLL ບໍ່ຖືກຕ້ອງ

51 ຂໍ້ຜິດພາດພາຍໃນ

52 ຊື່ໄຟລ໌ ຫຼື ເລກໄຟລ໌ບໍ່ຖືກຕ້ອງ

53 ບໍ່ພົບໄຟລ໌

54 ໂໝດຂອງໄຟລ໌ບໍ່ຖືກຕ້ອງ

55 ໄຟລ໌ຖືກເປີດຢູ່ແລ້ວ

57 ເກີດຂໍ້ຜິດພາດ I/O ຂອງອຸປະກອນ

58 ມີໄຟລ໌ນີ້ຢູ່ແລ້ວ

59 ຄວາມຍາວຂອງເຣັກຄອດ (record) ບໍ່ຖືກຕ້ອງ

61 ດິສ ຫຼື ຮາດໄດຣຟ໌ ເຕັມ

62 ການອ່ານເກີນຈຸດສິ້ນສຸດຂອງໄຟລ໌ (EOF)

63 ເລກເຣັກຄອດ (record) ບໍ່ຖືກຕ້ອງ

67 ມີໄຟລ໌ຫຼາຍເກີນໄປ

68 ອຸປະກອນບໍ່ພ້ອມໃຊ້ງານ

70 ການເຂົ້າເຖິງຖືກປະຕິເສດ

71 ດິສບໍ່ພ້ອມໃຊ້ງານ

73 ຍັງບໍ່ໄດ້ຮັບການຕິດຕັ້ງ/ພັດທະນາ

74 ບໍ່ສາມາດປ່ຽນຊື່ຂ້າມໄດຣຟ໌ໄດ້

75 ເກີດຂໍ້ຜິດພາດໃນການເຂົ້າເຖິງ ເສັ້ນທາງ/ໄຟລ໌

76 ບໍ່ພົບເສັ້ນທາງ (Path)

91 ຍັງບໍ່ໄດ້ກຳນົດຄ່າໃຫ້ຕົວແປອັອບເຈັກ

93 ຮູບແບບຂໍ້ຄວາມບໍ່ຖືກຕ້ອງ

94 ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຄ່າສູນ

250 ຂໍ້ຜິດພາດ DDE

280 ກຳລັງລໍຖ້າການຕອບສະໜອງຈາກການເຊື່ອມຕໍ່ DDE

281 ບໍ່ມີຊ່ອງ DDE ທີ່ພ້ອມໃຊ້ງານ

282 ບໍ່ມີແອັບພລິເຄຊັນໃດຕອບສະໜອງຕໍ່ການເລີ່ມຕົ້ນເຊື່ອມຕໍ່ DDE

283 ມີແອັບພລິເຄຊັນຫຼາຍເກີນໄປຕອບສະໜອງຕໍ່ການເລີ່ມຕົ້ນເຊື່ອມຕໍ່ DDE

284 ຊ່ອງ DDE ຖືກລັອກ

285 ແອັບພລິເຄຊັນພາຍນອກບໍ່ສາມາດດຳເນີນການ DDE ໄດ້

286 ໝົດເວລາໃນການລໍຖ້າການຕອບສະໜອງ DDE

287 ຜູ້ໃຊ້ກົດ ESCAPE ໃນລະຫວ່າງການດຳເນີນການ DDE

288 ແອັບພລິເຄຊັນພາຍນອກກຳລັງບໍ່ຫວ່າງ

289 ການດຳເນີນການ DDE ໂດຍບໍ່ມີຂໍ້ມູນ

290 ຂໍ້ມູນຢູ່ໃນຮູບແບບທີ່ບໍ່ຖືກຕ້ອງ

291 ແອັບພລິເຄຊັນພາຍນອກຖືກປິດການເຮັດວຽກແລ້ວ

292 ການເຊື່ອມຕໍ່ DDE ຖືກຂັດຈັງຫວະ ຫຼື ຖືກປ່ຽນແປງ

293 ມີການເອີ້ນໃຊ້ເມທອດ DDE ໂດຍທີ່ບໍ່ມີການເປີດຊ່ອງທາງໄວ້

294 ຮູບແບບການເຊື່ອມຕໍ່ DDE ບໍ່ຖືກຕ້ອງ

295 ຂໍ້ຄວາມ DDE ສູນຫາຍ

296 ການວາງລິ້ງຖືກດຳເນີນການແລ້ວ

297 ບໍ່ສາມາດຕັ້ງໂໝດການເຊື່ອມຕໍ່ໄດ້ ເພາະຫົວຂໍ້ລິ້ງບໍ່ຖືກຕ້ອງ

298 DDE ຕ້ອງການໄຟລ໌ DDEML.DLL

323 ບໍ່ສາມາດໂຫຼດໂມດູນໄດ້; ຮູບແບບບໍ່ຖືກຕ້ອງ

341 ອິນເດັກ (index) ຂອງອັອບເຈັກບໍ່ຖືກຕ້ອງ

366 ອັອບເຈັກບໍ່ພ້ອມໃຊ້ງານ

380 ຄ່າຄຸນສົມບັດບໍ່ຖືກຕ້ອງ

382 ຄຸນສົມບັດນີ້ອ່ານໄດ້ຢ່າງດຽວ

394 ຄຸນສົມບັດນີ້ຂຽນໄດ້ຢ່າງດຽວ

420 ການອ້າງອີງອັອບເຈັກບໍ່ຖືກຕ້ອງ

423 ບໍ່ພົບຄຸນສົມບັດ ຫຼື ເມທອດ

424 ຕ້ອງການອັອບເຈັກ

425 ການໃຊ້ອັອບເຈັກບໍ່ຖືກຕ້ອງ

430 ອັອບເຈັກນີ້ບໍ່ສະໜັບສະໜູນ OLE Automation

438 ອັອບເຈັກນີ້ບໍ່ສະໜັບສະໜູນຄຸນສົມບັດ ຫຼື ເມທອດນີ້

440 ຂໍ້ຜິດພາດ OLE automation

445 ອັອບເຈັກທີ່ລະບຸບໍ່ສະໜັບສະໜູນການກະທຳນີ້

446 ອັອບເຈັກທີ່ລະບຸບໍ່ສະໜັບສະໜູນອາກິວເມັນແບບມີຊື່ (Named arguments)

447 ອັອບເຈັກທີ່ລະບຸບໍ່ສະໜັບສະໜູນການຕັ້ງຄ່າທ້ອງຖິ່ນໃນປັດຈຸບັນ

448 ບໍ່ພົບອາກິວເມັນແບບມີຊື່

449 ອາກິວເມັນນີ້ບໍ່ແມ່ນທາງເລືອກ (ຕ້ອງໄດ້ລະບຸ)

450 ຈຳນວນອາກິວເມັນບໍ່ຖືກຕ້ອງ

451 ອັອບເຈັກບໍ່ແມ່ນລາຍການ

452 ເລກລຳດັບບໍ່ຖືກຕ້ອງ

453 ບໍ່ພົບຟັງຊັນ DLL ທີ່ລະບຸ

460 ຮູບແບບຄລິບບອດ (clipboard) ບໍ່ຖືກຕ້ອງ

951 ພົບສັນຍະລັກທີ່ບໍ່ຄາດຄິດ:

952 ສິ່ງທີ່ຄາດຫວັງ:

953 ຕ້ອງການສັນຍະລັກ

954 ຕ້ອງການຕົວແປ

955 ຕ້ອງການປ້າຍຊື່ (Label)

956 ບໍ່ສາມາດນຳໃຊ້ຄ່ານີ້ໄດ້

957 ຕົວແປນີ້ຖືກນິຍາມໄວ້ແລ້ວ

958 Sub ຫຼື Function ຖືກນິຍາມໄວ້ແລ້ວ

959 Label ຖືກນິຍາມໄວ້ແລ້ວ

960 ບໍ່ພົບຕົວແປ

961 ບໍ່ພົບອາເຣ (Array) ຫຼື ໂປຣຊີເຈີ

962 ບໍ່ພົບໂປຣຊີເຈີ

963 ບໍ່ໄດ້ນິຍາມ Label

964 ບໍ່ຮູ້ຈັກປະເພດຂໍ້ມູນ

965 ຕ້ອງການ Exit

966 ບລັອກຄຳສັ່ງຍັງເປີດຢູ່: ສິ່ງທີ່ຫາຍໄປ

967 ວົງເລັບບໍ່ເຂົ້າຄູ່ກັນ

968 ສັນຍະລັກຖືກນິຍາມໄວ້ແລ້ວໃນຮູບແບບອື່ນ

969 ພາຣາມິເຕີບໍ່ກົງກັບໂປຣຊີເຈີ

970 ມີຕົວອັກສອນທີ່ບໍ່ຖືກຕ້ອງໃນຕົວເລກ

971 ອາເຣ (Array) ຕ້ອງມີການກຳນົດຂະໜາດ

972 ມີ Else/Endif ໂດຍບໍ່ມີ If

973 ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ພາຍໃນໂປຣຊີເຈີ

974 ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ນອກໂປຣຊີເຈີ

975 ການລະບຸຂະໜາດບໍ່ກົງກັນ

976 ບໍ່ຮູ້ຈັກຕົວເລືອກ (option):

977 ຄ່າຄົງທີ່ຖືກນິຍາມຊ້ຳ

978 ໂປຣແກຣມມີຂະໜາດໃຫຍ່ເກີນໄປ

979 ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ String ຫຼື Array

1000 ອັອບເຈັກບໍ່ມີຄຸນສົມບັດນີ້

1001 ອັອບເຈັກບໍ່ມີເມທອດນີ້

1002 ຂາດອາກິວເມັນທີ່ຈຳເປັນ

1003 ຈຳນວນອາກິວເມັນບໍ່ຖືກຕ້ອງ

1004 ເກີດຂໍ້ຜິດພາດໃນການເຮັດວຽກຂອງເມທອດ

1005 ບໍ່ສາມາດຕັ້ງຄ່າຄຸນສົມບັດໄດ້

1006 ບໍ່ສາມາດລະບຸຄຸນສົມບັດໄດ້