Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 27663|Svar: 0

[Kilde] .net/c# log4net-fejlundtagelsen registrerer ikke årsagen til linjenummeret

[Kopier link]
Opslået på 03/08/2017 14.13.01 | | | |
For nylig blev et projekt implementeret i et produktionsmiljø, og det blev opdaget, at nogle metoder udsendte unormale beskeder

Dog gives kun unormal fejlinformation, og der er ikke noget unormalt linjenummer, kun at der er et problem med modelkonverteringen i en bestemt metode

Men lad mig sammenligne dem én efter én, det er for irriterende, hvorfor ikke notere det forkerte linjenummer?

logkonfigurationen for log4net er som følger:

C# Log4net-logkonfiguration forklares i detaljer
http://www.itsvse.com/thread-2892-1-1.html
(Kilde: Arkitekt)

Jeg skrev bevidst en undtagelsesbesked i Home/Index-metoden på min lokale computer for at se, om linjenummeret ville blive registreret:



Jeg fandt ud af, at fejl-logfilen registrerer linjenummeret, hvilket bestemt ikke er et problem med log4net-konfigurationen, fordi konfigurationen på begge sider er den samme

Kan det være et problem med kompilationsmode???

Min lokale computer er i debug-tilstand, og DLL'en, som den officielle server har kompileret, er i udgivelsestilstand

Derefter ændrede jeg det lokale projekt til udgivelsestilstand og fandt ud af, at det stadig var et linjenummer for posten.

Så, Baidu, den første sætning:Du skal kopiere .pdb-filen, der svarer til dll'en

Nå, er det et problem? Derefter gik jeg direkte til bin-mappen, slettede .pdb-filen, der svarede til dll'en, og opdaterede hjemmesiden og fandt undtagelsesloggen som følger:



Ganske rigtigt bliver det unormale linjenummer ikke registreret!!!!

Er det virkelig et .pdb-problem!! Du skal gemme .pdb-filen, så linjenummeret bliver registreret, hvis det er unormalt!!



Hvad er en PDB-fil til?


PDB-filer: Hvad enhver udvikler skal vide

Hvad er en PDB-fil?

De fleste udviklere bør vide, at PDB-filer bruges til at hjælpe med softwarefejlfinding. Men hvordan han præcist fungerer, kender vi måske ikke til. Denne artikel beskriver lagring og indhold af PDB-filer. Den beskriver også, hvordan debuggeren finder PDB-filen, der svarer til binay, og hvordan debuggeren finder kildekodefilen, der svarer til binay. Denne artikel er for alle Native- og Managed-udviklere.

Før vi begynder, lad os definere to begreber: privat build, som bruges til at betegne en build genereret på udviklerens egen maskine; offentlig build, hvilket betyder en build genereret på en offentlig build-maskine. privat byggeri er relativt enkelt, fordi PDB og Binay ligger samme sted, og som regel handler problemerne om offentlig byggeri.  

Det vigtigste, som alle udviklere skal vide, er, at "PDB-filer er lige så vigtige som kildekode", uden hvilken du ikke engang kan fejlfinde. For offentlig build skal symbolserveren gemme alle PDB'erne, og når brugeren rapporterer en fejl, kan debuggeren automatisk finde den tilsvarende PDB-fil i binay, og både Visual Studio og Windbg ved, hvordan man får adgang til symbolserveren. Før du gemmer PDB og binay til symbolserveren, skal du også kildeindeksere PDB-kørslen, hvilket er for at associere PDB og kilde.  

Næste del antager, at Symbol Server og Source Server Indexing allerede er sat op. TFS2010 kan gøres lige så enkelt som kildeindeksering og symbolserverkopiering til en ny build.

2. Indholdet af PDB-filen

Officielt startede PDB-indholdet op, PDB er ikke et offentligt tilgængeligt filformat, men Microsoft tilbyder et API til at hjælpe med at hente data fra PDB.

Den oprindelige C++ PDB indeholder følgende information:
* offentlige, private og statiske funktionsadresser;
* Navnet og adressen på den globale variabel;
* Parameter- og lokale variabelnavne og offsets på stakken;
* typedefinitioner af klasse, struktur og data;
* Frame Pointer udeladelsesdata for at gennemgå den native stack på x86;
* Navnet og antallet af linjer i kildekodefilen;

.NET PDB'en indeholder kun 2 dele af informationen:
* Kildekodefilens navn og antal linjer;
* og navnet på den lokale variabel;
* Alle andre data er allerede inkluderet i . NET Metadata;  





Tidligere:Disken er offline på grund af den politik, administratoren har sat
Næste:Find en webtekniker til at starte en virksomhed sammen
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com