All pastes #142792 Raw Edit

Anonymous

public text v1 · immutable
#142792 ·published 2006-08-21 18:09 UTC
rendered paste body
while (<>){ 
    if (/^struct/ || /^typedef struct/)
    {
	$n = $_; 
	LINE: while (<>){
	    if (/MonoObject[ \t]*[a-z]/) { 
		$scan = 1;
		$file = $ARGV;
	    } else {
		if (/^\}/){
		    if (/\};/){
			print "$n" if $scan == 1;
			$n = "";
		    } else {
			print "$_" if $scan == 1;
		    }
		    $scan = 0;
		    last LINE;
		}
	    }
	} 
    }
}


Run like this:
cd mono/mono/metadata
perl a.pl *.h

That will generate a list of things that the runtime depends on, it only looks for Object, so for each
object returned here, you must also rerun this script to find other derived classes.

 MonoAppDomainSetup
struct _MonoAppContext {
 MonoFSAsyncResult
 MonoArray
 MonoString
 MonoMarshalByRefObject
 MonoStringBuilder
struct _MonoException {
 MonoAsyncResult
struct _MonoReflectionType {
 MonoRealProxy
 MonoTransparentProxy
 MonoMethodMessage
 MonoStackFrame
struct _MonoThread {
 MonoDateTimeFormatInfo
 MonoNumberFormatInfo
 MonoCompareInfo
 MonoCultureInfo
 MonoRegionInfo
 MonoSortKey
 MonoInterfaceTypeAttribute
struct _MonoReflectionMethod {
struct _MonoDelegate {
struct _MonoReflectionField {
struct _MonoReflectionProperty {
struct _MonoReflectionEvent {
 MonoReflectionParameter
struct _MonoReflectionMethodBody {
struct _MonoReflectionAssembly {
 MonoReflectionILGen
 MonoReflectionExceptionHandlingClause
 MonoReflectionLocalVariableInfo
 MonoReflectionLocalBuilder
 MonoReflectionMarshal
 MonoReflectionParamBuilder
 MonoReflectionCtorBuilder
 MonoReflectionMethodBuilder
 MonoReflectionArrayMethod
 MonoReflectionFieldBuilder
 MonoReflectionPropertyBuilder
struct _MonoReflectionModule {
 MonoReflectionAssemblyName
 MonoReflectionEventBuilder
 MonoReflectionCustomAttr
 MonoReflectionDllImportAttribute
 MonoReflectionUnmanagedFunctionPointerAttribute
 MonoReflectionDynamicMethod
 MonoReflectionSigHelper
 MonoManifestResourceInfo
 MonoProcessStartInfo
 MonoSocketAsyncResult
 MonoPeerCredData