EnglezăFrancezăSpaniolă

Favicon OnWorks

mono - Online în cloud

Rulați mono în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda mono care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


mono - Generatorul de cod nativ ECMA-CLI al Mono (just-in-time și ahead-of-time)

REZUMAT


mono [Opțiuni] fişier [argumente...]

mono-sgen [Opțiuni] fişier [argumente...]

DESCRIERE


mono este o implementare în timp de execuție a infrastructurii ECMA Common Language. Acesta poate fi
folosit pentru a rula aplicații ECMA și .NET.

Runtime conține un generator de cod nativ care transformă intermediarul comun
Limba în cod nativ.

Generatorul de cod poate funcționa în două moduri: compilare just in time (JIT) sau înainte de
compilarea timpului (AOT). Deoarece codul poate fi încărcat dinamic, mediul de rulare și
JIT-urile sunt întotdeauna prezente, chiar dacă codul este compilat din timp.

Runtime încarcă cele specificate fişier și, opțional, trece de argumente la ea. The fişier
este o adunare ECMA. De obicei, au o extensie .exe sau .dll.

Runtime oferă o serie de opțiuni de configurare pentru rularea aplicațiilor, pt
dezvoltarea și depanarea și pentru testarea și depanarea runtime-ului în sine.

mono comanda folosește colectorul de gunoi conservator Boehm în timp ce mono-sgen comandă
folosește un colector de gunoi în mișcare și generațional.

PORTABILITATEA


Pe sistemele bazate pe Unix, Mono oferă un mecanism pentru a emula accesul la fișiere în stil Windows,
aceasta include furnizarea unei vizualizări care nu ține seama de majuscule și minuscule ale sistemului de fișiere, separator de directoare
maparea (de la \ la /) și eliminarea literelor de unitate.

Această funcționalitate este activată prin setarea MONO_IOMAP variabilă de mediu la unul dintre
toate, conduce si caz.

Vezi descrierea pentru MONO_IOMAP în secțiunea variabile de mediu pentru mai multe detalii.

DURATA OPŢIUNI


Sunt disponibile următoarele opțiuni:

--aot, --aot[=opțiuni]
Această opțiune este folosită pentru a precompila codul CIL din ansamblul specificat în nativ
cod. Codul generat este stocat într-un fișier cu extensia .so. Acest fișier
va fi preluat automat de timpul de execuție atunci când ansamblul este executat.
Compilarea anticipată este cea mai utilă dacă o utilizați în combinație cu
-O=all,-shared flag care permite toate optimizările din generatorul de cod
fi efectuat. Unele dintre aceste optimizări nu sunt practice pentru Just-in-Time
compilare, deoarece ar putea consuma foarte mult timp. Spre deosebire de .NET Framework,
Compilarea înainte de timp nu va genera cod independent de domeniu: generează
același cod pe care l-ar produce compilatorul Just-in-Time. Deoarece majoritatea
aplicațiile folosesc un singur domeniu, este bine. Dacă doriți să optimizați
cod generat pentru utilizare în aplicații cu mai multe domenii, luați în considerare utilizarea -O=shared
steag. Aceasta precompilează metodele, dar ansamblul original este încă necesar
să se execute deoarece acesta conține metadatele și informațiile de excepție care nu sunt
disponibil în fișierul generat. Când precompilați codul, este posibil să doriți să compilați
cu toate optimizările (-O=toate). Codul precompilat este un cod independent de poziție.
Precompilarea este doar un mecanism de reducere a timpului de pornire, de creștere a partajării codului
prin mai multe procese mono și evitați pornirea programului de compilare just-in-time
cheltuieli. Ansamblul original trebuie să fie în continuare prezent, deoarece metadatele sunt conținute
Acolo. Codul AOT de obicei nu poate fi mutat de la un computer la altul (CPU-
optimizări specifice care sunt detectate în timpul execuției) deci nu ar trebui să încercați să vă mutați
ansamblurile pregenerate sau ambalarea ansamblurilor pregenerate pentru
implementare. Câteva opțiuni sunt disponibile ca parametru pentru --aot Linie de comanda
opțiune. Opțiunile sunt separate prin virgule și pot fi specificate mai multe:

autoreg
Compilatorul AOT va emite automat un inițializator de bibliotecă (numai ELF).
înregistrați modulul aot compilat cu runtime. Acest lucru este util doar în
modul static

asmonly
Instruiește compilatorului AOT să scoată codul de asamblare în loc de un obiect
fișier.

bind-to-runtime-version
Dacă este specificat, forțează ca fișierele AOT generate să fie legate la runtime
versiunea de compilare a Mono. Acest lucru va împiedica fișierele AOT să fie
consumat de un alt timp de rulare Mono. Complet Acesta este în prezent un
caracteristică experimentală deoarece nu este completă. Acest lucru îl instruiește pe Mono să
cod de precompilare care istoric nu a fost precompilat cu AOT.

direct-pinvoke
Când este specificată această opțiune, metodele P/Invoke sunt invocate direct în schimb
de a parcurge operația de căutare a simbolului sistemului de operare.

llvm-path=
Același lucru pentru instrumentele llvm „opt” și „llc”.

mtriplu=
Utilizați triplul țintă în stil GNU pentru a determina o generare de cod
opțiuni, adică --mtriple=armv7-linux-gnueabi va genera cod care vizează
ARMv7. Acest lucru este în prezent acceptat doar de backend-ul ARM. În modul LLVM,
acest triplu este transmis compilatorului LLVM llc.

nimt-trambuline=[număr]
La compilarea în modul complet aot, trambulinele IMT trebuie precreate în
imaginea AOT. Puteți adăuga trambuline de metodă suplimentare cu aceasta
argument. Implicit la 128.

nodebug
Instruiește compilatorului AOT să nu scoată nicio informație de depanare.

fără apeluri directe
Acest lucru împiedică compilatorul AOT să genereze apeluri directe către o metodă.
Compilatorul AOT generează de obicei apeluri directe pentru anumite metode care fac
nu necesită trecerea prin PLT (de exemplu, metode despre care se cunoaște
nu necesită un cârlig ca un constructor static) sau apelează la interior simplu
apeluri.

pitic debug
Instruiește compilatorului AOT să emită informații de depanare DWARF. Când este folosit
împreună cu opțiunea nodebug, sunt doar informațiile de depanare DWARF
emise, dar nu și informațiile care pot fi utilizate în timpul execuției.

nrgctx-trambuline=[număr]
Când compilați în modul aot complet, trambulinele de partajare generice trebuie să fie
precreate în imaginea AOT. Puteți adăuga trambuline de metodă suplimentară cu
acest argument. Implicit la 1024.

ntrampoline=[număr]
La compilarea în modul aot complet, metoda trambulinelor trebuie să fie precreată
în imaginea AOT. Puteți adăuga trambuline de metodă suplimentare cu aceasta
argument. Implicit la 1024.

outfile=[nume fișier]
Instruiește compilatorului AOT să salveze rezultatul în fișierul specificat.

metode de tipărire omisă
Dacă compilatorul AOT nu poate compila o metodă din orice motiv, activând aceasta
flag va scoate în consolă metodele ignorate.

readonly-value=namespace.typename.fieldname=tip/valoare
Suprascrieți valoarea unui câmp static numai în citire. De obicei, în timpul JIT
compilare, constructorul static este rulat cu nerăbdare, deci valoarea unui static
Câmpul numai în citire este cunoscut în momentul compilării și compilatorul poate face un număr
de optimizări bazate pe acesta. În timpul AOT, în schimb, constructorul static
nu poate fi rulat, deci această opțiune poate fi folosită pentru a seta valoarea unui astfel de câmp
și activați același set de optimizări. Tipul poate fi oricare dintre i1, i2, i4 pentru
numere întregi de dimensiunile respective (în octeți). Rețineți că semnat/nesemnat
Numerele nu contează aici, doar dimensiunea de stocare. Această opțiune poate fi
specificat de mai multe ori și nu împiedică constructorul static pentru
tipul care definește câmpul de executat cu regulile obișnuite în timpul execuției
(prin urmare, posibil să se calculeze o valoare diferită pentru câmp).

salvare-temps, păstrare-temps
Instruiește compilatorului AOT să păstreze fișierele temporare.

soft-debug
Aceasta instruiește compilatorul să genereze verificări ale punctelor de secvență care permit
Depanatorul soft al Mono pentru a depana aplicațiile chiar și pe sistemele în care nu este
posibilă setarea punctelor de întrerupere sau la un singur pas (un anumit hardware
configurații precum telefoanele mobile și consolele de jocuri video).

static Creați un fișier obiect ELF (.o) sau un fișier .s care poate fi legat static
într-un executabil la încorporarea timpului de rulare mono. Când această opțiune este
utilizat, fișierul obiect trebuie să fie înregistrat cu runtime încorporat folosind
funcția mono_aot_register_module care ia ca argument pe
mono_aot_module_ _info simbol global din fișierul obiect:

extern void *mono_aot_module_hello_info;

mono_aot_register_module (mono_aot_module_hello_info);

Statistici Imprimați diverse statistici colectate în timpul compilării AOT.

fire=[număr]
Aceasta este o opțiune experimentală pentru compilatorul AOT pentru a utiliza mai multe fire
la compilarea metodelor.

instrument-prefix=
Preface la numele instrumentelor rulate de compilatorul AOT, adică
'ca'/'ld'. De exemplu, --tool=prefix=arm-linux-gnueabi- va face AOT
rularea compilatorului

scriere-simboluri
Instruiește compilatorului AOT să emită informații despre simbolul de depanare.

Pentru mai multe informații despre AOT, consultați: http://www.mono-project.com/docs/advanced/aot/

--attach=[opțiuni]
În prezent, singura opțiune acceptată de acest argument de linie de comandă este dezactivați care
dezactivează funcționalitatea de atașare.

