{"id":1112,"date":"2010-11-26T11:02:42","date_gmt":"2010-11-26T10:02:42","guid":{"rendered":"http:\/\/soci.hu\/blog\/?p=1112"},"modified":"2010-11-26T11:05:42","modified_gmt":"2010-11-26T10:05:42","slug":"net-stringek-lementese-memory-dumpbol","status":"publish","type":"post","link":"https:\/\/soci.hu\/blog\/index.php\/2010\/11\/26\/net-stringek-lementese-memory-dumpbol\/","title":{"rendered":".NET Stringek lement\u00e9se Memory Dumpb\u00f3l"},"content":{"rendered":"<p>Mostan\u00e1ban el\u00e9g sokat turk\u00e1lok probl\u00e9m\u00e1s webappok dumpj\u00e1ban. Le\u00edrom magamnak is, hogy lehet lementeni .NET stringeket a dumpb\u00f3l.<br \/>\nWinDbg dolgok k\u00f6vetkeznek.<\/p>\n<p>A nagy stringeket kilist\u00e1ztatom a<br \/>\n!DumpHeap -min 100000 -type System.String<br \/>\nparanccsal.<\/p>\n<p>Valamelyik heapr\u0151l kin\u00e9zek magamnak egyet, \u00e9s az el\u0151bbi parancs kimenet\u00e9nek els\u0151 oszlop\u00e1ban tal\u00e1lhat\u00f3 c\u00edmet felhaszn\u00e1lva belen\u00e9zek a du c\u00edm paranccsal.<br \/>\nPl.<br \/>\n0:000> du 5ce31140<br \/>\n5ce31140  &#8220;*****&lt;sitecore database=&#8221;SqlSer&#8221;<br \/>\n5ce31180  &#8220;ver&#8221;&gt;..    &lt;sc.variable name=&#8221;da&#8221;<\/p>\n<p>Az elej\u00e9n a kuszas\u00e1g (\u00e1t\u00edrtam csillagokra, mert elrontotta a htmlt) a .NET Stringek adminisztr\u00e1ci\u00f3ja \u00e9s az object header.<br \/>\nHa szemre tetszik a string, akkor pl. ki akarom menteni f\u00e1jlba.<br \/>\nN\u00e9zz\u00fck meg a sz\u00f6veges r\u00e9sz el\u0151tti bin\u00e1ris r\u00e9szt (dd).<\/p>\n<p>0:000> dd 5ce31140<br \/>\n5ce31140  793308ec 00040001 0002836c 0073003c<br \/>\nAz els\u0151 8 byte az object header (32 biten, 64-en ez asszem 16 byte), sync block \u00e9s type le\u00edr\u00f3. Sz\u00e1munkra ez \u00e9rdektelen. A 3. dword m\u00e1r \u00e9rdekesebb, ez a string hozza karakterekben. Azaz b\u00e1jtban ennek a dupl\u00e1ja, mert 2 bytes unicode \u00e1br\u00e1zol\u00e1st haszn\u00e1l a .net.<br \/>\n\u00cdgy string\u00fcnk hossza 0002836c*2 byte. A 0073003c m\u00e1r a < karakter (003c) \u00e9s az s bet\u0171 (0073), szok\u00e1sos ford\u00edtott Intel sorrendben.\nA sz\u00f6veges tartalom teh\u00e1t a 5ce31140+0c c\u00edmen kezd\u0151dik (headert \u00e1tl\u00e9pj\u00fck), \u00e9s 0002836c*2 a hossza.\nA tartalom f\u00e1jlba \u00edr\u00e1sa m\u00e1r egyszer\u0171:\n.writemem c:\\temp\\s1.txt 5ce31140+0c L0002836c*2\n\nKedvencem a WinDbg, de ezt m\u00e1r mondtam. :)\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mostan\u00e1ban el\u00e9g sokat turk\u00e1lok probl\u00e9m\u00e1s webappok dumpj\u00e1ban. Le\u00edrom magamnak is, hogy lehet lementeni .NET stringeket a dumpb\u00f3l. WinDbg dolgok k\u00f6vetkeznek. A nagy&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,11,18,4],"tags":[],"class_list":["post-1112","post","type-post","status-publish","format-standard","hentry","category-net","category-clr","category-debugging","category-szakmai-elet"],"_links":{"self":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=1112"}],"version-history":[{"count":4,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1112\/revisions"}],"predecessor-version":[{"id":1116,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1112\/revisions\/1116"}],"wp:attachment":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=1112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=1112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=1112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}