- Beranda
- Komunitas
- Tech
- Programmer Forum
Advanced Debugging with Visual Studio


TS
newmessage
Advanced Debugging with Visual Studio
UPDATE!
Hola Fopers!!
Cuma ingin berbagi teknik pemrograman saja (red: teknik debugging) di Visual Studio. Bisa diaplikasikan untuk C#, V, dan hampir smua bahasa yang ada. (Tapi
untuk C dan C++, ada beberapa teknik yang tidak bisa digunakan karena sifat bahasanya. Bagi yang udah expert mesti dah ngerti tu
)
Langsung aje gan
INTRODUTION
Tools
Tip List
Brace Yourself!!!
1. Magic of Make Object Id"
2. Immediate window
Spoiler for "":
Kalo ada yang mau file project yang ane pake buat ini tutorial. PM aje gan. Jangan malu - malu, om gigit kok

Hola Fopers!!
Cuma ingin berbagi teknik pemrograman saja (red: teknik debugging) di Visual Studio. Bisa diaplikasikan untuk C#, V, dan hampir smua bahasa yang ada. (Tapi
untuk C dan C++, ada beberapa teknik yang tidak bisa digunakan karena sifat bahasanya. Bagi yang udah expert mesti dah ngerti tu

Langsung aje gan
____===== Advanced Debugging with Visual Studio =====____
Spoiler for "Beggining of The End!":
INTRODUTION
Spoiler for "Intro":
Banyak sekali programmer (termasuk ente mungkin :P) yang tidak begitu mendalami pemakaian F9, F10, F11, F5, dan Watch Windows kalau sedang
debugging di Visual Studio. Nah,itu kadangkala menjadi penyebab ente(kita
) menghabiskan waktu yang lumayan lama untuk proses debugging.
Jadi, karena itulah ane bikin Trit ini. Yah, lumayanlah bagi ente buat belajar
. Mulailah belajar sedini mungkin, seandainya dini sudah lewat masih ada
dini - dini yang lain.
debugging di Visual Studio. Nah,itu kadangkala menjadi penyebab ente(kita

Jadi, karena itulah ane bikin Trit ini. Yah, lumayanlah bagi ente buat belajar

dini - dini yang lain.
Tools
Spoiler for "Tools":
Visual Studio 2008/2010. Tapi kayaknya hampir semua versi bisa deh.
Tip List
Spoiler for "Tip List":
Supaya ente lebih gampang untuk untuk going through trit ini, ane pisahin itu tips jadi beberapa (enam) bagian. Trus supaya ente g bosen,
ane tambahin gambar sekalian. Ane tau kebiasaan ente smua. 8-)
Update : karena agaknya sedikit agak panjang. Jadi agaknya saya akan misahin jadi 3 post. Sekalian liat feedbacknya...hahahaha
Bonus Tip!
Enable Sound when Breakpoint is hit
ane tambahin gambar sekalian. Ane tau kebiasaan ente smua. 8-)
Update : karena agaknya sedikit agak panjang. Jadi agaknya saya akan misahin jadi 3 post. Sekalian liat feedbacknya...hahahaha
Quote:
- Magic of "Make Object Id"
- Attach to process - pakai macro
- Immediate Window
- Calling functions directly
- Setting and Displaying variables
- Debugging : Windows Service
- Breakpoints...breakpoints is everywhere...
- Trace Points
- Condition
- Hit Count
- Filter
- Changing breakpoint location
- Locals/Auto/ Call Stack
Bonus Tip!
Enable Sound when Breakpoint is hit
Brace Yourself!!!
Spoiler for "Brace brace...":
Spoiler for "...aaanndd the tips begin!":
1. Magic of Make Object Id"
Spoiler for "Make Object Id":
Quote:
Kadangkala kita mau men-track suatu objek, bahkan ketika objek itu sudah di luar scope. Dengan melakukan tracking tersebut,
kita dimungkinkan untuk melihat objek tersebut sampai di-garbage collected (sampe dibuang!) dengan menggunakan fitur Object Id dati Visual Studio.
Well, here you go, the S.O.P.!! Brace yourself!
kita dimungkinkan untuk melihat objek tersebut sampai di-garbage collected (sampe dibuang!) dengan menggunakan fitur Object Id dati Visual Studio.
Well, here you go, the S.O.P.!! Brace yourself!
Spoiler for "":
1. Set breakpoint di line yang ada variable yang mau di track.(Di contoh str)

2. Run projectnya. Jangan lupa di set Debug mode!. Ntar dia berhenti di breakpoint.
3. Klik kanan di str(variable yang kita watch) dan klik Add Watch.
4. Di Watch 1 Window, klik kanan variable str dan pilih Make Object Id.

5. Ntar ada 1#muncul di kolom value. Ini merupakan Id unik yang dikasih debugger ke variable tadi untuk sesi debug saat ini.

