You should make a "step" function in your program so you can execute the algorithm step by step. I expirimented with that approach and it works pretty good when you are implementing algorithm's or developing them.

In your case, you might want to render some lines and debug info to your canvas, before the next "FindHull" call. You could make a "Draw" routine, which draws all points and lines (PQ) and is called at the end of the FindHull function. Then you could add a Sleep(1000) call, and run your app.

You will see your algorithm compute the convex hull, step by step. You could also let the user decide when to execute the next step (by pressing some key).

It can be hard to debug algo's like these, but with this debug trick, i'm sure it will be alot easier.

Good luck.