Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 27663|Odpověď: 0

[Zdroj] .net/c# log4net chybová výjimka nezaznamenává příčinu čísla řádku

[Kopírovat odkaz]
Zveřejněno 03.08.2017 14:13:01 | | | |
Nedávno byl projekt nasazen v produkčním prostředí a bylo zjištěno, že některé metody vyhazují anomální zprávy

Nicméně jsou uvedeny pouze abnormální chybové informace a neexistuje žádné abnormální číslo řádku, pouze že existuje problém s převodem modelu v určité metodě

Ale porovním je jeden po druhém, je to moc otravné, proč si nezapsat špatné číslo řádku?

Log4net logová konfigurace je následující:

Konfigurace logu v C# Log4net je podrobně vysvětlena
http://www.itsvse.com/thread-2892-1-1.html
(Zdroj: Architect)

Úmyslně jsem napsal zprávu o výjimce v metodě Home/Index na svém lokálním počítači, abych zjistil, jestli se číslo řádku zaznamená:



Zjistil jsem, že soubor error logu zaznamená číslo řádku, což rozhodně není problém u konfigurace log4net, protože konfigurace na obou stranách je stejná

Může to být problém v režimu kompilace???

Můj lokální počítač je v ladicím režimu a dll zkompilované oficiálním serverem je v režimu vydání

Pak jsem změnil lokální projekt na release mode a zjistil jsem, že to stále bylo číslo záznamu.

Pak, Baidu, první věta:Musíte zkopírovat .pdb soubor odpovídající dll

No, je to problém? Pak jsem šel přímo do adresáře bin, smazal .pdb soubor odpovídající dll, obnovil web a našel záznam výjimek následovně:



A skutečně, abnormální číslo řádku není zaznamenáno!!!!

Je to opravdu problém s .pdb!! Musíte si uchovat .pdb soubor, aby se číslo řádku zaznamenalo, pokud je neobvyklé!!



K čemu slouží soubor PDB?


PDB soubory: Co musí vědět každý vývojář

Co je to PDB soubor?

Většina vývojářů by měla vědět, že soubory PDB se používají k pomoci s laděním softwaru. Ale jak přesně funguje, to možná neznáme. Tento článek popisuje ukládání a obsah souborů PDB. Také popisuje, jak debugger najde PDB soubor odpovídající binay a jak debugger najde zdrojový kód odpovídající binay. Tento článek je určen všem nativním a spravovaným vývojářům.

Než začneme, definujme dva pojmy: soukromá sestava, která označuje sestavení generované na počítači vývojáře; Public build, což znamená build generovaný na public build stroji. Soukromá stavba je relativně jednoduchá, protože PDB a Binay jsou na stejném místě a obvykle máme problémy s veřejnou výstavbou.  

Nejdůležitější věc, kterou by všichni vývojáři měli vědět, je, že "PDB soubory jsou stejně důležité jako zdrojový kód", bez kterého ani nemůžete ladit. Pro veřejnou sestavu musí symbol server uložit všechny PDB a když uživatel nahlásí chybu, debugger automaticky najde odpovídající PDB soubor v binay, a jak Visual Studio, tak Windbg vědí, jak se k symbolovému serveru připoutat. Před uložením PDB a binay na symbol server je také potřeba zaindexovat zdrojový kód běhu PDB, což znamená přiřadit PDB a zdroj.  

Další část předpokládá, že Symbol Server a Source Server Indexing jsou již nastaveny. TFS2010 lze provést stejně jednoduše jako indexování zdrojů a kopírování symbolového serveru pro novou sestavu.

2. Obsah souboru PDB

Oficiálně začal obsah PDB, PDB není veřejně dostupný formát souboru, ale Microsoft poskytuje API, které pomáhá získávat data z PDB.

Nativní C++ PDB obsahuje následující informace:
* veřejné, soukromé a statické funkce adres;
* Název a adresa globální proměnné;
* Názvy parametrů a lokálních proměnných a posuny na zásobníku;
* typové definice třídy, struktury a dat;
* Data o vynechání ukazatele snímku pro procházení nativního zásobníku na x86;
* Název a počet řádků ve zdrojovém kódu;

.NET PDB obsahuje pouze 2 části informací:
* Název souboru a počet řádků ve zdrojovém kódu;
* a název lokální proměnné;
* Všechna ostatní data jsou již zahrnuta v . NET Metadata;  





Předchozí:Disk je offline kvůli politice nastavené administrátorem
Další:Najděte si technika na web, abyste společně založili podnikání
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com