Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 27663|Vastaus: 0

[Lähde] .net/c# log4net-virhepoikkeus ei rekisteröi rivinumeron syytä

[Kopioi linkki]
Julkaistu 3.8.2017 14.13.01 | | | |
Äskettäin tuotantoympäristössä otettiin käyttöön projekti, jossa havaittiin, että jotkut menetelmät heittävät poikkeavia viestejä

Kuitenkin annetaan vain poikkeava virhetieto, eikä poikkeavaa rivinumeroa ole, vaan ainoastaan mallin muunnoksessa on ongelma tietyssä menetelmässä

Mutta annanpa vertailla niitä yksitellen, se on liian ärsyttävää, miksi et kirjaa väärää rivinumeroa?

log4net-lokimääritys on seuraava:

C# Log4netin lokikonfiguraatio selitetään yksityiskohtaisesti
http://www.itsvse.com/thread-2892-1-1.html
(Lähde: Arkkitehti)

Kirjoitin tarkoituksella poikkeusviestin Home/Index-metodiin paikallisella tietokoneellani nähdäkseni, tallennetaanko rivinumero:



Huomasin, että virhelokitiedosto tallentaa rivinumeron, mikä ei todellakaan ole ongelma log4net-konfiguraatiossa, koska konfiguraatio molemmilla puolilla on sama

Voisiko kyse olla käännösmoodista???

Paikallinen tietokoneeni on debug-tilassa, ja virallisen palvelimen kääntämä DLL on julkaisutilassa

Sitten vaihdoin paikallisen projektin julkaisutilaan ja huomasin, että se oli edelleen levyrivinumero.

Sitten, Baidu, ensimmäinen lause:Sinun täytyy kopioida .pdb-tiedosto, joka vastaa dll:ää

No, onko tämä ongelma? Sitten menin suoraan bin-hakemistoon, poistin .pdb-tiedoston, joka vastaa dll:ää, ja päivitin sivuston ja löysin poikkeuslokin seuraavasti:



Totta kai, epänormaalia rivinumeroa ei tallenneta!!!!

Onko tämä oikeasti .pdb-ongelma!! Sinun täytyy säilyttää .pdb-tiedosto, jotta rivien numero tallennetaan, jos se on poikkeava!!



Mihin PDB-tiedosto on tarkoitettu?


PDB-tiedostot: Mitä jokaisen kehittäjän tulee tietää

Mikä on PDB-tiedosto?

Useimpien kehittäjien tulisi tietää, että PDB-tiedostoja käytetään ohjelmistovirheen korjaamiseen. Mutta miten hän tarkalleen ottaen toimii, sitä emme ehkä tunne. Tässä artikkelissa kuvataan PDB-tiedostojen tallennustilaa ja sisältöä. Se kuvaa myös, miten debuggeri löytää binay-tiedoston PDB-tiedoston ja miten debuggeri löytää binayn lähdekooditiedoston. Tämä artikkeli on tarkoitettu kaikille Native ja Managed -kehittäjille.

Ennen kuin aloitamme, määritellään kaksi termiä: yksityinen rakennus, jota käytetään tarkoittamaan kehittäjän omalla koneella tuotettua buildia; julkinen rakennus, joka tarkoittaa julkisella koneella luotua buildia. Yksityinen rakentaminen on suhteellisen yksinkertaista, koska PDB ja binay ovat samassa tilanteessa, ja yleensä ongelmat liittyvät julkiseen rakentamiseen.  

Tärkein asia, joka kaikkien kehittäjien täytyy tietää, on että "PDB-tiedostot ovat yhtä tärkeitä kuin lähdekoodi", ilman sitä et voi edes debugata. Julkisessa rakentamisessa symbolipalvelimen täytyy tallentaa kaikki PDB:t, ja kun käyttäjä raportoi virheen, virheenkorjaaja löytää automaattisesti vastaavan PDB-tiedoston binaysta, ja sekä Visual Studio että Windbg tietävät, miten käyttää symbolipalvelinta. Ennen kuin PDB ja binay tallennetaan symbolipalvelimelle, sinun täytyy myös indeksoida PDB-suoritus, eli yhdistää PDB ja lähdekoodi.  

Seuraava osa olettaa, että Symbol Server ja Source Server Indexing on jo asetettu. TFS2010 voidaan tehdä yhtä yksinkertaisesti kuin lähdeindeksointi ja symbolipalvelimen kopiointi uudelle versiolle.

2. PDB-tiedoston sisältö

Virallisesti PDB:n sisällön aloittaminen ei ole julkisesti saatavilla oleva tiedostomuoto, mutta Microsoft tarjoaa API:n, joka auttaa saamaan dataa PDB:stä.

Natiivi C++ PDB sisältää seuraavat tiedot:
* julkiset, yksityiset ja staattiset funktioosoitteet;
* Globaalin muuttujan nimi ja osoite;
* Parametrien ja paikallisten muuttujien nimet sekä siirtymät pinossa;
* luokka-, rakenteen ja datan tyypin määrittelyt;
* Frame Pointer Omission data native stackin läpikäyntiä varten x86:lla;
* Nimi ja rivien määrä lähdekooditiedostossa;

.NET PDB sisältää vain kaksi osaa tietoa:
* Lähdekooditiedoston nimi ja rivien määrä;
* ja paikallisen muuttujan nimi;
* Kaikki muu data sisältyy jo . NET-metatiedot;  





Edellinen:Levy on offline-tilassa ylläpitäjän asettaman käytännön vuoksi
Seuraava:Etsi verkkosivuston teknikko perustamaan yritys yhdessä
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com