Saya menggunakan aplikasi berikut

#include <iostream>

using namespace std;

void print(char* s)
{
    cout << s << endl;
}

int main(int argc, char* argv[])
{
    print("a"); 
    print("b");
    print("***");
    print("c");
    print("d");
}

Ketika saya menjalankannya dengan debugger di bawah VSCode (menggunakan ekstensi "Native Debug"), itu tidak pernah melewati cetakan kedua dan ini adalah hasil saya:

a
b

Itu tidak pernah melewati print("***), bahkan jika saya meletakkan breakpoint setelah garis itu tidak mencapainya.

Jika saya berkomentar print("***"), aplikasi selesai dengan output yang benar:

a
b
c
d

Satu-satunya hal yang berhasil saya ketahui adalah bahwa ada dan masalah mencetak karakter "*" dan jika saya menggantinya dengan karakter lain semuanya berfungsi dengan baik. Mengapa saya melihat perilaku ini dan bagaimana cara memperbaikinya tanpa harus mengubah kode?

0
Pavel 19 November 2020, 14:25

1 menjawab

Jawaban Terbaik

@molbdnilo, sepertinya benar. Sepertinya bug di ekstensi "Native Debug". Masalahnya tidak direproduksi ketika ekstensi lain digunakan (saya mencoba dengan ekstensi "C/C++" Microsoft)

1
Pavel 19 November 2020, 14:32