Visual Studio
VS ile ilgili aldığım bazı notlar aşağıda.
Ayarlar
Minimize simgesi yanındaki Quick Launch ile aranan komutlar kolayca bulunabilir.
32 bit veya 64 bit Platform
.Net 4.5 ile Build menüsü altında Platform AnyCPU seçilirse, 32 bitlik veya 64 bitlik işletim sisteminde rahatça çalışılabilir.
Compiler
SDL'i Etkilleştirmek (Secure Development Lifecycle)
Properties / Configuration Properties / C/C++ / General / SDL Checks seçeneği Yes (/sdl) yapılmalı. Böylece derleyicinin uyarı olarak değerlendirdiği bazı şeyler hata olarak değerlendirilmeye başlanır. Örneğin
warning C4700: uninitialized local variable 'MyVar' used mesajı yerine
error C4700: uninitialized local variable 'MyVar' used hatası alırız.
PreCompiled Header
Intrusive Yöntem
PreCompiled Header için projeye stdafx.cpp ve stdafx.h dosyaları eklenir. stdafx.h içine include direktifleri konulur. Proje build edilirken önce stdafx.cpp derlenir. Bu işlem sonucunda pch uzantılı bir dosya çıkar. Diğer tüm kaynak kodlardaki ilk include direktifi stdafx.h olmalıdır.
Projede ayarlar şöyle yapılır.
Non-Intrusive Yöntem
Portable kod yazmak için kaynak kodlara stdafx.h include direktifi eklemek uygun değil. Linux'ta çalışmaz. Bunun yeriner bu direktif varmış gibi davranan bir compiler switch var. /FI ile bu iş gerçekleşir.
Editörler İlgili Notlar
Kaynak Kodu formatlamak
CtrlA , Ctrl K, Ctrl F tuşlarına sırayla basmak lazım.
Kaynak Kod Eklemek
"Add Existing Item" menüsü kullanılırken sağ alttaki Add düğmesi "Add as Link" haline getirilirse kaynak kod kopyalanmaz.
Kaynak Kod Dosyasını Açmak
VASSISTX menüsü altında "Open File in Solution" menüsü ile dosya ismine göre arama yapılabilir.
Aynı işlem Edit / Navigation To veya Ctrl + Command (,) ile de yapılabilir.
Kaynak Kod Dosyasını Önizleme
Solution Explorer penceresinde "Preview Selected Items" seçilerek tıklanan kaynak kod otomatik açılabilir.
Kaynak Kodda İleri Geri Yapma
View / Navigate Backward veya Forward ile önceki ve sonraki kod satırları arasında dolaşılabilir.
Blokları Kapatma İşareti Çıkartma
Tools / Options / C/C++ / Formattin / Outlining / Outline Statement Blocks = True yapılmalı
Clipboard
Ctrl + Shift + V clipboard listesini gösterir.
Output Penceresi
Output penceresinde hataları kolayca dolaşmak için F8'e bas
Debugger
C++ notları Watch Penceresi
Dinamik yaratılan bir array'i Watch penceresinde görmek için değişken isminden sonra virgül ve bir sayı yazmak gerekir. pArray,10 gibi.
C# Notları Watch Penceresi
Bir sınıfın belli bir özelliğinin gösterilmesini istiyorsak aşağıdaki gibi yapabiliriz. Böylece Watch pencersindeki Value sütununa nesnenin Name alanının değeri yazılır.
Breakpoint için condition yani koşul yazılabilir. Koşul sadece değişkenlerde işe yarıyor. Getter metodu kullanması istenirse çalışmıyor. Örneğin koşul olarak şunu yazarsak property alanına erişmek için aslında debugger'ın bizim kodumuzdan bir getter çağırması gerekir ki bunu yapacak kadar akıllı değil.
Tracepoint
Breakpoint gibi konuluyor. Kod satırına sağ tıkla Breakpoint / Insert Tracepoint menüsünü seç
const char* pMessage = "..." şeklindeki bir değişkeni göstermek için
Prebuild Event
Buradaki komutlar shell tarafından çalıştırılıyor. $(ProjectDir) projenin bulunduğu dizini gösterir.
F5 ve Ctrl + F5
Uygulamayı F5 ile çalıştırınca, daha yavaş çalışan debug heap kullanılıyor. Diğeri ile çalıştırınca normal heap'i kullanıyor.
Profiler
Analyze / Start Performance Analysis ile profiling işlemleri başlatılır. İşlem bitince Notifications penceresi altında Show Just My Code seçilirse sistem dll'leri içinde harcanan zaman gösterilmez.
VS ile ilgili aldığım bazı notlar aşağıda.
Ayarlar
Minimize simgesi yanındaki Quick Launch ile aranan komutlar kolayca bulunabilir.
32 bit veya 64 bit Platform
.Net 4.5 ile Build menüsü altında Platform AnyCPU seçilirse, 32 bitlik veya 64 bitlik işletim sisteminde rahatça çalışılabilir.
Compiler
SDL'i Etkilleştirmek (Secure Development Lifecycle)
Properties / Configuration Properties / C/C++ / General / SDL Checks seçeneği Yes (/sdl) yapılmalı. Böylece derleyicinin uyarı olarak değerlendirdiği bazı şeyler hata olarak değerlendirilmeye başlanır. Örneğin
warning C4700: uninitialized local variable 'MyVar' used mesajı yerine
error C4700: uninitialized local variable 'MyVar' used hatası alırız.
PreCompiled Header
Intrusive Yöntem
PreCompiled Header için projeye stdafx.cpp ve stdafx.h dosyaları eklenir. stdafx.h içine include direktifleri konulur. Proje build edilirken önce stdafx.cpp derlenir. Bu işlem sonucunda pch uzantılı bir dosya çıkar. Diğer tüm kaynak kodlardaki ilk include direktifi stdafx.h olmalıdır.
Projede ayarlar şöyle yapılır.
Non-Intrusive Yöntem
Portable kod yazmak için kaynak kodlara stdafx.h include direktifi eklemek uygun değil. Linux'ta çalışmaz. Bunun yeriner bu direktif varmış gibi davranan bir compiler switch var. /FI ile bu iş gerçekleşir.
Editörler İlgili Notlar
Kaynak Kodu formatlamak
CtrlA , Ctrl K, Ctrl F tuşlarına sırayla basmak lazım.
Kaynak Kod Eklemek
"Add Existing Item" menüsü kullanılırken sağ alttaki Add düğmesi "Add as Link" haline getirilirse kaynak kod kopyalanmaz.
Kaynak Kod Dosyasını Açmak
VASSISTX menüsü altında "Open File in Solution" menüsü ile dosya ismine göre arama yapılabilir.
Aynı işlem Edit / Navigation To veya Ctrl + Command (,) ile de yapılabilir.
Kaynak Kod Dosyasını Önizleme
Solution Explorer penceresinde "Preview Selected Items" seçilerek tıklanan kaynak kod otomatik açılabilir.
Kaynak Kodda İleri Geri Yapma
View / Navigate Backward veya Forward ile önceki ve sonraki kod satırları arasında dolaşılabilir.
Blokları Kapatma İşareti Çıkartma
Tools / Options / C/C++ / Formattin / Outlining / Outline Statement Blocks = True yapılmalı
Clipboard
Ctrl + Shift + V clipboard listesini gösterir.
Output Penceresi
Output penceresinde hataları kolayca dolaşmak için F8'e bas
Debugger
C++ notları Watch Penceresi
Dinamik yaratılan bir array'i Watch penceresinde görmek için değişken isminden sonra virgül ve bir sayı yazmak gerekir. pArray,10 gibi.
C# Notları Watch Penceresi
Bir sınıfın belli bir özelliğinin gösterilmesini istiyorsak aşağıdaki gibi yapabiliriz. Böylece Watch pencersindeki Value sütununa nesnenin Name alanının değeri yazılır.
[System.Diagnostics.DebuggerDisplay("Employee: '{Name}'")]
public class Employee {
public string Name { get { ... } }
...
}
BreakpointBreakpoint için condition yani koşul yazılabilir. Koşul sadece değişkenlerde işe yarıyor. Getter metodu kullanması istenirse çalışmıyor. Örneğin koşul olarak şunu yazarsak property alanına erişmek için aslında debugger'ın bizim kodumuzdan bir getter çağırması gerekir ki bunu yapacak kadar akıllı değil.
iterator.MyProperty == null
Tracepoint
Breakpoint gibi konuluyor. Kod satırına sağ tıkla Breakpoint / Insert Tracepoint menüsünü seç
const char* pMessage = "..." şeklindeki bir değişkeni göstermek için
{pMessage} is processedyazılmalı.
Prebuild Event
Buradaki komutlar shell tarafından çalıştırılıyor. $(ProjectDir) projenin bulunduğu dizini gösterir.
F5 ve Ctrl + F5
Uygulamayı F5 ile çalıştırınca, daha yavaş çalışan debug heap kullanılıyor. Diğeri ile çalıştırınca normal heap'i kullanıyor.
Profiler
Analyze / Start Performance Analysis ile profiling işlemleri başlatılır. İşlem bitince Notifications penceresi altında Show Just My Code seçilirse sistem dll'leri içinde harcanan zaman gösterilmez.
Hiç yorum yok:
Yorum Gönder