6. Apa gunanya Id itu?. Nah, itu kita pake buat nge-track isi dari objek tadi (variable str) bahkan ketika sudah di luar scope. Masukkin aj object id 1#di Watch Window.

7. Kalau kita melanjutkan iterasi dari for loop, walaupun isi strberubah tapi isi 1# tetap sama. Jadi kita bisa liat kita pernah ngisi apa aj di variable itu.

8. Menariknya, kalau ente keluar dari function dan semua instances dari strsudah out of scope ente g bakalan bisa track str pake watch window itu. Ntar keliatan jadi warna abu-abu(grayed out). Tapi...Object Id 1# masih aktif dan kita bisa tetep track isinya walopun sudah pindah function.

Quote:

2. Run projectnya. Jangan lupa di set Debug mode!. Ntar dia berhenti di breakpoint.
3. Klik kanan di str(variable yang kita watch) dan klik Add Watch.
4. Di Watch 1 Window, klik kanan variable str dan pilih Make Object Id.
Quote:

5. Ntar ada 1#muncul di kolom value. Ini merupakan Id unik yang dikasih debugger ke variable tadi untuk sesi debug saat ini.
Quote:

6. Apa gunanya Id itu?. Nah, itu kita pake buat nge-track isi dari objek tadi (variable str) bahkan ketika sudah di luar scope. Masukkin aj object id 1#di Watch Window.
Quote:

7. Kalau kita melanjutkan iterasi dari for loop, walaupun isi strberubah tapi isi 1# tetap sama. Jadi kita bisa liat kita pernah ngisi apa aj di variable itu.
Quote:

8. Menariknya, kalau ente keluar dari function dan semua instances dari strsudah out of scope ente g bakalan bisa track str pake watch window itu. Ntar keliatan jadi warna abu-abu(grayed out). Tapi...Object Id 1# masih aktif dan kita bisa tetep track isinya walopun sudah pindah function.
Quote:

Spoiler for "PS Note!":
Quote:
Seperti judul tipsnya, ini hanya bisa dipakai kalau dengan references dan bukan tipe value. Kenapa? Karena tipe value akan selalu
disimpan didalam stack dan akan di pop keluar segera setelah scope berakhir. Jadi secara ideal tidak bergantung pada Garbage Collector untuk
dibersihkan/dihapus (hemat memory, you know it).
disimpan didalam stack dan akan di pop keluar segera setelah scope berakhir. Jadi secara ideal tidak bergantung pada Garbage Collector untuk
dibersihkan/dihapus (hemat memory, you know it).
2. Immediate window
Spoiler for "Immediate window":
Quote:
Sering banget, kita bikin function dan berharap untuk men-debug function itu langsung sampai keluar output yang kita cari.
Banyak dari kita yang selalu running seluruh project hanya untuk menunggu function tertentu dipanggil. Well, hal itu sangat tidak perlu dan sangat tidak
efektif. More times, more efforts, more and many more things needed!.
Nah, disinilah tips (2) ini berguna. Pencet Ctrl+Alt+I.
Banyak dari kita yang selalu running seluruh project hanya untuk menunggu function tertentu dipanggil. Well, hal itu sangat tidak perlu dan sangat tidak
efektif. More times, more efforts, more and many more things needed!.
Nah, disinilah tips (2) ini berguna. Pencet Ctrl+Alt+I.
Spoiler for "":
Calling functions directly
Setting & Displaying variables
Spoiler for "Calling functions directly":
1. Kita bikin suatu function dan kita coba panggil langsung lewat Immediate Window.


2. Nah, coba di run project kita. Ntar breakpoint di function TestImmediateWindow1() langsung terbaca tanpa perlu debug project secara keseluruhan.


Coba eksperimen. Ganti isi variable _test.

Quote:

Quote:

2. Nah, coba di run project kita. Ntar breakpoint di function TestImmediateWindow1() langsung terbaca tanpa perlu debug project secara keseluruhan.
Quote:

Quote:

Coba eksperimen. Ganti isi variable _test.
Quote:

Setting & Displaying variables
Spoiler for "":
Ada kalanya kita mau melempar variable ke function yang kita panggil di Immediate Window. Contohnya:

Quote:

Spoiler for "Setting & Displaying variables":
- Menggunakan command di Immediate Window kita bisa mendeklarasi, set, dan melempar variable ke function.

- Contoh lainnya dengan object yang lebih kompleks :

- Command di Immediate Window

Quote:

- Contoh lainnya dengan object yang lebih kompleks :
Quote:

- Command di Immediate Window
Quote:

Quote:
Sebenernya banyak hal yang bisa dilakukan dengan Immediate Window. Tapi basicnya adalah seperti diatas. So, Explore sendiri gan. 

Spoiler for "Source":
Spoiler for "":
Update akan datang ketika banyak view yang datang

0
2.7K
Kutip
8
Balasan


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan