You are correct about the usage of !dumpheap start end showing you objects in the range.
My sample might not be the best one since this was a sample app that didn't allocate much and therefore some segments for some generations did not exist at all.
I'm currently not able to produce a better sample, but when I'll get some time tomorrow I will give you a snapshot of some real data.
According to your response it does seem you got the idea, and !eeheap -gc should provide you with the necessary address ranges per generation (or more accurately per generation memory segment).