if there are lots of loops and/or IF/ELSE, add many "PRINT 'Loop/IF X.Y'", where X is a unique Loop/IF name/number of your choosing and Y is unique location in that Loop/IF. Then run the procedure from management studio. This will give you a quick idea of the running flow of the procedure.
You can expand on this idea, and output local variables and their values, row counts, etc. at various locations in the procedure to get a feel what is going on.
if you are unsure of how the run it manually because you don't know what parameters to use, capture the parameters. On the first line of the procedure insert into a log table:
INSERT INTO YourLogTable
VALUES ('EXEC YourProcedureName @Param1='+COALESCE(''''+convert(varchar,@Param1)+'''','NULL')+', @Param2='+COALESCE(''''+convert(varchar,@Param2)+'''','NULL'))
you can then run your application to envoke that procedure and then cut/paste from the log and manually run that procedure.