--config nume de fișier
Încărcați fișierul de configurare specificat în locul celui implicit(e). Implicit
fișierele sunt /etc/mono/config și ~/.mono/config sau fișierul specificat în
Variabilă de mediu MONO_CONFIG, dacă este setată. Vezi mono-config(5) pagină de manual pentru
detalii despre formatul acestui fișier.

--debugger-agent=[opțiuni]
Acest lucru indică runtime-ului Mono să pornească un agent de depanare în timpul execuției Mono
și conectați-l la o interfață de utilizator client va controla procesul Mono. Acest
opțiunea este utilizată de obicei de IDE-uri, cum ar fi IDE-ul MonoDevelop.

Configurația este specificată folosind una dintre mai multe dintre următoarele opțiuni:

adresa=gazdă:port
Utilizați această opțiune pentru a specifica adresa IP la care se află clientul dvs. de depanare
ascultand.

loglevel=LEVEL
Specifică nivelul jurnalului de diagnosticare pentru

logfile=nume fișier
Folosit pentru a specifica fișierul în care va fi stocat jurnalul, este implicit
ieșire standard.

server=[da/n]
Implicit la nu, cu opțiunea implicită Mono se va conecta activ la
gazdă/port configurat cu adresa opțiune. Dacă îl setați la „y”, acesta
instruiește runtime-ului Mono să înceapă depanarea în modul server, unde Mono
așteaptă în mod activ ca front-end-ul depanatorului să se conecteze la procesul Mono.
Mono va imprima pentru a scoate adresa IP și portul unde ascultă.

setpgid=[a/n]
Dacă este setat la da, Mono va suna setpgid(0, 0) on pornire, if acea funcţie is
disponibil on il sistemului. Acest is util pentru asigurare acea semnalele livrate
la a proces acea is executând il depanat sunt nu propagat la il
depanat, de exemplu cand Ctrl-C trimite SIGINT la il sDB instrument.

suspend=[da/nu]
Setarea implicită este da, cu opțiunea implicită Mono va suspenda vm-ul la pornire
până când se conectează cu succes la un front end de depanare. Dacă îl setați la
'n', împreună cu server=y, instruiește runtime-ului Mono să ruleze ca
normal, în timp ce se memorează în cache metadate pentru a le trimite către front-end-ul depanatorului
conexiune..

transport=nume_transport
Acesta este folosit pentru a specifica transportul pe care îl va folosi depanatorul
comunica. Trebuie specificat și în prezent necesită acest lucru
'dt_socket'.

--desktop
Configurați mașina virtuală pentru a fi mai potrivită pentru aplicațiile desktop.
În prezent, acest lucru setează sistemul GC să evite extinderea heap-ului cât mai mult posibil
în detrimentul încetinirii un pic colectarea gunoiului.

--full-aot
Acesta este un semnal experimental care indică runtime-ului Mono să nu genereze niciunul
cod în timpul execuției și depind exclusiv de codul generat din utilizarea mono
--aot=plin anterior. Acest lucru este util pentru platformele care nu permit dinamica
generarea codului. Observați că această caracteristică va anula execuția în timpul execuției dacă a
codepath în programul dvs. sau bibliotecile de clase ale lui Mono încearcă să genereze cod
dinamic. Ar trebui să testați software-ul în avans și să vă asigurați că nu o faceți
utilizați orice caracteristici dinamice.

--gc=boehm, --gc=sgen
Selectează motorul Garbage Collector pe care să-l folosească Mono, Boehm sau SGen. În prezent
acest lucru vă asigură doar că executați fie mono or mono-sgen comenzi.
Acest steag poate fi setat în MONO_ENV_OPTIONS variabilă de mediu pentru a forța toate
copilul dumneavoastră procesează să folosească un anumit tip de GC cu timpul de rulare Mono.

--Ajutor, -h
Afișează instrucțiuni de utilizare.

--llvm Dacă runtime-ul Mono a fost compilat cu suport LLVM (nu este disponibil în toate
configurații), Mono va folosi optimizarea LLVM și motorul de generare de cod pentru
Compilarea JIT sau AOT. Pentru mai multe informatii, consultati: http://www.mono-
project.com/docs/advanced/mono-llvm/

--nollvm
Când utilizați un Mono care a fost compilat cu suport LLVM, îl forțează pe Mono
reveniți la motorul său JIT și nu utilizați backend-ul LLVM.

--optimize=MOD, -O=MOD
MODE este o listă de optimizări separate prin virgulă. Ele permit, de asemenea, optimizări să
fi dezactivat prin prefixarea numelui de optimizare cu semnul minus. În general,
Mono a fost reglat pentru a utiliza setul implicit de steaguri, înainte de a folosi aceste steaguri pentru a
setare de implementare, poate doriți să măsurați efectiv beneficiile utilizării acestora.
Următoarele steaguri de optimizare sunt implementate în motorul de bază:
abcrem Array bound verifică eliminarea
all Activați toate optimizările
aot Utilizarea codului compilat înainte de timp
Optimizări de ramură
cfold Pliere constantă
cmov Mișcări condiționate [arh-dependency]
deadce Eliminarea codului mort
consprop Propagare constanta
copyprop Propagarea copiei
fcmov Fast x86 FP compară [arh-dependency]
float32 Efectuați aritmetică flotant pe 32 de biți folosind operații pe 32 de biți
gshared Activați partajarea codului generic.
inline Apeluri de metodă inline
intrinse Implementări metode intrinseci
liniare Scanare liniară alocare reg globală
leaf Leaf optimizări proceduri
loop Optimizări legate de buclă
vizor de vizor de vizor postpass
precomp Precompilați toate metodele înainte de a executa Main
programat Programarea instrucțiunilor
partajat Emite cod pe domeniu
Instrucțiuni sse2 SSE2 pe x86 [arch-dependency]
tailc Tail recursive și tail calls
De exemplu, pentru a activa toată optimizarea, cu excepția eliminării codului mort și a inlinerii,
poți să folosești:
-O=toate,-deadce,-inline
Steagurile care sunt marcate cu [arch-dependency] indică faptul că opțiunea dată dacă
utilizat în combinație cu compilarea Ahead of Time (--aot flag) ar produce pre-
cod compilat care va depinde de procesorul curent și s-ar putea să nu fie mutat în siguranță
alt computer.

Sunt acceptate următoarele optimizări

plutitor32
Solicită ca runtime să efectueze operațiuni cu virgulă mobilă pe 32 de biți folosind
doar 32 de biți. Implicit, timpul de rulare Mono încearcă să folosească cel mai mare
precizie disponibilă pentru operațiuni cu virgulă mobilă, dar în timp ce acest lucru ar putea
oferi rezultate mai bune, codul ar putea rula mai lent. De asemenea, această opțiune
afectează codul generat de backend-ul LLVM.

inline Controlează dacă runtime-ul ar trebui să încerce să se integreze (prestabilit) sau nu
invocari de metode inline

--runtime=VERSIUNE
Mono acceptă diferite versiuni de rulare. Versiunea folosită depinde de program
care este rulat sau în fișierul său de configurare (numit program.exe.config). Acest
opțiunea poate fi utilizată pentru a suprascrie o astfel de autodetecție, forțând un alt timp de rulare
versiunea de utilizat. Rețineți că aceasta ar trebui folosită numai pentru a selecta un compatibil ulterioară
versiunea runtime decât cea pentru care a fost compilat programul. O utilizare tipică este
pentru rularea unui program 1.1 pe o versiune 2.0:
mono --runtime=v2.0.50727 program.exe

--Securitate, --security=mod
Activați managerul de securitate, o funcție experimentală în prezent în Mono și este
OFF implicit. Noul verificator de cod poate fi activat și cu această opțiune.

Utilizarea securității fără parametri este echivalentă cu apelarea acesteia cu „cas”
parametru.

Sunt acceptate următoarele moduri:

core-clr
Activează sistemul de securitate core-clr, folosit de obicei pentru
Aplicații Moonlight/Silverlight. Oferă o securitate mult mai simplă
sistem decât CAS, vezi http://www.mono-project.com/docs/web/moonlight/ pentru
mai multe detalii și link-uri către descrierile acestui nou sistem.

validil
Activează noul verificator și efectuează verificarea de bază pentru validitatea codului.
În acest mod, codul nesigur și P/Invoke sunt permise. Acest mod oferă o
garanție de siguranță mai bună, dar este încă posibil ca codul gestionat să se blocheze
Mono.

verificabil
Activează noul verificator și efectuează verificarea completă a codului
executat. Permite doar executarea unui cod verificabil. Codul nesigur este
nu este permis, dar P/Invoke este. Acest mod nu ar trebui să permită codului gestionat
crash mono. Verificarea nu este la fel de strictă ca standardul ECMA 335 în ordine
pentru a rămâne compatibil cu MS runtime.

Sistemul de securitate acționează pe codul utilizatorului: cod conținut în mscorlib sau global
cache-ul de asamblare este întotdeauna de încredere.

--Server
Configurați mașina virtuală pentru a fi mai potrivită pentru operațiunile de server
(în prezent, permite o inițializare mai grea a grupului de fire).

--verifică-toate
Verifică mscorlib și ansamblurile din memoria cache globală de asamblare pentru IL valid și toate
cod de utilizator pentru verificarea IL.

Acest lucru este diferit de --Securitateeste verificabil sau valid prin faptul că aceste opțiuni
verificați doar codul utilizatorului și omiteți mscorlib și ansamblurile situate pe global
cache de asamblare.

-V, --versiune
Imprimă informații despre versiunea JIT (configurația sistemului, numărul de ediție și ramura
nume, dacă sunt disponibile).

DEZVOLTARE OPŢIUNI


Următoarele opțiuni sunt folosite pentru a ajuta la dezvoltarea unei aplicații JITed.

--depanare, --debug=OPȚIUNI
Activează modul de depanare în timpul de execuție. Dacă un ansamblu a fost compilat cu
informații de depanare, va produce informații despre numărul de linie pentru urmele stivei.

Argumentul opțional OPȚIUNI este o listă de opțiuni de depanare separate prin virgulă.
Aceste opțiuni sunt dezactivate implicit, deoarece generează mult mai mari și mai lent
cod în timpul rulării.

Sunt acceptate următoarele opțiuni:

distribuții Produce o eroare detaliată când se aruncă o excepție InvalidCastException. Acest
opțiunea trebuie să fie activată, deoarece aceasta generează cod mai detaliat la execuție
timp.

optimizări mdb
Dezactivați unele optimizări JIT, care de obicei sunt dezactivate numai atunci când rulează
în interiorul depanatorului. Acest lucru poate fi util dacă doriți să vă atașați la
rulează procesul cu mdb.

gDB Generați și înregistrați informații de depanare cu gdb. Acest lucru este doar acceptat
pe unele platforme și numai atunci când utilizați gdb 7.0 sau o versiune ulterioară.

--profile[=profiler[:profiler_args]]
Activează profilarea. Pentru mai multe informații despre aplicațiile de profilare și cod
acoperire vezi secțiunile „PROFILARE” și „ACOPERARE COD” de mai jos.

Această opțiune poate fi folosită de mai multe ori, de fiecare dată se va încărca un
profiler suplimentar. Acest lucru permite dezvoltatorilor să utilizeze module care extind JIT
prin interfața de profilare Mono.

--trace[=expresie]
Afișează numele metodelor pe măsură ce sunt invocate. În mod implicit, toate metodele sunt urmărite. The
Urmărirea poate fi personalizată pentru a include sau exclude metode, clase sau ansambluri. A
expresia de urmărire este o listă de ținte separată prin virgulă, fiecare țintă poate fi prefixată
cu un semn minus pentru a opri o anumită țintă. Cuvintele „program”, „toate” și
„cu handicap” au o semnificație specială. „program” se referă la programul principal fiind
executat, iar „toate” înseamnă toate apelurile de metodă. Opțiunea `disabled' este folosită pentru
porniți cu urmărirea dezactivată. Acesta poate fi activat la un moment ulterior în timp în
program prin trimiterea semnalului SIGUSR2 la runtime. Ansamblurile sunt specificate de
numele lor, de exemplu, pentru a urmări toate apelurile din ansamblul System, utilizați:

mono --trace=System app.exe

Clasele sunt specificate cu prefixul T:. De exemplu, pentru a urmări toate apelurile către
Clasa System.String, utilizați:

mono --trace=T:System.String app.exe

Și metodele individuale sunt referite cu prefixul M: și metoda standard
notaţie:

mono --trace=M:System.Console:WriteLine app.exe

Excepțiile pot fi, de asemenea, urmărite, aceasta va face ca o urmă de stivă să fie tipărită de fiecare dată
se aruncă o excepție de tipul specificat. Tipul de excepție poate fi specificat
cu sau fără spațiul de nume și pentru a urmări toate excepțiile, specificați „toate” drept
nume de tip.

mono --trace=E:System.Exception app.exe

După cum sa menționat anterior, diferite reguli pot fi specificate simultan:

mono --trace=T:System.String, T:System.Random app.exe

Puteți exclude bucăți, următorul exemplu urmărește apelurile către System.String, cu excepția
metoda System.String:Concat.

mono --trace=T:System.String,-M:System.String:Concat

Puteți urmări tranzițiile gestionate la negestionate folosind calificativul wrapper:

mono --trace=wrapper app.exe

În cele din urmă, spațiile de nume pot fi specificate folosind prefixul N::

mono --trace=N:System.Xml

--no-x86-stack-align
Nu aliniați cadrele stive pe arhitectura x86. În mod implicit, Mono aliniază stiva
cadre la 16 octeți pe x86, astfel încât variabilele locale în virgulă mobilă și SIMD pot fi
aliniat corespunzător. Această opțiune dezactivează alinierea, care de obicei salvează una
instrucțiuni per apel, dar ar putea duce la o virgulă mobilă semnificativ mai mică și
Performanță SIMD.

--jitmap
Generați o hartă a metodei JIT într-un fișier /tmp/perf-PID.map. Acest fișier este apoi folosit, pentru
de exemplu, de instrumentul perf inclus în nucleele Linux recente. Fiecare linie din fișier
are:

HEXADDR HEXSIZE nume metoda

În prezent, această opțiune este acceptată numai pe Linux.

JIT INTRETINERE OPŢIUNI


Opțiunile de întreținere sunt folosite doar de cei care dezvoltă runtime-ul în sine, și nu
de obicei de interes pentru utilizatorii sau dezvoltatorii runtime.

--pauză metodă
Inserează un punct de întrerupere înaintea metodei al cărei nume este „metodă”
(namespace.class:methodname). Utilizați „Main” ca nume de metodă pentru a insera un punct de întrerupere
metoda principală a aplicației. Îl poți folosi și cu generice, de exemplu
„Sistem.Colecții.Generic.Queue`1: Peek”

--breakonex
Inserează un punct de întrerupere pentru excepții. Acest lucru vă permite să vă depanați aplicația cu
un depanator nativ atunci când este aruncată o excepție.

--compila nume
Aceasta compilează o metodă (namespace.name:methodname), aceasta este folosită pentru testarea
performanța compilatorului sau pentru a examina rezultatul generatorului de cod.

--compileall
Compilează toate metodele dintr-un ansamblu. Acesta este folosit pentru a testa compilatorul
performanța sau pentru a examina rezultatul generatorului de cod

--graph=TIP METODA
Acest lucru generează un fișier postscript cu un grafic cu detalii despre cele specificate
metoda (namespace.name:methodname). Acest lucru necesită „punct” și vizualizarea fantomă
instalat (se așteaptă ca Ghostview să fie numit „gv”). Următoarele grafice sunt
disponibil:
cfg Graficul fluxului de control (CFG)
dtree Dominator Tree
cod CFG care arată codul
ssa CFG care arată codul după traducerea SSA
optcode CFG care arată codul după optimizări IR
Unele grafice vor fi disponibile numai dacă anumite optimizări sunt activate.

--ncompile
Instruiți runtime-ului de câte ori metoda specificată de --compile
(sau toate metodele dacă este folosit --compileall) să fie compilat. Acesta este folosit pentru
testarea performanței generatorului de cod.

--statistici
Afișează informații despre munca efectuată de runtime în timpul execuției unui
aplicație.

--wapi=hps|semdel
Efectuați întreținerea procesului de date partajate. semdel va șterge global
semafor. hps va enumera mânerele utilizate în prezent.

-v, --verbos
Mărește nivelul de verbozitate, de fiecare dată când este listat, crește gradul de verbozitate
nivel pentru a include mai multe informații (inclusiv, de exemplu, o dezasamblare a
cod nativ produs, informații despre selector de cod etc.).

ATASAȚI SUPORT


Runtime-ul Mono permite proceselor externe să se atașeze la un proces care rulează și să se încarce
ansambluri în programul care rulează. Pentru a se atașa la proces, un protocol special este
implementat în ansamblul Mono.Management.

Cu acest suport este posibilă încărcarea ansamblurilor care au un punct de intrare (sunt
creat cu -target:exe sau -target:winexe) pentru a fi încărcat și executat în procesul Mono.

Codul este încărcat în domeniul rădăcină și începe execuția în timpul de execuție special
atașați firul. Programul atașat ar trebui să-și creeze propriile fire și să revină după
invocare.

Acest suport permite, de exemplu, depanarea aplicațiilor prin atașarea shell-ului csharp
la rularea proceselor.

PROFILARE


Runtime mono include un profiler care poate fi folosit pentru a explora diverse performanțe
probleme legate de aplicația dvs. Profiler este activat prin trecerea --profile
Argumentul liniei de comandă pentru rularea Mono, formatul este:

--profile[=profiler[:profiler_args]]

Mono are un profiler încorporat numit „implicit” (și este, de asemenea, implicit dacă nu există argumente
specificat), dar dezvoltatorii pot scrie profile personalizate, vezi secțiunea „PROFILER PERSONALIZAT”
pentru mai multe detalii.

În cazul în care o Profiler nu este specificat, este utilizat profilerul implicit. The profiler_args este
șir de opțiuni specifice pentru profiler pentru profiler însuși. Profilul implicit acceptă
următoarele opțiuni „alocați” la consumul de memorie de profil de către aplicație; 'timp pentru
profilați timpul petrecut pentru fiecare rutină; „jit” pentru a colecta timpul petrecut metodelor de compilare JIT
și „stat” pentru a efectua profilarea statistică a eșantionului. Dacă nu sunt oferite opțiuni,
implicit este „alloc,time,jit”.

În mod implicit, datele profilului sunt tipărite în stdout: pentru a schimba acest lucru, utilizați „fișier=nume fișier”
opțiunea de a scoate datele în nume de fișier. De exemplu:

mono --profile program.exe

Acesta va rula programul cu profilerul implicit și va face timpul și alocarea
profilare.

mono --profile=default:stat,alloc,file=prof.out program.exe

Va face eșantion de profilare statistică și profilare de alocare pe program.exe. Profilul
datele sunt introduse în prof.out. Rețineți că profilerul statistic are o suprasarcină foarte mică și
ar trebui să fie profilerul preferat de utilizat (pentru o ieșire mai bună, utilizați calea completă către mono
binar atunci când rulați și asigurați-vă că ați instalat utilitarul addr2line care vine de la
pachetul binutils).

LOG PROFILER


Acesta este cel mai avansat profiler.

