After reading all the chapters very quickly today, I feel that I already have a very rough understanding of Il. I know how to read this book if I have any problems.
I read it roughly. Chapter 1-3 slightly introduced some pieces of Il, which gives some basic knowledge.
Chapter 4-16 introduces some specialized knowledge. The categories are as follows:
File Format:
Chapter 2: Introduction to CRL-based executable file structure
Chapter 1: Structure of the metadata table. All functions here have
AdvancedProgramThe IL syntax corresponding to the concepts in the language is related. This chapter begins with the syntax specification of Il. If you want to write the Il independently, you should start to study it carefully from this chapter:
Chapter 4: modules and assembly
Chapter 2: namespaces and Classes
Chapter 2: Basic Types and signatures
Chapter 2: fields and data Constants
Chapter 2: Methods
Chapter 2: generic classes
Chapter 2: generic methods
Il commands are related to how to translate functions written in advanced languages, such as C ++ to ASM:
Chapter 2: il commands
Special
Chapter 1 Exception Handling
Chapter 2: Events and properties, events and properties are essentially calls to methods. The process is normalized.
Chapter 2: User-defined attributes
What I was thinking was to do it on the generated il FileArticleAfter reading this, I have an idea:
The producer has already supported the reuse of the role name and can change the space of the role name. In this case, the producer is willing to generate an ilth, and then use ilasm.exe to generate a new module.
After searching, it turns out that methoddefinition. Body. Instructions is the function body. You can directly add the profiler function instruction here.
If the length of the added function body instruction exceeds 127, you need to change all the short instructions to the Growth instruction.
It seems that you can start to study how to use mono. Cecil.
in another direction, debug the U3D Code with the unityengine. camera. render () is the target. I tried to add debug in the function body. log command. An error is reported ..
this function is an internalcall function and cannot have a body. After internalcall is removed, the editor of Untiy cannot be opened...
as described in Chapter 5th, CLR checks the consistency between the metadata header and the actual code. Whether the internalcall function can insert code is further investigated.