[Mono-dev] s390x - delegate-async-exit

Neale Ferguson neale at sinenomine.net
Wed Aug 5 21:47:15 UTC 2015


Further investigation shows the value being set here:

0x80200bb2 is in mono_gc_wbarrier_set_arrayref (sgen-mono.c:171).
166	void
167	mono_gc_wbarrier_set_arrayref (MonoArray *arr, gpointer slot_ptr,
MonoObject* value)
168	{
169		HEAVY_STAT (++stat_wbarrier_set_arrayref);
170		if (sgen_ptr_in_nursery (slot_ptr)) {
171			*(void**)slot_ptr = value;
172			return;
173		}
174		SGEN_LOG (8, "Adding remset at %p", slot_ptr);
175		if (value)


This is called from:

0x801a5c22 is in mono_threadpool_ms_end_invoke (threadpool-ms.c:1310).
1305		}
1306	
1307		MONO_OBJECT_SETREF (ares, endinvoke_called, 1);
1308	
1309		/* wait until we are really finished */
1310		if (ares->completed) {
1311			mono_monitor_exit ((MonoObject *) ares);
1312		} else {
1313			gpointer wait_event;
1314			if (ares->handle) {


Now the fact that the scan is pulling the value 0x1000000000000 this would
indicate that the slot_ptr (ares) is not aligned on a pointer boundary so
the calculation of this location must be incorrect.
Neale



More information about the Mono-devel-list mailing list