Mono log Profiler poate fi folosit pentru a colecta o mulțime de informații despre un program care rulează
în timpul de rulare Mono. Aceste date pot fi utilizate (atât în ​​timpul procesului, cât și mai târziu)
pentru a face analize ale comportamentului programului, a determina utilizarea resurselor, probleme de performanță sau
căutați chiar modele de execuție specifice.

Acest lucru se realizează prin înregistrarea evenimentelor furnizate de runtime Mono prin intermediul
interfață de profilare și scrierea periodică a acestora într-un fișier care poate fi inspectat ulterior
cu mprof-raport(1) unealtă.

Mai multe informații despre modul de utilizare a jurnalului de profil sunt disponibile pe site-ul mprof-raport(1)
.

PERSONALIZAT PROFILERI


Mono oferă un mecanism pentru încărcarea altor module de profilare care sub formă de partajat
biblioteci. Aceste module de profilare se pot conecta la diferite părți ale rulării Mono la
adună informații despre codul care se execută.

Pentru a utiliza un profiler terță parte, trebuie să transmiteți numele profilului lui Mono, astfel:

mono --profile=program personalizat.exe

În exemplul de mai sus, Mono va încărca profilerul definit de utilizator din biblioteca partajată
`mono-profiler-custom.so'. Acest modul de profiler trebuie să fie în biblioteca dvs. de linker dinamic
cale.

O listă cu alți profileri terți este disponibilă pe site-ul web al Mono (www.mono-
project.com/docs/advanced/performance-tips/)

Profilurile personalizate sunt scrise ca biblioteci partajate. Biblioteca partajată trebuie să fie numită „mono-
profiler-NAME.so' unde `NAME' este numele profilerului dvs.

Pentru o mostră despre cum să scrieți propriul profiler personalizat, uitați-vă în arborele sursă Mono pentru in
eșantioanele/profilerul.c.

COD ACOPERIRE


Mono este livrat cu un modul de acoperire a codului. Acest modul este activat prin utilizarea Mono
--profile=cov opțiunea. Formatul este: --profile=cov[:nume-asamblare[/namespace]] Test-
suite.exe

În mod implicit, acoperirea codului va fi implicită pentru toate ansamblurile încărcate, puteți limita acest lucru prin
specificând numele ansamblului, de exemplu pentru a efectua acoperirea codului în rutinele dvs
utilizarea programului, de exemplu următoarea linie de comandă limitează acoperirea codului la rutine
în ansamblul „demo”:

mono --profile=cov:demo demo.exe

Observați că nume-asamblare nu include extensia.

Puteți restricționa și mai mult ieșirea acoperirii codului specificând un spațiu de nume:

mono --profile=cov:demo/My.Utilities demo.exe

Care va efectua doar acoperirea codului în ansamblul și spațiul de nume date.

Ieșirea tipică arată astfel:

Nu este acoperit: Clasa:.ctor ()
Nu este acoperit: Clasa:A ()
Nu este acoperit: Driver:.ctor ()
Nu este acoperit: Driver:metoda ()
Acoperire parțială: Driver:Main ()
offset 0x000a

Decalajele afișate sunt decalaje IL.

Un instrument de acoperire mai puternic este disponibil în modulul „monocov”. Vezi monocov(1)
pagina de manual pentru detalii.

DEBUGARE SIDA


Pentru a depana aplicațiile gestionate, puteți utiliza mdb comandă, un depanator de linie de comandă.

Este posibil să obțineți o urmă de stivă a tuturor firelor active în Mono prin trimiterea
QUIT semnal către Mono, puteți face acest lucru din linia de comandă, astfel:

kill -QUIT pid

Unde pid este ID-ul procesului al procesului Mono pe care doriți să îl examinați. Procesul va
continuă să ruleze ulterior, dar starea acestuia nu este garantată.

Important: acesta este un mecanism de ultimă soluție pentru depanarea aplicațiilor și nu ar trebui să fie
utilizat pentru monitorizarea sau sondarea unei aplicații de producție. Integritatea runtime după
trimiterea acestui semnal nu este garantată, iar aplicația se poate bloca sau se poate opri în orice moment
punct dat ulterior.

--debug=casts opțiunea poate fi folosită pentru a obține informații mai detaliate pentru Cast invalid
operațiuni, va oferi informații despre tipurile implicate.

Puteți utiliza variabilele de mediu MONO_LOG_LEVEL și MONO_LOG_MASK pentru a obține detalii
ieșire de depanare despre execuția aplicației dvs. în Mono.

MONO_LOG_LEVEL variabilă de mediu dacă este setată, nivelul de înregistrare este schimbat în setat
valoare. Valorile posibile sunt „eroare”, „critică”, „avertizare”, „mesaj”, „informații”, „depanare”. The
valoarea implicită este „eroare”. Mesaje cu un nivel de înregistrare mai mare sau egal cu jurnalul
nivelul va fi tipărit în stdout/stderr.

Utilizați „informații” pentru a urmări încărcarea dinamică a ansamblurilor.

Folosește MONO_LOG_MASK variabilă de mediu pentru a limita amploarea mesajelor pe care le primiți: Dacă
setată, masca de jurnal este schimbată la valoarea setată. Valorile posibile sunt „asm” (asamblare
încărcător), „tip”, „dll” (încărcător de bibliotecă nativ), „gc” (colector de gunoi), „cfg” (config.
încărcător de fișiere), „aot” (precompilator), „securitate” (de exemplu, suport Moonlight CoreCLR) și „toate”.
Valoarea implicită este „toate”. Modificarea valorii măștii vă permite să afișați numai mesaje
pentru o anumită componentă. Puteți folosi mai multe măști, separându-le prin virgulă. De exemplu
pentru a vedea mesajele fișierelor de configurare și mesajele de încărcare de asamblare setați mascați la „asm,cfg”.

Următoarea este o utilizare comună pentru a identifica problemele cu P/Invoke:

$ MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono glue.exe

DEBUGARE CU LLDB


Dacă utilizați LLDB, puteți utiliza mono.py script pentru a tipări unele date interne
structuri cu acesta. Pentru a utiliza acest lucru, adăugați-l la dvs $HOME/.lldbinit fișier:
script de comandă import $PREFIX/lib/mono/lldb/mono.py

Unde $PREFIX este valoarea prefixului pe care ați folosit-o când ați configurat Mono (de obicei / usr).

Odată ce ați făcut acest lucru, puteți inspecta unele structuri de date Mono Runtime, de exemplu:
(lldb) metoda p

(MonoMethod *) $0 = 0x05026ac0 [mscorlib]System.OutOfMemoryException:.ctor()

SERIALIZAREA


Motorul de serializare XML al Mono va folosi în mod implicit o abordare bazată pe reflectare
serializați care ar putea fi lenți pentru procesare continuă (aplicații de servicii web). The
Motorul de serializare va determina când o clasă trebuie să folosească un serializator reglat manual pe baza
câțiva parametri și, dacă este necesar, va produce un serializator C# personalizat pentru tipurile dvs
în timpul rulării. Acest serializator personalizat este apoi încărcat dinamic în dvs
aplicație.

Puteți controla acest lucru cu variabila de mediu MONO_XMLSERIALIZER_THS.

