Testing shows the presence of errors in a product, but “cannot prove that there are no defects” – you probably know that quote. I remember so many hours spent on debugging those little, mean bugs hidding deeply in the code edge cases. But what’s worse, I remember even more hours trying to understand and reproduce an error that happens only in production environment. Here’s the first top 5 most popular issues I’ve met during last years...
In my blog 'Debugging Through the .NET Core framework' I give specific instructions for setting Visual Studio up so that you can debug into the source code for the .NET Core Runtime. Since Version 2.1 of the .NET Core runtime, it is also possible to do this using the 'Visual Studio Code' editor. Since Visual Studio code runs on Linux (as well as windows, or MacOS), this is what you would be using if you were developing on non-windows platform.
Today I (again) focus on the attributes that will make your debugging less painfull :). This time my scribbles should appeal to the programmers who prefer keeping their code clean (and adhere to the principle: the less ‘spare’ code the better). So grab a mug of whatever you like and take a look at DebbugerBrowsable and DebuggerDisplay. The first one may be a good alternative to DebuggerTypeProxyI described in previous post and the second one is just ‘a must’ (really!) that makes life easier.
Ostatnio w projekcie zdarzyło się, że musiałem debugować skomplikowany proces wyliczania, który był zrównoleglony przy pomocy metody Parallel.ForEach(). Moja konfiguracja sprzętowa pozwoliła na uruchomienie kilku wątków naraz co sprawiło, że proces debugowania stał się dość uciążliwy. W różnych, bliżej nieokreślonych momentach, byłem przerzucany pomiędzy różnymi wątkami, a co za tym idzie pomiędzy różnymi kontekstami i miejscami w kodzie.
Programowanie rozproszone 2681 dni, 21 godzin, 58 minut temu 214 źrodło rozwiń
Jak doszedłem do tego co zawiniło i dlaczego OData na spatial queries mi nie działała. Czyli mały przewodnik po tym jak można debuggować zewnętrzny kod z poziomu Visual Studio. Coś co może nie na co dzień ale raz na jakiś czas może się bardzo przydać!
Sztuka programowania 2819 dni, 19 godzin, 42 minuty temu 258 źrodło rozwiń
Today, I'd like to share with you a simple but useful trick. Imagine yourself that you are debugging an application and you find a place with the following very simple code: var flag = ReadConfiguration(); if (flag) { //... } else { //... } The problem is that the flag variable is set to false but you need to check what would happen if it is set to true. Of course you can easily change the value of this variable in Visual Studio. But what would you do if this kind of code i...
29/02/2016 ~ Jarosław Stadnicki Jeśli zdarzyło wam się kiedyś debugować przez Console.WriteLine(…) lub dzielić przez zero, tylko po to aby odpalił się debugger I podpinać do tego visual studio to ta linijka będzie dla was na wagę złota: Gdy wykonywany kod dojdzie do tej linijki pojawi się okienko z pytaniem czy chcesz debugować aplikację, po „jesie” VS dopina się do procesu I normalnie można korzystać z dobrodziejstw inwentarza. Sztuczka przydatna gdy kod jest uruchamiany przez zewnętrzny proces, a wy ...
How to make your 'debugging life' easier with DebuggerDisplay attribute
Sztuka programowania 3671 dni, 2 godziny, 11 minut temu 161 źrodło rozwiń
W VS 2013 usprawniono debugowanie kodu asynchronicznego. Wszyscy jesteśmy przyzwyczajeni już do async\await. Znacząco to ułatwia wykonywanie operacji asynchronicznych. Niestety, debugowanie w VS 2012 jest dość uciążliwe. Załóżmy, że mamy kod z wieloma metodami asynchronicznymi, które z kolei są pozagnieżdżane. W przypadku wyrzucenia wyjątku lub ustawienia breakpoint’a, call stack nie zawierał żadnych informacji. Przetestujmy opisany problem na następującym kodzie:publicpartialclass MainWindow : Window {...
110Improve your debugging with OzCode Wczoraj pod wpisem Jarka na temat AutoMappera - kolega Łukasz Kurzyniec - umiescil link do ciekawej wtyczki do Visual Studio wspomagajacej programiste w procesie (jakze zmudnym czasami) debuggowania. "OzCode" bo o niej mowa, jest dzielem izraelskiej firmy CodeValue i poki co dostepna za darmo z racji wersji "beta". Pobawilem sie nia troszeczke i musze przyznac ze prezentuje sie naprawde ciekawie. Ponizej kilka ciekawych funkcji jakie oferuje: Ilekroc to zdar...
Never forget to turn off debugging on production by using 'retail' attribute in ASP.NET
Jak wiadomo debuger wielkim przyjacielem programisty jest, ale nie zawsze istnieje możliwość odpalenia go od tak sobie wciskając F5. W przypadku usług (serwisów) windows otrzymamy komunikat o poprawnym sposobie uruchomienia serwisu. Co z tym fantem zobić?
Windows Phone jako jedyna platforma umożliwia tworzenie aplikacji z tzw. Trial‘em. Wiem, ktoś może powiedzieć, że przecież w AppStore czy Android Market też są aplikacje płatne i darmowe. Czym więc różni się Windows Phone? Tym, że możemy stworzyć jedną aplikację, która będzie jednocześnie wersją Trial i pełną, a Windows Phone Marketplace automatycznie zadba o procedurę kupna i podniesienia wersji z darmowej na pełną. W tym poście opiszę moje podejście do tego tematu.
Mobile development 4474 dni, 9 godzin, 56 minut temu 75 źrodło rozwiń
Komenda preprocesora #if DEBUG i problemy z utrzymaniem (rename).
Architektura 4597 dni, 10 godzin, 33 minuty temu 183 źrodło rozwiń
JavaScript jest nieodłącznym elementem praktycznie każdej strony www. Coraz częściej poziom skomplikowania JavaScriptu jest większy niż logiki po stronie serwera. Niestety js jest trochę niewdzięczny pod względem kontrolowania tego, co robi Pisząc pierwsze skrypty wpadłem na pomysł, by strzelać alertami za każdym razem, kiedy chcę sprawdzić, co dzieje się w skrypcie. Życie szybko jednak pokazało, że jest to złe podejście – tak odkryłem metodę console.log();.
Macie czasem tak, że podczas długiej sesji z debuggerem, wiedząc, że jakiś breakpoint nie wskoczy prędko przełączacie się z VS aby później zorientować się, że breakpoint już dawno czekan na waszą reakcję a wy po prostu nie zauważyliście tego małego migoczącego znaku VS w pasku? O właśnie o ten mrygacz chodzi :) Jeśli tak to ten post jest dla was - jeśli nie poczytajcie jak wkurzyć kolegów :) Okazuje się, że VS prócz standardowych opcji, które możemy ustawić w Tools->Options posiada kilka dodatkowyc...
autor: W projekcie nad którym aktualnie pracuję pojawia się bardzo dużo asercji w postaci: internal class Foo { public void Bar(int number) { Debug.Assert(number < 0, "number >= 0"); //... } } W przypadku kiedy warunek nie jest spełniony na ekranie wyświetlany jest komunikat. Sprawa jasna. O ile samo wywołanie metody Debug.Assert() nie jest problematyczne. (przecież istnieje coś takiego jak Intellisense!), to problemem staje się wypełnianie argumentu message (“number >= 0”), z...
Podczas działania naszej aplikacji (a będącej jeszcze w fazie dewelopmentu) często zachodzi potrzeba na wyświetlanie dodatkowych informacji. Przykładowo wyświetlamy różnego rodzaju identyfikatory czy kody wczytanych danych aby śledzić czy edytowany rekord jest tym rekordem, o który nam chodzi...
Silverlight 4865 dni, 13 godzin, 41 minut temu 98 źrodło rozwiń
Podczas kompilowania projektu na nowym lapku moim oczom ukazał się komunikat : "The specified solution configuration "Debug|MCD" is invalid" . Po przejrzeniu 10 razy całej konfiguracji i wszystkich opcji konfiguracji nigdzie nie znalazłem wspomnianego MCD. W czym tkwi w konfiguracji komputera a dokładnie samego Windowsa. Należy wejść do edytora rejestru odnaleźć ścieżkę : HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment a w niej klucz o nazwie Platfrom . Wystarczy zm...
W poprzednim poście opisałem nowość w Silverlight 5 – XAML bindings debugging, czyli debugowanie bindingów prosto w XAML’u. Programiści już się cieszą i czekają od kwietnia na wersję RTM, a wtedy zmigrują swoje projekty do nowej wersji.Wcale nie trzeba czekać Ale okazuje się, że nie trzeba czekać. Już dzisiaj można debugować bindingi w „starych” projektach Silverlight 4!
Silverlight 4880 dni, 19 godzin, 34 minuty temu 59 źrodło rozwiń