Good day, ladies and gentlemen

that's a great community you have. Mobile communications programming is a demanding field requiring best developers.

I would be extremely grateful if you find time to answer a couple of my simple questions.

I found myself reading the code of OsmoHLR project in order to understand how it works and how the GSUP protocol works (it seems that the only example of the GSUP-server is OsmoHLR).
How do you understand the code when you need to modify it or accomplish other things that programmers usually do? It seems to not be documented much.

Though I feel fluent in C, I find it hard to understand what is going on there.
I've come up with an idea of running the OsmoHLR with a debugger. But in order to see what actually happens in the code when the location update is being performed (for example) I need to have the real phone and the real BTS, don't I? How do you check that the code is working as intended?

Thank you very much!

Kind regards,
Mykola Shchetinin