Momenteel ben ik bezig met bug hunting in een reeds bestaande webapplicatie. Nou is het zo dat de architectuur van die applicatie wat te wensen over laat. Hierdoor is het een en ander (lees alles) slecht opgezet. Rarara nu heeft men last van serieuse performance problemen.
Een van de zaken die bijvoorbeeld niet (goed) zijn geimplementeerd is een degelijke error afhandeling.
Laat ik het zo zeggen error's worden te pas en te onpas gebruik als programflow.
Voorbeeld:
Dit soort grappen en grollen zit lekker diep verweven in de hele applicatie. Nu weet bijna iedereen
dat error's throwen een dure aangelegenheid is, en performancewise gezien kan het de applicatie helpen om de meeste van deze zaken aan te passen. Nu was ik van plan om eens uit te zoeken hoeveel en wat voor soort Error's er nou door de hele applicatie worden gethrowed, zowel handled als unhandled exceptions. Dit scheelt mij weer gigantisch veel uitzoek werkt hoevaak bepaalde methoden worden aangeroepen enzo.
Omdat het een bestaande applicatie is en dermate groot is het niet mogelijk om bijvoorbeeld overal debug informatie toe te voegen.
Na wat spelen met Microsoft Application Center Test, kon ik al achterhalen hoeveel error's er gethrowed worden via de performance counters. (duizenden in een korte stress-test). Maar deze informatie is mij veel te beperkt, ik wil ook weten welke error's dat waren en het liefst ook waar in de code het gebeurd.
Mijn vraag:
Nu wil ik op een relatief simpele manier alle error's te voorschijn toveren, maar hoe pak ik dat aan? Het enige wat ik tot nu toe tegen ben gekomen zijn stukken source code waarbij je als nog in de source code moet lopen grutten, of voor (meestal) nieuw op te zetten applicaties.
Een van de zaken die bijvoorbeeld niet (goed) zijn geimplementeerd is een degelijke error afhandeling.
Laat ik het zo zeggen error's worden te pas en te onpas gebruik als programflow.
Voorbeeld:
C#:
1
2
3
4
5
6
| try { Convert.ToInt32(inputString); return true; } catch { return false; } |
Dit soort grappen en grollen zit lekker diep verweven in de hele applicatie. Nu weet bijna iedereen
dat error's throwen een dure aangelegenheid is, en performancewise gezien kan het de applicatie helpen om de meeste van deze zaken aan te passen. Nu was ik van plan om eens uit te zoeken hoeveel en wat voor soort Error's er nou door de hele applicatie worden gethrowed, zowel handled als unhandled exceptions. Dit scheelt mij weer gigantisch veel uitzoek werkt hoevaak bepaalde methoden worden aangeroepen enzo.
Omdat het een bestaande applicatie is en dermate groot is het niet mogelijk om bijvoorbeeld overal debug informatie toe te voegen.
Na wat spelen met Microsoft Application Center Test, kon ik al achterhalen hoeveel error's er gethrowed worden via de performance counters. (duizenden in een korte stress-test). Maar deze informatie is mij veel te beperkt, ik wil ook weten welke error's dat waren en het liefst ook waar in de code het gebeurd.
Mijn vraag:
Nu wil ik op een relatief simpele manier alle error's te voorschijn toveren, maar hoe pak ik dat aan? Het enige wat ik tot nu toe tegen ben gekomen zijn stukken source code waarbij je als nog in de source code moet lopen grutten, of voor (meestal) nieuw op te zetten applicaties.