Index: src/Common/GC.cc
===================================================================
--- src/Common/GC.cc	(revision 24de7b1695ec2b0f72713eb9c21700d888488dde)
+++ src/Common/GC.cc	(revision fb97252f0e9f4779bc5cc9874715a695350b3660)
@@ -51,5 +51,21 @@
 }
 
+// build with flag GC_TRAP to compile in a breakpoint on register and sweep of a dynamically 
+// chosen object. Process to use:
+//     break GC::register_object
+//     run
+//     set variable GC_TRAP_OBJ = <target>
+//     disable <first breakpoint>
+#ifdef GC_TRAP
+#include <csignal>
+
+/// Set to object to check in debugger
+void* GC_TRAP_OBJ = nullptr;
+#endif
+
 void GC::register_object(GC_Object* obj) {
+	#ifdef GC_TRAP
+		if ( obj == GC_TRAP_OBJ ) std::raise(SIGTRAP);
+	#endif
 	gens[g].push_back(obj);
 	obj->mark = !this->mark;  // initialize as un-marked
@@ -81,4 +97,7 @@
 	for ( GC_Object*& obj : young ) {
 		if ( obj->mark != mark ) {
+			#ifdef GC_TRAP
+				if ( obj == GC_TRAP_OBJ ) std::raise(SIGTRAP);
+			#endif
 			delete obj;
 			obj = nullptr;
@@ -103,4 +122,7 @@
 	for ( GC_Object*& obj : old ) {
 		if ( obj->mark != mark ) {
+			#ifdef GC_TRAP
+				if ( obj == GC_TRAP_OBJ ) std::raise(SIGTRAP);
+			#endif
 			delete obj;
 			obj = nullptr;