Valorile posibile sunt `nu' pentru a dezactiva utilizarea unui serializator personalizat C# sau a unui
întreg care este numărul minim de utilizări înainte ca timpul de execuție să producă o personalizare
serializator (0 va produce un serializator personalizat la primul acces, 50 va produce a
serializator la a 50-a utilizare). Mono va reveni la un serializator interpretat dacă
generarea serializatorului eșuează cumva. Acest comportament poate fi dezactivat prin setarea opțiunii
„nofallback” (de exemplu: MONO_XMLSERIALIZER_THS=0,nofallback).

MEDIUL VARIABILE


GC_DONT_GC
Dezactivează colectarea gunoiului în Mono. Acesta ar trebui să fie folosit numai pentru depanare
scopuri

LVM_COUNT
Când Mono este compilat cu suport LLVM, acesta indică runtime-ului să nu mai folosească
LLVM după ce numărul specificat de metode sunt JIT. Acesta este un instrument folosit în
diagnosticare pentru a ajuta la izolarea problemelor din backend-ul de generare a codului. De exemplu
LLVM_COUNT=10 ar compila doar 10 metode cu LLVM și apoi ar trece la Mono
motor JIT. LLVM_COUNT=0 ar dezactiva motorul LLVM cu totul.

MONO_AOT_CACHE
Dacă este setată, această variabilă îi va instrui pe Mono să compileze în avans noile ansambluri
solicitați și stocați rezultatul într-un cache în ~/.mono/aot-cache.

MONO_ASPNET_INHIBIT_SETTINGSMAP
Mono conține o caracteristică care permite modificarea setărilor din fișierele .config
livrat cu Mono prin utilizarea maperilor de secțiuni de configurare. Cartografii și cartografierea
regulile sunt definite în fișierul $prefix/etc/mono/2.0/settings.map și, opțional, în
fișierul settings.map găsit în directorul de nivel superior al aplicației dvs. ASP.NET.
Ambele fișiere sunt citite de System.Web la pornirea aplicației, dacă sunt găsite la
mai sus locații. Dacă nu doriți ca maparea să fie efectuată, puteți seta acest lucru
variabilă în mediul dumneavoastră înainte de a porni aplicația și nu va fi nicio acțiune
luate.

MONO_ASPNET_WEBCONFIG_CACHESIZE
Mono are un cache de obiecte ConfigSection pentru a accelera WebConfigurationManager
întrebări. Dimensiunea sa implicită este de 100 de elemente, iar când sunt necesare mai multe elemente, memorează cache
evacuările încep să aibă loc. Dacă evacuările sunt prea dese, acest lucru ar putea impune
overhead inutile, care ar putea fi evitat prin utilizarea acestei variabile de mediu pentru
configurați o dimensiune mai mare a memoriei cache (sau pentru a reduce cerințele de memorie prin scăderea acesteia).

MONO_CAIRO_DEBUG_DISPOSE
Dacă este setat, determină Mono.Cairo să colecteze urme de stivă atunci când obiectele sunt alocate, deci
că avertismentele de finalizare/Aruncare includ informații despre instanța
origine.

MONO_CFG_DIR
Dacă este setată, această variabilă înlocuiește directorul implicit de configurare a sistemului
($PREFIX/etc). Este folosit pentru a localiza fișierul machine.config.

MONO_COM
Setează stilul de interoperabilitate COM. Dacă valoarea acestei variabile este „MS”, Mono va folosi
rutine de marhsalling de șiruri din liboleaut32 pentru biblioteca de tip BSTR, oricare
alte valori vor folosi marshaling-ul de șiruri BSTR mono-încorporat.

MONO_CONFIG
Dacă este setată, această variabilă înlocuiește fișierul implicit de configurare a timpului de execuție
($PREFIX/etc/mono/config). Opțiunile de linie de comandă --config înlocuiesc
variabilă de mediu.

MONO_CPU_ARCH
Ignorați mecanismul automat de detectare a CPU. Momentan folosit doar pe brat. The
formatul valorii este următorul:

„armvV [degetul mare[2]]”

unde V este numărul arhitecturii 4, 5, 6, 7 și opțiunile pot fi în prezent
„degetul mare” sau „degetul mare2”. Exemplu:

MONO_CPU_ARCH="armv4 degetul mare" mono...

MONO_ARM_FORCE_SOFT_FLOAT
Când Mono este construit cu un soft float fallback pe ARM și această variabilă este setată la
„1”, Mono va emite întotdeauna cod float soft, chiar dacă este detectată o unitate VFP.

MONO_DISABLE_AIO
Dacă este setat, îi spune mono să NU încerce să utilizeze servicii I/O asincrone native. In aceea
caz, se folosește o implementare implicită de selecție/sondare. În prezent, doar epoll() este
sprijinit.

MONO_DISABLE_MANAGED_COLLATION
Dacă această variabilă de mediu este „da”, timpul de execuție folosește colaționarea negestionată (care
înseamnă de fapt nicio colare sensibilă la cultură). Dezactivează intern gestionat
funcționalitatea de colare invocată prin intermediul membrilor System.Globalization.CompareInfo
clasă. Colaţionarea este activată în mod implicit.

MONO_DISABLE_SHM
Numai Unix: dacă este setat, dezactivează fișierele de memorie partajată utilizate pentru handle-uri între procese:
procesul are doar handle private. Aceasta înseamnă că mânerele de proces și fire sunt
nu este disponibil pentru alte procese și mutexuri numite, evenimente denumite și numite
semaforele nu sunt vizibile între procese. Acest lucru poate fi activat și de
implicit prin trecerea opțiunii „--disable-shared-handles” de configurat. Acesta este
implicit de la mono 2.8 în sus.

MONO_DISABLE_SHARED_AREA
Numai Unix: dacă este setat, dezactivați utilizarea memoriei partajate pentru expunerea performanței
contoare. Aceasta înseamnă că nu va fi posibilă citirea externă a performanței
contoare din aceste procese sau citiți cele ale proceselor externe.

MONO_DNS
Când este setat, permite utilizarea unui rezolutor DNS complet gestionat în locul celui obișnuit
funcții libc. Acest rezolutor funcționează mult mai bine atunci când sunt executate mai multe interogări
paralel.

Rețineți că /etc/nsswitch.conf va fi ignorat.

MONO_EGD_SOCKET
Pentru platformele care altfel nu au o modalitate de a obține octeți aleatori, acest lucru poate
fi setat la numele unui socket de sistem de fișiere pe care se află un daemon egd sau prngd
ascultare.

MONO_ENABLE_SHM
Numai Unix: activați suportul pentru handle-uri între procese. Mânerele de proces încrucișat sunt
folosit pentru a expune mânerele de proces, mânerele thread-urilor, mutexurile numite, evenimentele numite și
semafoare numite în procesele Unix.

MONO_ENV_OPTIONS
Această variabilă de mediu vă permite să transmiteți argumente de linie de comandă unui Mono
proces prin mediu. Acest lucru este util, de exemplu, pentru a forța tot
Mono procesează pentru a utiliza LLVM sau SGEN fără a fi nevoie să modifice niciun script de lansare.

MONO_ENV_OPTIONS
Folosit pentru a transmite opțiuni suplimentare agentului de depanare în timpul de execuție, așa cum erau
transmis folosind --debugger-agent=.

MONO_EVENTLOG_TYPE
Setează tipul de furnizor de jurnal de evenimente de utilizat (pentru System.Diagnostics.EventLog).
Valorile posibile sunt:

local[:cale]
Persiste jurnalele de evenimente și intrările în sistemul de fișiere local. Directorul în
care să persistă jurnalele de evenimente, sursele de evenimente și intrările pot fi specificate
ca parte a valorii. Dacă calea nu este setată în mod explicit, aceasta este implicită
„/var/lib/mono/eventlog” pe Unix și „%APPDATA%no\ventlog” pe Windows.

win32 Utilizeaza il nativ win32 API la scrie evenimente si registre eveniment busteni si eveniment
surse din registru. Acesta este disponibil numai pe Windows. Pe Unix,
permisiunea de director pentru jurnalul de evenimente individual și directoarele sursă de evenimente
este setat la 777 (cu +t bit) permițând tuturor să citească și să scrie jurnalul de evenimente
intrări, permițând în același timp doar ștergerea intrărilor de către utilizator(i) care
le-a creat.

zero Înlătură în tăcere orice evenimente.

Valoarea implicită este „null” pe Unix (și versiunile de Windows înainte de NT) și „win32” pe
Windows NT (și superioare).

MONO_EXTERNAL_ENCODINGS
Dacă este setat, conține o listă de codificări de text, separate prin două puncte, pe care trebuie să le încercați la întoarcere
text generat extern (de exemplu, argumente de linie de comandă sau nume de fișiere) în Unicode.
Numele de codificare provin din lista oferită de iconv și din cazul special
„default_locale” care se referă la codificarea implicită a localului curent.

Când citiți șiruri de text generate extern, se încearcă mai întâi UTF-8, apoi aceasta
lista este încercată în ordine cu prima conversie reușită care încheie căutarea.
Când scrieți text extern (de exemplu, nume de fișiere noi sau argumente pentru procese noi)
este folosit primul element din această listă sau UTF-8 dacă variabila de mediu nu este setată.

Problema cu utilizarea MONO_EXTERNAL_ENCODINGS pentru a vă procesa fișierele este că aceasta
duce la o problemă: deși este posibil să obțineți numele corect al fișierului, nu este
neapărat posibil să deschideți fișierul. In general daca ai probleme cu
codificări în numele fișierelor ar trebui să utilizați programul „convmv”.

MONO_GC_PARAMS
Când utilizați Mono cu colectorul de gunoi SGen, această variabilă controlează mai multe
parametrii colectorului. Valoarea variabilei este o listă separată prin virgulă
cuvinte.

marimea-pepiniera=mărimea
Stabilește dimensiunea creșei. Mărimea este specificată în octeți și trebuie să fie a
puterea a doi. Sufixele „k”, „m” și „g” pot fi folosite pentru a specifica kilo-,
mega- și respectiv gigaocteți. Pepiniera este prima generație (de
Două). O creșă mai mare va accelera de obicei programul, dar evident că va accelera
folosește mai multă memorie. Dimensiunea implicită a creșei este de 4 MB.

major=colector Specifică ce colector major să folosești.
Opțiunile sunt „marksweep” pentru colectorul Mark&Sweep și „marksweep-conc”
pentru Mark&Sweep concomitent. Colectorul Mark&Sweep non-concurent este
Mod implicit.

soft-heap-limit=mărimea
Odată ce dimensiunea heap-ului devine mai mare decât această dimensiune, ignorați care este valoarea majoră implicită
Valoarea declanșatorului de colectare spune și permite doar patru marimi de pepinieră majore
creșterea aglomerației între colecțiile majore.

prag-evacuare=prag
Setează pragul de evacuare în procente. Această opțiune este disponibilă numai pe
marii colecționari Mark&Sweep. Valoarea trebuie să fie un număr întreg în interval
De la 0 la 100. Valoarea implicită este 66. Dacă faza de măturare a colecției găsește
că ocuparea unui anumit tip de bloc heap este mai mică decât aceasta
procent, va face o colectare de copiere pentru acel tip de bloc în următorul
colectare majoră, restabilind astfel gradul de ocupare la aproape 100%. A
valoarea 0 dezactivează evacuarea.

(fără-)leneș-măturare
Activează sau dezactivează măturarea leneră pentru colectorul Mark&Sweep. Dacă este activat,
măturarea blocurilor individuale majore de grămadă se face pe bucată ori de câte ori
necesitatea apare, de obicei în timpul colecțiilor de pepinieră. Măturarea leneșă este activată
în mod implicit.

(fără-)măturare concomitentă
Activează sau dezactivează măturarea simultană pentru colectorul Mark&Sweep. Dacă
activată, iterația tuturor blocurilor majore pentru a determina care pot fi
eliberate și care trebuie păstrate și măturate, se face concomitent cu
programul care rulează. Măturarea simultană este activată în mod implicit.

stack-mark=mod de marcare
Specifică modul în care trebuie scanate firele de execuție ale aplicației. Opțiunile sunt „precise”.
și `conservator`. Marcarea precisă permite colecționarului să știe ce valori
pe stivă sunt referințe și ce nu sunt. Marcajul conservator amenință pe toți
valorile ca potenţiale referinţe şi lăsaţi-le neatinse. Marcare precisă
reduce gunoiul plutitor și poate accelera colectarea și alocarea creșei
rata, are dezavantajul de a necesita o memorie suplimentară semnificativă per
metoda compilata. Opțiunea corectă, din păcate, necesită experimentare.

salvare-tinta-raport=raport
Specifică raportul de salvare țintă pentru colectorul principal. Colectionarul lasa
o anumită cantitate de memorie să fie promovată de la creșă din cauza minorului
colecții înainte de a declanșa o colecție majoră. Această sumă se bazează pe
câtă memorie se așteaptă să elibereze. Este reprezentat ca raport al mărimii
a mormanului după o colectare majoră. Valorile valide sunt între 0.1 și 2.0.
Valoarea implicită este 0.5. Valorile mai mici vor menține dimensiunea heap-ului principal mai mică
dar va declanșa mai multe colecții majore. De asemenea, se vor folosi valori mai mari
mai multă memorie și rezultă în colecții majore mai puțin frecvente. Această opțiune este
EXPERIMENTAL, deci ar putea dispărea în versiunile ulterioare de mono.

default-allowance-raport=raport
Specifică alocația implicită de alocare atunci când dimensiunea calculată este de asemenea
mic. Alocația de alocare este câtă memorie lasă colectorul
promovat înainte a declanșat o colecție majoră. Este un raport al creșei
mărimea. Valorile valide sunt între 1.0 și 10.0. Valoarea implicită este 4.0. Mai mic
valorile conduc la grămezi mai mici și la colecții majore mai frecvente. De asemenea,
valori mai mari vor permite heap-ului să crească mai repede, dar vor folosi mai multă memorie atunci
ajunge la o dimensiune stabilă. Această opțiune este EXPERIMENTALĂ, așa că ar putea dispărea
în versiunile ulterioare de mono.

minor=colecționar minor
Specifică ce colector minor să folosești. Opțiunile sunt „simple”, ceea ce promovează
toate obiectele de la creșă direct la vechea generație și „despărțite”
care lasă obiectul să rămână mai mult timp pe creșă înainte de promovare.

aloc-raport=raport
Specifică raportul de memorie din creșă care va fi utilizat de spațiul alocat.
Acesta poate fi folosit numai cu colectorul minor divizat. Valorile valide sunt
numere întregi între 1 și 100. Implicit este 60.

varsta de promovare=vârstă
Specifică vârsta necesară pentru care un obiect trebuie să ajungă în interiorul creșei înainte
a fost promovat la vechea generație. Acest lucru poate fi folosit numai cu
colecționar minor împărțit. Valorile valide sunt numere întregi între 1 și 14. Implicit
este 2.

(fără-)cimentare
Activează sau dezactivează cimentarea. Acest lucru poate scurta dramatic pepiniera
timpii de colectare pe unele repere unde se face referire la obiectele fixate
din grămada majoră.

MONO_GC_DEBUG
Când utilizați Mono cu colectorul de gunoi SGen, această variabilă de mediu poate fi
folosit pentru a activa diverse funcții de depanare ale colectorului. Valoarea acestui lucru
variabila este o listă de cuvinte separate prin virgulă. Nu utilizați aceste opțiuni în
de producţie.

număr Setează nivelul de depanare la numărul specificat.

alocație de imprimare
După fiecare colecție majoră se imprimă consumul de memorie pentru înainte și după
încasarea și indemnizația pentru colectorul minor, adică cât de mult
grămada este lăsată să crească din colecții minore înainte de următoarea majoră
colectarea este declanșată.

imprimare-pinning
Adună statistici privind clasele ale căror obiecte sunt fixate în creșă
și pentru care se adaugă intrări globale de resetare. Imprimă acele statistici când
închiderea.

colectează-înainte de alocări

verificare la încasări minore
Aceasta efectuează o verificare a coerenței colecțiilor minore și, de asemenea, șterge
pepinieră la momentul colectării, în loc de cea implicită, când sunt tampon
alocat (clear-at-gc). Verificarea coerenței asigură că nu există
referințe majore până la minore care nu sunt în seturile amintite.

mod-union-verificare-coerență
Verifică dacă tabelul de carduri mod-union este consistent înainte de fiecare finisare
pauză majoră de colectare. Această verificare este aplicabilă numai majorării concomitente
colecționari.

biți de bifă
Verificările care marchează biții în heap-ul major sunt consecvente la sfârșitul fiecăruia
colecție majoră. Biții de marcare consecvenți înseamnă că, dacă un obiect este marcat,
toate obiectele la care avea referiri trebuie de asemenea marcate.

cec-pepiniera-apins
După colectările de pepinieră și înainte de a începe colecțiile concomitente, verificați
dacă toate obiectele de pepinieră sunt fixate sau nu - în funcție de
context. Nu face nimic atunci când este folosit colectorul de pepinieră divizat.

xdomain-checks
Efectuează o verificare pentru a se asigura că nu sunt lăsate referințe pentru un descărcat
AppDomain.

clear-at-tlab-creation
Șterge creșa în mod incremental atunci când firul de execuție locală tamponează
(TLAB) sunt create. Setarea implicită șterge întreaga creșă la GC
timp.

debug-clear-la-crearea-tlab
Șterge creșa în mod incremental atunci când firul de execuție locală tamponează
(TLAB), dar la momentul GC îl umple cu octetul `0xff`, care
ar trebui să aibă ca rezultat o blocare mai rapidă dacă `clear-at-tlab-creation` nu o face
funcționeze corect.

clear-at-gc
Acest lucru șterge grădinița la ora GC în loc să o facă atunci când firul local
este creat un buffer de alocare (TLAB). Implicit este să curățați creșa la
Timpul de creare a TLAB.

dezactivare-minor
Nu face colecții minore. Dacă creșa este plină, o colecție majoră este
declanșat în schimb, cu excepția cazului în care este și el dezactivat.

dezactivare-major
Nu face colecții majore.

conservator-stiva-mark
Forțează GC să scaneze stiva în mod conservator, chiar dacă este o scanare precisă
disponibile.

fără-alocator-gestionat
Dezactivează alocatorul gestionat.

verificare-scanare-începe
Dacă este setat, face o verificare a plauzibilității pe scan_starts înainte și după fiecare
colectare

verifica-cresa-la-minor-gc
Dacă este setat, face o plimbare completă a obiectelor de pepinieră la începutul fiecărei
colecție minoră.

halda-cresa-la-minor-gc
Dacă este setat, aruncați conținutul creșei la începutul fiecărui minor
Colectie. Necesită setarea verifica-pepinieră-la-minor-gc.

heap-dump=fişier
Deversează conținutul heap-ului în fișierul specificat. Pentru a vizualiza
informații, utilizați instrumentul mono-heapviz.

binar-protocol=fişier
Emite rezultatul de depanare în fișierul specificat. Pentru ca asta să funcționeze, Mono
trebuie compilat cu definirea BINARY_PROTOCOL pe sgen-gc.c. Puteți
apoi utilizați această comandă pentru a explora rezultatul
sgen-grep-binprot 0x1234 0x5678 < fișier

pepiniera-canare
Dacă sunt setate, obiectele alocate în creșă sunt sufixate cu un canar (garda)
cuvânt, care este verificat pe fiecare colecție minoră. Poate fi folosit pentru a detecta/depana
probleme de corupție în grămada.

a-nu-finaliza
Dacă este activată, finalizatoarele nu vor fi rulate. Orice altceva nu va fi afectat:
obiectele finalizabile vor fi puse în continuare în coada de finalizare unde acestea
supraviețuiesc până când sunt programate să se finalizeze. Odată ce nu sunt la coadă
vor mai fi colectate în mod regulat.

jurnal-finalizatoare
Înregistrați-vă cu atenție în jurul procesului de finalizare pentru a ajuta depanarea.

MONO_GAC_PREFIX
Oferă un prefix pe care rularea îl folosește pentru a căuta cache-urile globale de asamblare. Directoare
sunt separate prin separatorul de cale a platformei (punctele pe Unix). MONO_GAC_PREFIX
ar trebui să indice directorul de sus al unei instalări prefixate. Sau la director
furnizate în comanda gacutil /gacdir. Exemplu:
/home/nume utilizator/.mono:/usr/local/mono/

MONO_IOMAP
Activează un anumit suport pentru rescrierea numelor de fișier pentru a ajuta aplicațiile scrise prost care
căile Windows codificate. Setați la o listă separată de două puncte de „unitate” pentru a elimina unitatea
litere, sau „case” pentru a face potrivirea fișierelor fără majuscule în fiecare director din a
cale. „toate” activează toate metodele de rescriere. (Barierele inverse sunt întotdeauna mapate la
bare oblice dacă această variabilă este setată la o opțiune validă).
De exemplu, aceasta ar funcționa din shell:

MONO_IOMAP=unitate:caz
exportați MONO_IOMAP

Dacă utilizați mod_mono pentru a găzdui aplicațiile dvs. web, puteți utiliza MonoIOMAP
directivă în schimb, așa:

MonoIOMAP toate

Vedea mod_mono(8) pentru mai multe detalii.

În plus. Mono include un modul de profiler care vă permite să urmăriți ce
ajustări ale căilor de fișiere pe care trebuie să le facă codul IOMAP. Codul de urmărire raportează
locație gestionată (full stack trace) de la care a fost efectuat apelul IOMAP-ed și, pe
ieșirea procesului, locațiile în care au fost create toate șirurile editate de IOMAP sunt gestionate
cod. Ultimul raport este doar aproximativ, deoarece nu este întotdeauna posibil
estimați locația reală în care a fost creat șirul. Codul folosește simplu
euristică - analizează traseul stivei care duce înapoi la locația de alocare a șirurilor
și ignoră tot codul gestionat care locuiește în ansambluri instalate și în GAC
la fel ca în bibliotecile de clasă livrate cu Mono (din moment ce se presupune că sunt lipsite de
probleme de sensibilitate la caz). Apoi raportează prima locație din codul utilizatorului -
în cele mai multe cazuri, acesta va fi locul unde este alocat șirul sau foarte aproape
locația. Codul de raportare este implementat ca un modul de profiler personalizat (vezi
secțiunea „PROFILARE”) și poate fi încărcat în felul următor:

mono --profile=iomap yourapplication.exe

Rețineți, totuși, că Mono acceptă în prezent doar un singur modul de profiler la un moment dat.

MONO_LLVM
Când Mono utilizează backend-ul de generare a codului LLVM, puteți utiliza acest mediu
variabilă pentru a transmite opțiunile de generare a codului compilatorului LLVM.

MONO_MANAGED_WATCHER
Dacă este setat la „dezactivat”, System.IO.FileSystemWatcher va folosi un monitor de fișiere
implementare care ignoră în tăcere toate solicitările de vizionare. Dacă este setat la oricare
altă valoare, System.IO.FileSystemWatcher va folosi implicit gestionat
implementare (lent). Dacă nu este setat, mono va încerca să folosească inotify, FAM, Gamin, kevent
sub sisteme Unix și apeluri API native pe Windows, revenind la cele gestionate
implementare în caz de eroare.

MONO_MESSAGING_PROVIDER
Mono acceptă un model de plugin pentru implementarea sistemului System.Messaging
posibil să suporte o varietate de implementări de mesagerie (de exemplu AMQP, ActiveMQ).
Pentru a specifica ce implementare a mesageriei va fi utilizată variabila evironement
trebuie setat la numele complet al clasei pentru furnizor. De exemplu, pentru a utiliza RabbitMQ
pe baza implementării AMQP, variabila trebuie setată la:

Mono.Messaging.RabbitMQ.RabbitMQMessagingProvider, Mono.Messaging.RabbitMQ

MONO_NO_SMP
Dacă este setată, procesul mono este legat de un singur procesor. Aceasta ar putea fi
util atunci când depanați sau lucrați în condiții de cursă.

MONO_NO_TLS
Dezactivați integrarea acceselor locale de fir. Încercați să setați acest lucru dacă aveți o eroare de seg
la începutul execuției mono.

MONO_PATH
Oferă o cale de căutare către timpul de execuție unde să căutați biblioteca
fișiere. Acesta este un instrument convenabil pentru depanarea aplicațiilor, dar
nu ar trebui să fie utilizat de aplicațiile implementate, deoarece rupe ansamblul
încărcător în moduri subtile.
Directoarele sunt separate prin separatorul de cale a platformei (punctele pe Unix). Exemplu:
/home/nume utilizator/lib:/usr/local/mono/lib
Căile relative sunt rezolvate pe baza directorului curent la momentul lansării.
Soluțiile alternative la MONO_PATH includ: instalarea bibliotecilor în
cache-ul global de asamblare (vezi gacutil(1)) sau având în întreținere
biblioteci alături de executabilul principal.
Pentru o descriere completă a practicilor recomandate pentru aplicare
desfășurare, vezi
http://www.mono-project.com/docs/getting-started/application-deployment/

MONO_RTC
Suport RTC experimental în profilerul statistic: dacă utilizatorul are
cu permisiunea, sunt adunate statistici mai precise. MONO_RTC
valoarea trebuie să fie limitată la ceea ce permite Linux rtc: puterea a doi
de la 64 la 8192 Hz. Pentru a activa frecvențe mai mari, cum ar fi 4096 Hz, rulați ca root:

echo 4096 > /proc/sys/dev/rtc/max-user-freq

De exemplu:

MONO_RTC=4096 mono --profiler=default:stat program.exe

MONO_SHARED_DIR
Dacă este setat, este directorul în care este stocată starea mânerului „.wapi”. Acesta este
directorul în care stratul Windows I/O Emulation stochează datele de stare partajate
(fișiere, evenimente, mutexuri, conducte). În mod implicit, Mono va stoca directorul „.wapi”.
în directorul principal al utilizatorilor.

MONO_SHARED_HOSTNAME
Folosește valoarea șirului acestei variabile ca înlocuitor pentru numele gazdei când
crearea de nume de fișiere în directorul „.wapi”. Acest lucru vă ajută dacă numele de gazdă al dvs
Este posibil ca mașina să fie schimbată atunci când rulează o aplicație mono sau dacă aveți o aplicație
Directorul .wapi partajat între mai multe computere diferite. Mono folosește de obicei
hostname pentru a crea fișierele care sunt folosite pentru a partaja starea în mai multe Mono
proceselor. Acest lucru se face pentru a sprijini directoarele de acasă care ar putea fi partajate prin
rețea.

MONO_STRICT_IO_EMULATION
Dacă este setat, se fac verificări suplimentare în timpul operațiunilor IO. În prezent, aceasta include numai
blocări de consiliere în jurul scrierilor de fișiere.

MONO_THEME
Numele temei care va fi folosită de Windows.Forms. Temele disponibile astăzi includ
„clearlooks”, „frumos” și „win32”. Valoarea implicită este „win32”.

MONO_TLS_SESSION_CACHE_TIMEOUT
Timpul, în secunde, pe care memoria cache a sesiunii SSL/TLS îl va păstra pentru a o evita
o nouă negociere între client și un server. Negocierea sunt foarte CPU
intensiv, astfel încât o valoare personalizată specifică aplicației se poate dovedi utilă pentru mici
sisteme integrate. Valoarea implicită este 180 de secunde.

MONO_THREADS_PER_CPU
Numărul minim de fire în pool-ul general de fire va fi
MONO_THREADS_PER_CPU * numărul de procesoare. Valoarea implicită pentru această variabilă este 1.

MONO_XMLSERIALIZER_THS
Controlează pragul pentru ca XmlSerializer să producă un serializator personalizat pentru a
clasă dată în loc de a utiliza interpretul bazat pe Reflecție. Valorile posibile
sunt „nu” pentru a dezactiva utilizarea unui serializator personalizat sau a unui număr pentru a indica când
XmlSerializer ar trebui să înceapă serializarea. Valoarea implicită este 50, ceea ce înseamnă că
un serializator personalizat va fi produs la a 50-a utilizare.

MONO_X509_REVOCATION_MODE
Setează modul de revocare utilizat la validarea unui lanț de certificate X509 (https,
ftps, smtps...). Valoarea implicită este „nocheck”, care nu efectuează nicio verificare de revocare la
toate. Celelalte valori posibile sunt „offline”, care efectuează verificarea CRL (nu
implementat încă) și „online”, care utilizează OCSP și CRL pentru a verifica revocarea
stare (neimplementat încă).

MEDIUL VARIABILE PENTRU DEBUGARE


MONO_ASPNET_NODELETE
Dacă se setează la orice valoare, fișierele sursă temporare generate de clasele de suport ASP.NET
nu vor fi eliminate. Acestea vor fi păstrate în directorul temporar al utilizatorului.

MONO_DEBUG
Dacă este setat, activează unele caracteristici ale runtime utile pentru depanare. Această variabilă
ar trebui să conțină o listă de opțiuni de depanare separate prin virgulă. În prezent, cel
sunt acceptate următoarele opțiuni:

break-on-neverificat
Dacă această variabilă este setată, când VM-ul Mono întâmpină o problemă de verificare,
în loc să arunce o excepție, va pătrunde în depanator. Aceasta este
util la depanarea problemelor de verificare

distribuții Această opțiune poate fi folosită pentru a obține informații mai detaliate de la InvalidCast
excepții, va oferi informații despre tipurile implicate.

colectare-pagefault-stats
Colectează informații despre erorile de pagină. Acesta este folosit intern pentru a urmări
numărul de erori de pagină produse pentru a încărca metadate. Pentru a afișa acest lucru
informații, trebuie să utilizați această opțiune cu opțiunea de linie de comandă „--stats”.

dont-domenii-libere
Aceasta este o optimizare pentru aplicații multi-AppDomain (cel mai frecvent
aplicații ASP.NET). Din cauza limitărilor interne Mono, Mono în mod implicit
nu folosește alocările tastate pe aplicațiile multi-appDomain așa cum ar putea
pierderea memoriei atunci când un domeniu este descărcat. Deși aceasta este o valoare implicită bună, pt
aplicații care folosesc mai mult decât pe AppDomain (de exemplu, ASP.NET
aplicații) merită să schimbăm micile scurgeri cu cele mai mari
performanță (în plus, deoarece aplicațiile ASP.NET nu vor funcționa probabil
pentru a descărca domeniile de aplicație pe sistemele de producție, merită folosit
această caracteristică).

dyn-runtime-invoke
Instruiește runtime-ului să încerce să folosească în schimb un wrapper generic runtime-invoke
de a crea un pachet de invocare.

gDB Echivalent cu setarea MONO_XDEBUG variabilă, aceasta emite simboluri în a
bibliotecă partajată, deoarece codul este JIT care poate fi încărcat în GDB pentru a fi inspectat
simboluri.

gen-seq-puncte
Generează automat puncte de secvență în care stiva IL este goală. Aceste
sunt locuri în care depanatorul poate seta un punct de întrerupere.

verificări explicite-nule
Face ca JIT să genereze o verificare NULL explicită asupra dereferințelor variabilelor
în loc să depinzi de sistemul de operare pentru a ridica un SIGSEGV sau altul
formă de eveniment capcană când este accesată o locație de memorie invalidă.

mâner-sigint
Captează semnalul de întrerupere (Control-C) și afișează o urmă de stivă când
presat. Util pentru a afla unde se execută programul la un anumit moment
punct. Aceasta afișează doar urma stivei unui singur fir.

init-stive
Instruiește runtime să inițializeze stiva cu niște valori cunoscute (0x2a
pe x86-64) la începutul unei metode de asistență la depanarea motorului JIT.

pastra-delegati
Această opțiune va scurge trambulinele delegate care nu mai sunt menționate ca
pentru a prezenta utilizatorului mai multe informații despre o utilizare greșită a unui delegat.
Practic, o instanță delegată poate fi creată, transmisă unui cod negestionat,
și nicio referință păstrată în codul gestionat, care va colecta codul.
Cu această opțiune este posibil să găsiți sursa problemelor.

inversă-pinvoke-excepții
Această opțiune va determina întreruperea mono cu un mesaj descriptiv atunci când este în timpul
stiva care se derulează după o excepție ajunge la un cadru nativ de stivă. Acest
se întâmplă atunci când un delegat gestionat este transmis la codul nativ, iar cel gestionat
delegatul aruncă o excepție. Mono va încerca în mod normal să deruleze stiva
primul handler de excepții (gestionat) și va omite orice stivă nativă
cadre în proces. Acest lucru duce la un comportament nedefinit (deoarece mono nu
știți cum să procesați cadrele native), scurgeri și, eventual, blocări.

no-gdb-backtrace
Această opțiune va dezactiva backtrace GDB emis de runtime după a
SIGSEGV sau SIGABRT în cod negestionat.

suspend-on-sigsegv
Această opțiune va suspenda programul atunci când este primit un SIGSEGV nativ.
Acest lucru este util pentru depanarea erorilor care nu au loc sub gdb, deoarece a
procesul live conține mai multe informații decât un fișier de bază.

check-pinvoke-callconv
Această opțiune face ca timpul de execuție să verifice nepotrivirile convențiilor de apelare
atunci când utilizați pinvoke, adică amestecați cdecl/stdcall. Functioneaza doar pe windows. Dacă
este detectată o nepotrivire, este aruncată o ExecutionEngineException.

MONO_LOG_LEVEL
Nivelul de înregistrare, valorile posibile sunt „eroare”, „critică”, „avertizare”, „mesaj”,
`info' și `debug'. Consultați secțiunea DEBUGING pentru mai multe detalii.

