Finding where std::out_of_range is thrown by std::vector.at()
Would catchpoints help? You can break whenever an exception is thrown by entering the catch throw
command in gdb. In Eclipse, you can do this through the gdb console. See this question.
You can put a breakpoint in the constructor for the exception object. Since this occurs before the exception is thrown, you get great visibility into the calling code.