y‰SŽÒнŒ}zC/C++Ž ..
322:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 22:07:09
>>318
LocalAlloc, HeapAlloc, GlobalAlloc
‚Á‚Ä–¼‘O‚ªˆá‚¤‚¾‚¯‚ł͖³‚¢‚ñ‚Å‚·‚ËB
’m‚è‚Ü‚¹‚ñ‚Å‚µ‚½B
>>319
HeapŒn‚͂悯‚¢‚ȃIƒuƒWƒFƒNƒg‚ª•K—v‚ɂȂé‚̂ł ‚Ü‚èŽg‚¢‚½‚‚È‚¢‚Å‚·EEE
‚»‚±‚ªŠÌ‚Æ‚¢‚¤‹C‚à‚µ‚Ü‚·‚ª
323:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 22:09:06
>>320
‚»‚ꂪo—ˆ‚È‚¢‚©‚玿–â‚«‚½‚ñ‚¾‚ë
o—ˆ‚é‚È‚çAŠù‚É‰ðŒˆ‚µ‚Ă邶‚á‚ñ‚—
‚»‚à‚»‚à
„‚±‚Ìs‚ÅAi‚É2ˆÈã‚Ì’l‚ª“ü‚Á‚½Žž“_‚ŃAƒEƒgB
‚±‚ê‚𔻒肵‚½‚¢‚Á‚ÄŒ¾‚¤Ž¿–â‚Ȃ̂ÉA‚»‚̃ŒƒX‚̓iƒ“ƒZƒ“ƒX‰ß‚¬‚é
324:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 23:06:43
>>320
„‚±‚Ìs‚ÅAi‚É2ˆÈã‚Ì’l‚ª“ü‚Á‚½Žž“_‚ŃAƒEƒgB
’P‚È‚éƒ|ƒCƒ“ƒ^‚É”Žš‚ð‘«‚µ‚½’l‚ðŒ©‚½‚¾‚¯‚ʼn½‚ŃAƒEƒg‚È‚ñ‚¾H
*‚‚¯‚ÄŽQÆ‚µ‚Ä‚é‚È‚ç‚Æ‚à‚©‚EEE
325:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 23:14:37
>>322
ƒq[ƒvƒnƒ“ƒhƒ‹‚Íí‚ÉGetProcessHeap()‚Å“¾‚½‚à‚Ì‚ðŽg‚¤‚±‚Ƃɂ·‚ê‚ÎA
Local/Global‚Æ”ä‚×AV‚½‚È–Ê“|‚³‚ª¶‚Ü‚ê‚邱‚Ƃ͂Ȃ¢‚ÆŽv‚¤‚¼B
326:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 23:39:43
‚»‚à‚»‚àLocal‚ÆGlobal‚Á‚Ä‚©‚È‚è‘O‚ÉMS‚ªŽg‚¤‚Ì‚â‚߂ĂÁ‚Ä‚¢‚Á‚ĂȂ©‚Á‚½H
327:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 01:27:02
‚à‚¤CoTaskMemAlloc‚Å‚¢‚¢‚æ
328:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 01:59:11
>>324
”z—ñ—v‘f”‚ð’´‚¦‚½‚Æ‚±‚ë‚ðŽw‚·‚悤‚Ƀ|ƒCƒ“ƒ^‚É‘«‚µŽZ‚·‚邯–¢’è‹`“®ì‚ɂȂéB
C99 6.5.6 p8 ‚æ‚èi C++ ‚Å‚Í 5.7 p5 ‚É“¯‚¶•¶–Ê‚ª‚ ‚éj
> If both the pointer operand and the result point to elements of the same array object, or one past the last element
> of the array object, the evaluation shall not produce an overflow; otherwise, the behavior is undefined.
‚±‚Ìꇂ¾‚Æ—v‘f” 2 ‚Ì char ”z—ñ‚Ƃ݂Ȃ¹‚é‚©‚çA 2 ‚܂ł͑åä•v‚Å 3 ˆÈã‚ŃAƒEƒg‚ËB
329:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 02:05:54
ƒ|ƒCƒ“ƒ^‚Í*‚‚¯‚ÄŽQÆ‚µ‚È‚¯‚ê‚ÎA’P‚È‚é”Žš‚¾‚æB
‚µ‚©‚àAƒ|ƒCƒ“ƒ^•Ï”‚É‘ã“ü‚µ‚½‚킯‚Å‚à‚È‚A’P‚É+3‚ð‚â‚Á‚Äif‚Å”äŠr‚µ‚½‚¾‚¯‚Å‚µ‚åH
‚»‚Ì•¶–Ê‚Í
*(str+i)‚̂悤‚ÉŽQÆ‚µ‚½ê‡‚âAstr+=i‚̂悤‚ɉÁŽZ‚ðs‚Á‚½ê‡‚Å‚ ‚Á‚Ä
str+i‚Å‚ÍA‰½‚̈Ӗ¡‚à‚È‚¢‚©‚ÆB
ŽŽ‚µ‚Ă݂ê‚Εª‚©‚邯Žv‚¤‚¯‚Ç
char *str;
‚É
if( (str+5000)!=NULL)
‚Á‚Ä‚â‚낤‚Æ
if( (str+50000000)!=NULL)
‚Á‚Ä‚â‚낤‚ÆAƒGƒ‰[‚Ío‚é‚Í‚¸–³‚¢‚æB
330:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 02:23:13
>>329
> *(str+i)‚̂悤‚ÉŽQÆ‚µ‚½ê‡‚âAstr+=i‚̂悤‚ɉÁŽZ‚ðs‚Á‚½ê‡‚Å‚ ‚Á‚Ä
‚»‚ñ‚È‚±‚Ƃǂ±‚É‚à‘‚¢‚ĂȂ¢B p + n ‚Æ‚¢‚¤Ž®Ž©‘̂ɂ‚¢‚Äq‚ׂ½•”•ª‚¾‚æB
* ‚ÅŽQÆ‚µ‚½‚è = ‚Å‘ã“ü‚µ‚½‚è‚·‚é‘O‚̘bB
331:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 02:43:49
‚È‚ñ‚Åuˆê‚ÂŒã‚ëv‚Ý‚½‚¢‚È•\Œ»‚·‚é‚ñ‚¾‚낤
ˆêuAu‚¶‚á‚ ‚Ó‚½‚ÂŒã‚ë‚Ȃ炢‚¢‚Ì‚©‚æv‚Æ‚©Žv‚Á‚Ä‚µ‚Ü‚Á‚½‚æ
332:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 10:42:18
>>330
Žd—l‚̓ǂݕû‚í‚©‚Á‚ĂȂ¢‚¾‚ëB
ƒvƒƒOƒ‰ƒ€‚̕׋‚©‚ç‚Í‚¶‚ß‚½‚Ù‚¤‚ª‚¢‚¢‚ËB
333:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 10:57:22
>>332
‚Ç‚±‚ð‚Ç‚¤“Ç‚ñ‚¾‚ç >329 ‚Ý‚½‚¢‚ȉðŽß‚ɂȂé‚Ì‚©‹³‚¦‚Ä‚‚¾‚³‚¢B
334:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 11:24:57
>>328
‰ÁŒ¸‰‰ŽZŽq
ƒ|ƒCƒ“ƒ^ƒIƒyƒ‰ƒ“ƒh‹y‚Ñ‚»‚ÌŒ‹‰Ê‚Ì—¼•û‚ª“¯‚¶”z—ñƒIƒuƒWƒFƒNƒg‚Ì—v‘fA–”‚Í
”z—ñƒIƒuƒWƒFƒNƒg‚ÌÅŒã‚Ì—v‘f‚ðˆê‚‰z‚¦‚½‚Æ‚±‚ë‚ðŽw‚µ‚Ä‚¢‚éê‡A‰‰ŽZ‚É
‚æ‚Á‚ÄAƒI[ƒo[ƒtƒ[‚ð¶‚¶‚Ă͂Ȃç‚È‚¢B‚»‚êˆÈŠO‚Ìê‡A“®ì‚Í–¢’è‹`
‚Æ‚·‚éB
‚ ‚‚܂Ŗ¢’è‹`‚Æ‚¢‚Á‚Ä‚¢‚é‚Ì‚¾‚©‚çA‹KŠiã‚͉½‚Å‚à‚ ‚蓾‚éA‚‚܂è
ŽÀ‘•ˆË‘¶‚Æ‚¢‚¤‚±‚ƂɂȂé‚ËB>>329‚ÌŒ¾‚Á‚Ä‚¢‚éAƒGƒ‰[‚ªo‚È‚¢
‚Æ‚©ŽQÆ‚µ‚È‚¯‚ê‚Î’P‚Ȃ锎š‚É‚È‚é‚Æ‚¢‚¤‚±‚Æ‚ÍA‘½‚‚ÌŽÀ‘•‚ª‚»‚¤
‚È‚Á‚Ä‚¢‚邾‚¯‚Å‚ ‚Á‚ÄAstr+5000‚̉ÁŽZ‰‰ŽZ‚ʼn¼‚ɃNƒ‰ƒbƒVƒ…‚·‚éŽÀ‘•‚ª
‚ ‚Á‚Ä‚àA‚»‚ê‚Í‹KŠi‚É‚Í]‚Á‚Ä‚¢‚邱‚ƂɂȂéBŒ‹‹ÇA‚±‚Ìê‡A
“®ì‚Í–¢’è‹`‚¾‚©‚çŽÀ‘•‚Ü‚©‚¹B
‚Ȃ̂ÅAŒµ–§‚É‚Í>>328‚̈ӌ©‚ª³‚µ‚¢‚ÆŽv‚í‚ê‚éB
335:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 13:04:40
ŽÀÛAƒ^ƒCƒg‚ȃƒ‚ƒŠ‹óŠÔƒ‚ƒfƒ‹‚ðŽ‚Á‚Ä‚¢‚éŽÀ‘•‚Å‚ÍAŠ„‚Æ—eˆÕ‚É‹N‚±‚蓾‚éB
—Ⴆ‚Îint array[2]‚ɑ΂µ‚Äarray‚ª0xfff0‚ɃAƒTƒCƒ“‚³‚ê‚Ä‚¢‚é‚©‚à‚µ‚ê‚È‚¢B
ƒ|ƒCƒ“ƒ^‚àint‚à16bit‚È‚çAarray + 4‚ª0‚ɂȂÁ‚Ä‚µ‚Ü‚¢ANULL‚Æ‹æ•ʂł«‚È‚‚È‚Á‚Ä‚µ‚Ü‚¤B
# —¬Î‚É‘¦ƒNƒ‰ƒbƒVƒ…‚Í‚µ‚È‚¢‚¾‚낤‚¯‚Ç‚ËB
336:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 14:02:36
‹«ŠE‚Ì–â‘è‚̓|ƒCƒ“ƒ^“Á—L‚̘b‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚Ë
337:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 17:44:01
‚»‚ꂪ‚Ç‚¤‚©‚µ‚Ü‚µ‚½‚©?
338:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 17:57:27
‚‚܂茩“–ˆá‚¢
339:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 18:16:43
‚Ç‚±‚ª?
‚»‚à‚»‚à’N‚©A‹«ŠE‚̘b‚È‚ñ‚Ä‚µ‚Ä‚¢‚é‚ñ‚Å‚·‚©?
340:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 18:31:33
>>336‚ªêˆá‚¢‚ÈŒ‚ɂ‚¢‚Ä
341:wolf Ÿ8VH3XAqjlU
07/11/15 22:09:24
>>311
*** For your reference ***
Windows. _heapwalk (CRT)
URLØÝ¸(msdn2.microsoft.com)(VS.80).aspx
Linux 2.4x
src\drivers\char\drm\sis_ds.c "void mmDumpMemInfo( memHeap_t *mmInit )"
ÅVƒŒƒX•\ަƒXƒŒƒbƒh‚ÌŒŸõ—ÞŽ—ƒXƒŒˆê——˜b‘è‚̃jƒ…[ƒX‚¨‚Ü‚©‚¹ƒŠƒXƒg¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ‰É‚‚Ԃµ2ch
4987“ú‘O‚ÉXV/97 KB
’S“–:undef