MONO_LOG_MASK
Controlează domeniul rulării Mono căruia se va aplica înregistrarea. Dacă este setat,
masca de jurnal este modificată la valoarea setată. Valorile posibile sunt „asm” (încărcător de asamblare),
„type”, „dll” (încărcător de bibliotecă nativ), „gc” (colector de gunoi), „cfg” (fișier de configurare
încărcător), „aot” (precompiler), „securitate” (de exemplu, suport Moonlight CoreCLR) și
"toate". Valoarea implicită este „toate”. Modificarea valorii măștii vă permite să afișați
numai mesaje pentru o anumită componentă. Puteți folosi mai multe măști prin virgulă
separandu-le. De exemplu, pentru a vedea mesajele fișierului de configurare și încărcătorul de asamblare
mesajele vă setează masca la „asm,cfg”.

MONO_TRACE
Folosit pentru urmărirea în timp de rulare a apelurilor de metodă. Formatul urmei separate prin virgulă
opțiunile sunt:

[-]M:numele metodei
[-]N:spațiu de nume
[-]T:numele clasei
[-]toate
[-]program
dezactivat Ieșirea de urmărire dezactivată la pornire.

Puteți activa/dezactiva ieșirea de urmărire, trimițând un semnal SIGUSR2 către program.

MONO_TRACE_LISTENER
Dacă este setat, activează System.Diagnostics.DefaultTraceListener, care va tipări
ieșirea claselor System.Diagnostics Trace și Debug. Poate fi setat la a
nume de fișier și la Console.Out sau Console.Error pentru a afișa rezultatul la ieșirea standard
sau, respectiv, eroare standard. Dacă este setat la Console.Out sau Console.Error
poate adăuga un prefix opțional care va fi folosit atunci când scrieți mesaje ca acesta:
Console.Error:MyProgramName. Consultați System.Diagnostics.DefaultTraceListener
documentație pentru mai multe informații.

