I get it. Thank you vlad.Thank you Marek.
------------------ ???????? ------------------
??????: "Vlad Brezae"<brezaev...@gmail.com>;
????????: 2018??5??16??(??????) ????4:52
??????: "xiaozhu"<niluzhou1...@foxmail.com>;
????: "Marek Safar"<marek.sa...@gmail.com>;
"mono-devel-list"<mono-devel-list@lists.dot.net>;
????: Re: [Mono-dev] Why Create OutOfMemoryException will cause some
dataofsgen_cardtable be masked
Hey,
The card table is used keep track of stores of references to minor
generation objects inside objects of the major generation (generally). As you
can imagine, these stores happen mostly in JIT compiled code (which starts
after the runtime invoke) and it doesn't make sense to transition to native
code each time. This cardtable marking is called the write barrier and you can
see how it is emitted in mini_emit_write_barrier. For the general case this
generates the assembly associated with OP_CARD_TABLE_WBARRIER.
Especially at startup we might have some objects that are allocated
directly in the major heap, so there can be cardtable markings without yet
having any collections and normal object promotion.
Vlad
On Wed, May 16, 2018 at 11:29 AM, xiaozhu <niluzhou1...@foxmail.com> wrote:
Thank You ,Marek .
Thank You , Vlad
------------------ ???????? ------------------
??????: "Marek Safar"<marek.sa...@gmail.com>;
????????: 2018??5??16??(??????) ????3:14
??????: "xiaozhu"<niluzhou1...@foxmail.com>;"Vlad Brezae"<brezaev...@gmail.com>;
????: "mono-devel-list"<mono-devel-list@lists.dot.net>;
????: Re: [Mono-dev] Why Create OutOfMemoryException will cause some dataof
sgen_cardtable be masked
Hello,
I am cc-ing Vlad who can answer your question.
Marek
On Wed, May 9, 2018 at 7:41 AM, xiaozhu <niluzhou1...@foxmail.com> wrote:
hi,all I'm doing some research of sgen_cardtable of the embeded mono.
And find that ,after the mono_jit_init_version call , some bytes of
sgen_cardtable is aready setted.
Some of the call in mono_jit_init_version will call
sgen_card_table_wbarrier_set_field to change some bytes of sgen_cardtable.
But there is one exception that change the memory of sgen_cardtable
without call any of the sgen_cardtable method.
That exception is the invoke of the Constructor of
System.OutOfMemoryException.
The Call Chain is
1.mono_jit_init_version
2.mini_init
3.mono_runtime_init_checked
4.create_domain_objects
5.mono_exception_from_name_two_strings_checked
6.create_exception_two_strings
7.mono_runtime_invoke_checked
I have tested the newest stable release of mono,The result is the same.
The Quesition is :
Why call the ctor of System.OutOfMemoryException will cause some byte of
sgen_cardtable be setted without call any method
of sgen_cardtable.
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.dot.net
http://lists.dot.net/mailman/listinfo/mono-devel-list
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.dot.net
http://lists.dot.net/mailman/listinfo/mono-devel-list