The addError methods in a Visualforce context will also add to the Apex Page messages collection, which you can access via the ApexPages.getMessages method.
When used in Visualforce controllers, the generated message is added to the collection of errors for the page.
Test__c testRecord = new Test__c();
testRecord.addError('Some error');
testRecord.A_Number__c.addError('Field error');
for(ApexPages.Message message : ApexPages.getMessages())
System.debug(message.getComponentLabel() + ' : ' + message.getSummary());
The following results in...
20:03:00:155 USER_DEBUG [8]|DEBUG|null : Some error
20:03:00:156 USER_DEBUG [8]|DEBUG|A Number : Field error
Unfortunatly the record that generated the error is not availble.
Finally you might also be interested in the ApexPages.hasMessages method as well.
Hope this helps!