MONO_WCF_TRACE
Acest lucru ușurează funcționalitatea de diagnosticare WCF prin pur și simplu scoateți toate mesajele de jurnal de la
Motorul WCF la „stdout”, „stderr” sau orice fișier transmis acestei variabile de mediu.
Formatul jurnalului este același ca rezultatul de diagnostic obișnuit.

MONO_XEXCEPȚII
Aceasta generează o excepție atunci când este întâlnită o eroare X11; implicit un mesaj este
afișat, dar execuția continuă

MONO_XMLSERIALIZER_DEBUG
Setați această valoare la 1 pentru a împiedica serializatorul să elimine fișierele temporare
care sunt create pentru serializare rapidă; Acest lucru ar putea fi util la depanare.

MONO_XSYNC
Acesta este utilizat în implementarea System.Windows.Forms atunci când rulează cu X11
backend. Acesta este folosit pentru a depana problemele din Windows.Forms, deoarece forțează toate
comenzile trimise către serverul X11 pentru a fi făcute sincron. Modul implicit al
funcționarea este asincronă, ceea ce face dificilă izolarea rădăcinii anumitor
probleme.

MONO_GENERIC_SHARING
Această variabilă de mediu controlează tipul de partajare generică utilizat. Această variabilă
este utilizat de dezvoltatorii interni JIT și nu ar trebui modificat în producție. Nu face
foloseste-l. Variabila controlează ce clase vor avea partajare generică de cod
activat. Valorile permise sunt:

