Find URL from call stack with WinDBG
Asked Answered
M

1

6

I intermittently receive a browser hang with this error in a dump file.

After using !analyze -v on 3 crashes I receive this error and stack

GetUrlPageData2 (WinHttp) failed: 12007.

However, I can never find the URL in my dump file that is failing. Can anyone help?

STACK_TEXT:  
0029e8fc 5ffce1fd 74ce1450 00000000 00000000 user32!NtUserWaitMessage+0x15
0029e960 5ffd5f2c 00000001 0070fab0 00000000 ieframe!CBrowserFrame::FrameMessagePump+0x52e
0029e9a8 5ffd64e4 00000000 74ce1450 00708618 ieframe!BrowserThreadProc+0xf8
0029e9c8 5ffd6441 00708618 00000000 00708618 ieframe!BrowserNewThreadProc+0x88
0029fa38 5ffd62b2 00708618 00000000 76655528 ieframe!SHOpenFolderWindow+0x109
0029fa5c 5ffd61b1 006e4188 00000001 00000000 ieframe!IEWinMainEx+0x204
0029fa78 5ffd6120 006e4188 00000001 00000000 ieframe!IEWinMain+0x77
0029fab0 00c32fdb 006e4188 00000001 01000000 ieframe!LCIEStartAsFrame+0x265
0029fc04 00c312a2 00c30000 00000000 006a21cc iexplore!wWinMain+0x3b2
0029fc98 74ce33aa 7efde000 0029fce4 77159ef2 iexplore!_initterm_e+0x1b1
0029fca4 77159ef2 7efde000 77f3a412 00000000 kernel32!BaseThreadInitThunk+0xe
0029fce4 77159ec5 00c31b0a 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70
0029fcfc 00000000 00c31b0a 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b

How can I find the URL in this stack that is failing?

Malonis answered 3/2, 2016 at 21:38 Comment(4)
Welcome on Stack Overflow. Please try to format your post nicely, so that it is easy to read and understand. I did this for you now, so you can see what it may look like.Crouch
For a solution, find the methods in the call stack that are documented on MSDN, look up the parameters of the method and do a da or du on those parameters that point to a URL. One like this would work: IELaunchURL. I'm not too familiar with IE, but in your case I'd say the method call with the URL was called a long time ago and is no longer on the call stack. Try searching for http(s):// with a string search tool like SysInternals Strings. It'll probably give you a lot of false positives.Crouch
the GetUrlPageData2 (WinHttp) failed: 12007. is not what is causing the crash windbg tries to pull the watson data with the query and failed that is what it indicates with that string your crash is elsewhere that stack you show is Waiting on a message and doesnt seem to be the crashing thread eitherBlackpool
Thanks for cleaning it up Thomas. blabb: to your point, you said it doesn't seem to be the crashing thread, but the debugger identifies it as the debugging thread with the . symbol next to the thread. When I step through the stack, there is nothing meaningful. If I do a dc memory address, it becomes just a bunch of garbage for that address, nothing meaningful.Malonis
B
5

The GetUrlPageData2 (WinHttp) failed: 12007 does not have anything to do with the crash.

Windbg tries to pull in Watson data from Microsoft servers and failed to pull it so it is showing the error string it is for information purpose only

the data that is being pulled is the data sent to Microsoft servers by various users worldwide when they say yes to the dialog which asks do you want to send this to Microsoft_xxxx when an application crashes

the data if it existed may aid Windbg to provide a better analysis of the crash when you use !analyze -v

the error code 12007 is ERROR_WINHTTP_NAME_NOT_RESOLVED you can find a list of Winhttp errors defined in winhttp.h if you have the sdk installed locally or refer winhttp_errorcodes

if you are so bent you can use .dbgdbg to debug the debugger and set a break-point on ext!GetUrlPageData2 and dump the string with da Poi(@esp+4)

GetPageUrlData failed, server returned HTTP status 404

URL requested: http://watson.microsoft.com/StageOne/FoxitReader_exe/7_2_8_1124/56551ff4/FoxitCloud_fpi/3_7_139_918/55fbbee5/c0000005/0006b97a.htm?Retriage=1

This out of the way the stack you posted doesn't appear to hold any details regarding the crash it seems to be waiting on an object

Blackpool answered 4/2, 2016 at 7:58 Comment(4)
I was afraid of that answer. I did a !analyze -v hang and it gave a completely different answer. I think you're right about that because the URL it posts in the stack comes from watson. I can't figure out why this browser hangs intermittently. The stack doesn't give enough information.Malonis
You can use procdump from sysinternals to monitor the process for hangs and have it create a dump file.Debra
what's the difference between task manager and procdump from sysinternals?Malonis
For most part the point in time when the dump will be taken and ensuring the correct bitness of the dump.You could run procmon allongside procdump and try to match that point in time with a request in procmon. Another alternative would be to use WPR & WPA.Debra

© 2022 - 2024 — McMap. All rights reserved.