• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    ELECTRICKOTA
    ELECTRICKOTA --- ---
    ARANIUS: mas to tu, jako je to mozny, ale nevím kde tu chybu hkedat, ani si neuvedomuju jak nastala.
    ARANIUS
    ARANIUS --- ---
    ELECTRICKOTA: Hod nikde zdrojaky, znie to ako keby si mal bordel v definíciach a pomenovaní objektov ;)
    ELECTRICKOTA
    ELECTRICKOTA --- ---
    Cau chlapi, ted asi necely mesic jsem se zacal ucit v C,, bo hratky s Arduinem. Niceme jsem ted krapet v koncich a potrebuju poradit. Pro jednoduchy programek pro komunikaci s Arduinem jsem pouzil Visual studio, a tedy se za pochodu ucim i C#, a muj aktualni problem je, ze bud jsem se zblaznil ja nebo Visual Studio, pokud si sestavím program tak mi nesmyslne zdubloval nektere komponenty(konkretne text box a label - v navrhu ani nikde v kodu jsem nic zdvojeného nezaznamenal), navíc kdyz jsem tohle vyresil smazanim puvodnich komponent a vlozenim novych, tak se mi muj program zacal chovat divne, jakoby preskakoval radky myho kodu, nebo vubec nevolal mnou napsane funkce. Vim ze je to dost zevrubne, detaily klidne i zdrojak poskytnu. Hlavne abych vedet proc se to deje a co jsem nevedomky udelal spatne. Díky za kazdou radu!
    JANFROG
    JANFROG --- ---
    MAIMONIDES: Ne nutne. Debugger muze mirne zmenit memory layout debugovaneho procesu, muze zmenit casovani, pamet atd. Ver nebo ne, tohle uz jsem take videl a ne jednou. Ja osobne uz neverim nicemu...
    NECROMAN
    NECROMAN --- ---
    TOOMIX: .NET Core přichází s novinkou Span<T> a Memory<T>, které se dají použít právě na podobné low-level věci. Určitě je dobré o nich vědět:
    https://msdn.microsoft.com/en-us/magazine/mt814808.aspx?f=255&MSPPError=-2147217396
    MAIMONIDES
    MAIMONIDES --- ---
    JANFROG: Pokud je chyba u mě, tak by to ale nastávalo za všech okolností, nikoliv jen v tom jednom případě (jendebug, ale jenom v mixed modu, když pustim c++ a postupně vlezdu do .net). Pokud to jen pustim, ale netrasuju, všechno chodí.
    JANFROG
    JANFROG --- ---
    MAIMONIDES: call na constantni addressu, neco jako "call $0xDEADBEEF"? V tom pripade s nejvetsi pravdepodobnosti bud ta adresa neni namapovana ve tvem adresnim prostoru nebo dana stranka neni executable. vmmap ze systemtools Ti rekne co z toho je pravda.

    Ten call je v clr.dll nebo JIT / AOT kodu? Pokud je v clr.dll je to divny. V tom pripade bych si jeste overil, ze ten kod je stejny v souboru jako v debugovanem imagi (abys alespon vedel, jestli nekdo "patchuje" ten call nebo ne.
    Pokud je to JIT / AOT kod nebo to nekdo "patchuje" pak zase HW breakpoint abys vedel kdo to dela...
    TOOMIX
    TOOMIX --- ---
    MAIMONIDES: já bych skončil někde u V09. Použít strukturu by mě asi nenapadlo a o ArrayPool jsem nikdy neslyšel, takže za mě fajn, že to někdo sepsal.
    MAIMONIDES
    MAIMONIDES --- ---
    TOOMIX: Člověka asi rovnou napadne, že když potřebuje parsovat velký množství dat, tak indexy do stringu budou lepší než linq, ale nenapadne ho o tom sepsat článek:)
    MAIMONIDES
    MAIMONIDES --- ---
    JANFROG: Jo, na to jsem našel nedávno našel odvahu a bohužel to tak neni. V asm to buhužel neni null pointer, ale zkrátka asm call na konstantní adresu, která je na zakázanym místě (resp v oblasi, kde ti i debugger odmítne ukázat obsah a píše ??). Debugovat v ILu zatim neumim, ale asi budu muset:)
    TOOMIX
    TOOMIX --- ---
    Jak se při parsování csv dostat z požadavku na 7GB RAM na 32kB

    https://medium.com/@indy_singh/strings-are-evil-a803d05e5ce3
    JANFROG
    JANFROG --- ---
    MAIMONIDES: No jo, to pak bude zajimavejsi - co ja bych udelal na Tvem miste je, ze bych se podival na kod (machine code) kde to pada. Tohle vypada na dereferenci null pointeru, takze bych se podival odkud se bere ten null pointer a dal si HW watchpoint a adresu, odkud se bere. Pak to pustil znovu zkoumal to od toho mista, kde to prepise to hodnotu...To ovsem vyzaduje mit tu adresu stabilni (nebo to cele bezet pod simulatorem coz je jeste jina liga).

    Jina bug nemusi byt nutne v CRL, muze by kdekoli, klidne v debuggeru nebo i v Tvem kodu.
    MAIMONIDES
    MAIMONIDES --- ---
    JANFROG: mimo ide je to stabilblni, chcipa to jen pri debugu a to jen, kdyz zacinam v unmanaged kodu a jedu mixed. Asi to budu muset vzit pres low level, jen to neumim a vypada to, ze chyba bude v clr..
    JANFROG
    JANFROG --- ---
    MAIMONIDES: Nejak do nechapu, pada to kdyz to pustis normalne muimo veskere IDE? Pokud ano, dival ses kde presne to lehne v nejakem vic low-level debuggeru? Ja jsem celkem s uspechem pouzival WinDBG + sos/sosex. Ale chce to trosku cvik ve cteni memory dumpu a strojaku. Dost pomuze se podivat do CoreCLR zdrojaku na podobne misto.
    MAIMONIDES
    MAIMONIDES --- ---
    Kdybyste někdo tušili i jen přibližně kudy vítr fouká, tak budu vděčnej:

    c# 4.7.2 crash in clr.dll when debugging and starting from native - Stack Overflow
    https://stackoverflow.com/.../c-sharp-4-7-2-crash-in-clr-dll-when-debugging-and-starting-from-native
    TOOMIX
    TOOMIX --- ---
    NECROMAN: a na vývojovým serveru? U sebe ve VS2017 udělám a na serveru v IIS zapnu
    NECROMAN
    NECROMAN --- ---
    TOOMIX: na localhostu nepotřebuješ, na testu/produkci stačí https://letsencrypt.org/
    TOOMIX
    TOOMIX --- ---
    Neměl byste někdo odkaz na nějaký best practices k ASP.NET Web API? Budu dělat REST API k aplikacím pro Android a iOS a nechci to hned na začátku zkurvit. Btw jak je to v tomhle s https? To si udělám vlastní certifikát? Díky
    APH
    APH --- ---
    jo
    - v tomto pripade by som ale ten kod ktory musi debugger interpretovat asi nechcel vidiet )
    i.e. prist na to jedine zjednodusovanim, kym sa nenajde bug (ak to stoji za to)
    PJOTRIK
    PJOTRIK --- ---
    presne tak, to je jen possible NRE
    MORMEGIL
    MORMEGIL --- ---
    APH: To bude jen varování, že to může vyhodit NullReferenceException, protože takhle se to nepíše: Nedává žádný smysl psát (neco as Typ).Metoda(). V takovém případě mám psát ((Typ)neco).Metoda(). (Anebo ((neco as Typ)?.Metoda(), pokud je to to, co chci.)
    Kliknutím sem můžete změnit nastavení reklam