toate Tot codul generat poate fi partajat.

colecții
Numai clasele din System.Collections.Generic vor avea codul partajat
(aceasta este valoarea implicită).

corlib Numai codul din corlib va ​​avea codul partajat.

nici unul Nu va fi efectuată nicio partajare a codului generic.
Partajarea codului generic în mod implicit se aplică numai colecțiilor. Mono JIT în mod implicit
pornește acest lucru.

MONO_XDEBUG
Când este setată varul de mediu MONO_XDEBUG, sunt emise informații de depanare pentru codul JIT
într-o bibliotecă partajată, încărcabilă în gdb. Acest lucru permite, de exemplu, să vedeți gestionat
nume de cadre pe urmele gdb.

MONO_VERBOSE_METHOD
Activează gradul de verbozitate JIT maxim pentru metoda specificată. Acest lucru este foarte util
pentru a diagnostica probleme de compilare greșită a unei anumite metode.

MONO_VERBOSE_HWCAP
Dacă este setat, produce informațiile de ieșire JIT despre caracteristicile CPU detectate (cum ar fi SSE,
CMOV, FCMOV, etc) la stdout.

MONO_CONSERVATIVE_HWCAP
Dacă este setat, JIT nu va efectua nicio detectare a capacității hardware. Aceasta ar putea fi
util pentru a identifica cauza problemelor JIT. Aceasta este valoarea implicită când este construit Mono
ca un compilator încrucișat AOT, astfel încât codul generat să ruleze pe majoritatea hardware-ului.

VALGRIND


Dacă doriți să utilizați Valgrind, veți găsi util fișierul `mono.supp', care conține
suprimari pentru GC care declanșează avertismente incorecte. Folosește-l așa:
valgrind --suppressions=mono.supp mono ...

DTRACE


Pe unele platforme, Mono poate expune un set de sonde DTrace (cunoscute și sub numele de user-land
definite static, sonde USDT).

Acestea sunt definite în fișierul „mono.d”.

ves-init-begin, ves-init-end
Începutul și sfârșitul inițializării runtime.

metoda-compilare-început, metoda-compilare-sfarsit
Începutul și sfârșitul compilării metodei. Argumentele probei sunt numele clasei, metoda
nume și semnătură, iar în caz de succes sau eșec al metodei-compilare-sfârșit
compilare.

gc-begin, gc-end
Începutul și sfârșitul colectării gunoiului.

Pentru a verifica disponibilitatea sondelor, rulați:
dtrace -P mono'$target' -l -c mono

PERMISIUNI


Implementarea Ping de la Mono pentru detectarea accesibilității rețelei poate crea pachete ICMP
el însuși fără a necesita comanda ping de sistem pentru a face lucrul. Dacă doriți să activați
aceasta pe Linux pentru utilizatorii non-root, trebuie să acordați permisiuni speciale binarei Mono.

Ca root, rulați această comandă:
# setcap cap_net_raw=+ep /usr/bin/mono

Utilizați mono online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

  • 1
    4g8
    4g8
    4g8 - Captură și interceptare a pachetelor
    pentru rețele comutate...
    Rulați 4g8
  • 2
    4s-adminJ
    4s-adminJ
    4s-admin � 4store cluster management
    instrument ...
    Rulați 4s-adminJ
  • 3
    crede
    crede
    credece - reductor de program C și C++
    DESCRIERE: credece 2.5.0 (necunoscut) --
    un reductor de programe C și C++ C-Reduce
    necesită un „test de interes” și
    unul sau...
    Alerga credece
  • 4
    înfiorător
    înfiorător
    CREEPY - O informație de geolocalizare
    agregator DESCRIERE: înfiorător este un
    aplicație care vă permite să adunați
    informații legate de geolocalizare despre
    utilizatori din...
    Fugi înfiorător
  • 5
    g.gisenvgrass
    g.gisenvgrass
    g.gisenv - Emite și modifică fișierul
    setările curente ale variabilei GRASS ale utilizatorului.
    Imprimă toate variabilele GRASS definite dacă nu
    este dată opțiunea. CUVINTE CHEIE: general,
    stabilind...
    Rulați g.gisenvgrass
  • 6
    g.guigrass
    g.guigrass
    g.gui - Lansează un utilizator grafic GRASS
    sesiune interfață (GUI). Opțional
    actualizează setările implicite ale interfeței utilizator.
    CUVINTE CHEIE: general, GUI, interfață utilizator...
    Rulați g.guigrass
  • Mai mult »

Ad