Some time ago, I finally managed to switch from Visual Studio to JetBrains Rider at work. Finally, because I used to work a lot with Rider before, and I really like this IDE. Unfortunately, I ran into some annoying problems with docker-compose debug configuration.
Today I'm trying to give you some tips on approaching an unknown codebase. How do you manage to quickly find yourself in new code you don't know? How do you manage to join a new project?
Sztuka programowania 1876 dni, 2 godziny, 47 minut temu 116 źrodło rozwiń
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.
Zawsze przychodzi ten moment gdy trzeba rozwiązać buga na produkcji i jedyne co mamy to logi aplikacji. Okazuje się oczywiście, że nie ma wszystkich informacji w tych logach. Nie ma nawet całkiem podstawowych informacji...
Sztuka programowania 2526 dni, 2 godziny, 23 minuty temu 146 źrodło rozwiń
Some people used to say that a good programmer doesn’t need to debug his own code. However, sometimes we have a problem with third party libraries usage, for example: there is insufficient documentation or the module contains some bugs. Visual Studio has excellent debugging toolset but this is totally useless without symbols and sources (and this is often the case with third party libraries). Thanks to Reshaper decompiler this shouldn’t be a problem anymore. Before we start debugging we should make so...
[DebuggerTypeProxy] is very useful attribute when you have a class that inherits from another class and that one inherits from another one, and some of the classes contain collections of items and hundreds of properties that in fact are not important to you… Strictly speaking, when displaying class’ members while debugging makes you feel like quitting the job. [b]We decide how to display object while debugging[/b] Exactly! You can set a proxy that will inform debugger how you want a type to be displayed...
Debugging ASP.NET Core apps in Visual Studio Code is not as simple as in „Windows version” but it’s still pretty easy to setup. So if you have ever had some troubles with that, here’s an explanation of the entire process. Adding configuration Before configuring VSC, you need to install C# extension if you don’t have it yet. I’d say, it’s a must-have for every .NET developer working with Code since it offers lots of features like IntelliSense, useful sni...
Miałem już zakończyć serię o serverless w gogle gdyż o cloud functions dużo więcej napisać się po prostu nie dało. Tak przynajmniej myślałem. Mimo wszystko kontynuowałem czytanie na temat funkcji, co jest możliwe a co nie. Jakie są opcje i gdzie te funkcje mogą być wykorzystane. I gdyby nie ślepy traf to tego postu by nie było a moja opinia o funkcjach w googlach była by dość słaba – przynajmniej gorsza niż teraz jest.
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, 44 minuty temu 214 źrodło rozwiń
Reading time ~6 minutes In most cases .NET manages to solve the DLL hell problem pretty well, but sometimes it all falls apart, and when it does in best case scenario we see something like this:Could not load file or assembly 'XXXX, Version=X.Y.Z.W, Culture=neutral, PublicKeyToken=eb42632606e9261f' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) The much worst case is this:The method 'XXXX' was not fou...
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, 28 minut temu 258 źrodło rozwiń
Yep, it’s not rocket science, but it can really help you in your everyday work. If you don’t know about this trick – you can waste a lof of time.
Bazy danych i XML 2838 dni, 1 godzinę, 46 minut temu 96 źrodło rozwiń
Sometimes it happens that knowing well some tool we suddenly discover an option that seems completely „exotic” but when we sh...
This is a story of a bug I had an opportunity to fix in the ancient times of node.js 0.10. The new and shiny node.js 0.12 was still just glimmering somewhere on the horizon, we were still young and beautiful. Some of us, at least. Let me take you on an adventure through time and space. Hopefully, there will be some learning involved along the way. So hop on the magic school bus and we’re off!
Sztuka programowania 2906 dni, 14 godzin, 32 minuty temu 53 źrodło rozwiń
Reading time ~2 minutes I’m taking a short break from Hangfire series, but I will get back to it. This time - Where did my memory go ? Or to be more exact: Why is this using so much memory? The story starts with one IIS application pool using around 6 Gigabytes of memory on one of our test environments. It was several times above the values that we expected it to use, so we decided to investigate. Without much thinking we fired up Visual Studio installed on the test server, and attached to the proce...
Architektura 2969 dni, 1 godzinę, 51 minut temu 64 źrodło rozwiń
Everyone knows how to enhance Visual Studio’s debugging experience by applying DebuggerDisplay attribute (in polish). If not – read Piotr’s post here. That’s debugging 101. Here’s how to improve your experience even more. DebuggerDisplay attribute is ok if you control the code and you can apply it to the type you want to expose in the debugger. What if you can’t do that? What if you want to attribute a build-in type? Is all hope gone? No. There’s a way. There’s a hidden* .cs file and a dll that you can...
Nie wiem czy macie prawo jazdy, ale nawet jeśli nie, to pewnie zrozumiecie wysublimowaną analogię, którą zaraz przeczytacie. Otóż jeżdżąc samochodem i mniej więcej kojarząc przepis drogowe, możemy jeździć z powodzeniem całe życie. (...)
Visual StudioŁukasz Zaborski2 min readAdd Comment Często podczas debugowania miałem problem z sprawdzeniem co dana metoda zwraca w momencie kiedy call stack znajdował się na linijce z return. Przykładowo mając poniższą metode nie byłem w stanie podejrzeć jakie wartości są zwracane.public IEnumerable
Debugging complex exceptions with $exception pseudovariable
W Visual Studio istnieje pewna opcja, która umożliwia sprawdzenie wartości obiektu, do którego nie ma się jawnej referencji. Spójrzmy na następujący przykład:class Program { staticvoid Main(string[] args) { DoSomething(); } privatestaticvoid DoSomething() { var person=new Person(); person.FirstName ="Piotr"; person.LastName ="Zielinski"; } } Jeśli ustawimy breakpoint w metodzie DoSomething naturalnie zobaczymy wartość obiektu person w oknie watch:...