精华内容
下载资源
问答
  • 现象:某些用户反映,他们在浏览图库时,不定时的跳出一个异常对话框,提示"中断点 已到达中断点"。关闭这个对话框后,程序就退出了。如下图:最开始,我看到这个问题时,首先想到是,这个应该是我们自己程序弹出的...

    这个异常是前几天,支持的同事反馈过来的了,因为是第一次遇到这个提示,在调试分析过程中学到新的知识点。今天复盘一下。

    现象:某些用户反映,他们在浏览图库时,不定时的跳出一个异常对话框,提示"中断点 已到达中断点"。关闭这个对话框后,程序就退出了。如下图:

    最开始,我看到这个问题时,首先想到是,这个应该是我们自己程序弹出的对话框和提示信息。于是到我们的代码工程里搜索这个提示语句,希望找到相关代码,已此来分析原因,结果是我想得太简单了,在我们工程里、代码里和资源里没有搜到相关信息。问题了相关功能开发得同事,也说不是他们弹出的这个信息提示。看来问题有点意思了。

    幸好,这个问题在客户哪里很容易重现,赶紧叫支持的同事远程客户,抓了dmp,拿了日志。根据日志看,用户在进行图库浏览时出的问题,这个图库是放在服务器上的,我们前端客户程序是用libcef3来加载这个网页的,看来是libcef库里弹出的。不管了拿dmp文件分析。

    打开windbg ,加载dmp

    加载输出没有什么有用的信息

    不管,输出所有的线程栈,自己查找相关异常信息,特别留意cef相关线程

    .0 Id: 2264.c80 Suspend: 0 Teb: 7ffdf000 Unfrozen

    # ChildEBP RetAddr Args to Child

    00 0024def8 77d4535c 75d21876 00000000 0024df40 ntdll!KiFastSystemCallRet

    01 0024defc 75d21876 00000000 0024df40 a574e75d ntdll!NtDelayExecution+0xc

    02 0024df64 75d21818 0000000c 00000000 0024df80 KERNELBASE!SleepEx+0x65

    *** WARNING: Unable to verify checksum for YGE_win32.dll

    03 0024df74 57f9829c 0000000c 0024dfb4 57f9330e KERNELBASE!Sleep+0xf

    04 0024df80 57f9330e 0000000c a543f411 00000000 YGE_win32!YGE_TimeSleep+0xc [e:\3dxtsdk\sdk2.0\yge_win32\_sys\yge_sys.cpp @ 621]

    05 0024dfb4 57ea9b2e 00000001 57fe3698 57fe3680 YGE_win32!YGE_GameLoop+0x4ce [e:\3dxtsdk\sdk2.0\yge_win32\_main\yge_main.cpp @ 1422]

    06 0024dff4 57ea945f 00100490 00000780 00000460 YGE_win32!YT_InitAllAndRun+0x6e [e:\3dxtsdk\sdk2.0\yge_win32\yge_init.cpp @ 588]

    *** WARNING: Unable to verify checksum for XTUIFrame.dll

    07 0024e048 62fb9c80 5a99dc8c 00000780 00000460 YGE_win32!YGE_StartRun+0x5f [e:\3dxtsdk\sdk2.0\yge_win32\yge_init.cpp @ 604]

    *** WARNING: Unable to verify checksum for App.dll

    08 0024f8d8 59cec9c5 0024f8ec 003ce6c0 5a99dc88 XTUIFrame!XTApplication::Run+0x4e0 [d:\src-3.4\diyhomeweb3.4\xtuiframe\xtapplication.cpp @ 191]

    09 0024f908 59cf04ed 0024f91c 01262502 00000000 App!MJBApp::Run+0x85 [d:\src-3.4\diyhomeweb3.4\app\mjbapp.cpp @ 2176]

    *** WARNING: Unable to verify checksum for DIYHome.exe

    0a 0024f910 01262502 00000000 0024f924 012624ad App!MJBAppRun+0xd [d:\src-3.4\diyhomeweb3.4\app\mjbapp.cpp @ 2807]

    0b 0024f91c 012624ad 0024f970 0126504a 01260000 DIYHome!YT_WIN_main+0x42 [d:\src-3.4\diyhomeweb3.4\diyhome\main.cpp @ 31]

    0c 0024f924 0126504a 01260000 00000000 002d1ea7 DIYHome!WinMain+0x1d [d:\src-3.4\diyhomeweb3.4\diyhome\main.cpp @ 31]

    0d 0024f970 7752ef3c 7ffde000 0024f9bc 77d63618 DIYHome!__tmainCRTStartup+0x125 [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c @ 618]

    0e 0024f97c 77d63618 7ffde000 77b4cb6d 00000000 kernel32!BaseThreadInitThunk+0xe

    0f 0024f9bc 77d635eb 01264f1b 7ffde000 00000000 ntdll!__RtlUserThreadStart+0x70

    10 0024f9d4 00000000 01264f1b 7ffde000 00000000 ntdll!_RtlUserThreadStart+0x1b

    35 Id: 2264.19cc Suspend: 0 Teb: 7ff21000 Unfrozen

    # ChildEBP RetAddr Args to Child

    00 1e0fe210 77d45e3c 77578bad 90000003 00000000 ntdll!KiFastSystemCallRet

    01 1e0fe214 77578bad 90000003 00000000 00000000 ntdll!NtRaiseHardError+0xc

    02 1e0fe560 14e1175d 1e0fe87c 1e0fe89c 00000000 kernel32!RaiseFailFastException+0xe0

    03 1e0fe59c 14e11a14 b7ea7701 00000000 00000000 clr!RaiseFailFastExceptionOnWin7+0x6a

    04 1e0fe5ec 14e124bc 00000005 b7ea74d9 1e0fe77c clr!WatsonLastChance+0x15f

    05 1e0fe670 14e12766 00000000 0ef59b50 14e12721 clr!InternalUnhandledExceptionFilter_Worker+0x231

    06 1e0fe684 6b384cd7 1e0fe77c bb7efc13 6b384af2 clr!COMUnhandledExceptionFilter+0x40

    07 1e0fe6b0 6b384b20 003172d0 1e0fe77c 775a778c mscoreei!CLRUEFManager::InvokeUEFCallbacks+0x29

    08 1e0fe6c4 775409ae 1e0fe77c bb5fdf63 00000000 mscoreei!InternalUnhandledExceptionFilter+0x2e

    09 1e0fe74c 77d77858 1e0fe77c 77d1e55c 00000000 kernel32!UnhandledExceptionFilter+0x127

    0a 1e0fe754 77d1e55c 00000000 1e0ffb04 77d50e68 ntdll!__RtlUserThreadStart+0x62

    0b 1e0fe768 77d1e3f4 00000000 00000000 00000000 ntdll!_EH4_CallFilterFunc+0x12

    0c 1e0fe790 77d46d09 fffffffe 1e0ffaf4 1e0fe89c ntdll!_except_handler4+0x8e

    0d 1e0fe7b4 77d46cdb 1e0fe87c 1e0ffaf4 1e0fe89c ntdll!ExecuteHandler2+0x26

    0e 1e0fe7d8 77d1fbc7 1e0fe87c 1e0ffaf4 1e0fe89c ntdll!ExecuteHandler+0x24

    0f 1e0fe864 77d46b67 000fe87c 1e0fe89c 1e0fe87c ntdll!RtlDispatchException+0x127

    10 1e0fe864 01efbae3 000fe87c 1e0fe89c 1e0fe87c ntdll!KiUserExceptionDispatcher+0xf

    11 (Inline) -------- -------- -------- -------- libcef!base::debug::BreakDebugger+0x9 [f:\code\cef\2623\chromium\src\base\debug\debugger_win.cc @ 18]

    12 1e0ff128 0281ee14 17417828 00d7b000 00000003 libcef!logging::LogMessage::~LogMessage+0x183 [f:\code\cef\2623\chromium\src\base\logging.cc @ 737]

    13 1e0ff1ec 035502e0 00d7b000 00000049 17417830 libcef!base::`anonymous namespace'::OnNoMemory+0xa4 [f:\code\cef\2623\chromium\src\base\process\memory.cc @ 20]

    14 1e0ff220 035500c6 1e0ff3a8 00d7b000 00000049 libcef!content::ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory+0xe8 [f:\code\cef\2623\chromium\src\content\child\child_discardable_shared_memory_manager.cc @ 307]

    15 1e0ff3cc 030328bd 1e0ff3e0 00000d7b 00d7a3c0 libcef!content::ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory+0x24c [f:\code\cef\2623\chromium\src\content\child\child_discardable_shared_memory_manager.cc @ 188]

    16 1e0ff3e4 01fefc9c 00d7a3c0 1e0ff9a8 3672d698 libcef!SkDiscardableMemory::Create+0x25 [f:\code\cef\2623\chromium\src\skia\ext\skdiscardablememory_chrome.cc @ 42]

    17 1e0ff420 01fede90 1e0ff9a8 00000000 283f11a4 libcef!SkResourceCacheDiscardableAllocator::allocPixelRef+0x5c [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skresourcecache.cpp @ 186]

    18 (Inline) -------- -------- -------- -------- libcef!SkBitmap::tryAllocPixels+0x26 [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skbitmap.cpp @ 284]

    19 1e0ff89c 02009214 1e0ff9a8 283f11a4 1794e608 libcef!SkImageGenerator::tryGenerateBitmap+0x170 [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagegenerator.cpp @ 172]

    1a (Inline) -------- -------- -------- -------- libcef!SkImageGenerator::tryGenerateBitmap+0xe [f:\code\cef\2623\chromium\src\third_party\skia\include\core\skimagegenerator.h @ 231]

    1b 1e0ff8f4 02009365 1e0ff9a8 283f1198 1e0ff9a8 libcef!SkImageCacherator::generateBitmap+0x54 [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagecacherator.cpp @ 95]

    1c 1e0ff90c 020093dc 1e0ff9a8 36923e10 00000000 libcef!SkImageCacherator::tryLockAsBitmap+0x25 [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagecacherator.cpp @ 134]

    1d 1e0ff97c 01feee72 1e0ff9a8 36923e10 00000000 libcef!SkImageCacherator::lockAsBitmap+0x2c [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagecacherator.cpp @ 150]

    1e 1e0ff990 01fb3788 1e0ff9a8 00000000 04c8ff39 libcef!SkImage_Generator::getROPixels+0x12 [f:\code\cef\2623\chromium\src\third_party\skia\src\image\skimage_generator.cpp @ 75]

    1f 1e0ff9dc 0291959e 1e0ff9f7 1738f008 28986c00 libcef!SkImage::preroll+0x28 [f:\code\cef\2623\chromium\src\third_party\skia\src\image\skimage.cpp @ 86]

    20 (Inline) -------- -------- -------- -------- libcef!cc::ImageDecodeController::DecodeImage+0x9 [f:\code\cef\2623\chromium\src\cc\tiles\image_decode_controller.cc @ 85]

    21 1e0ffa10 034fe05b 1738f014 1742b690 1742b690 libcef!cc::`anonymous namespace'::ImageDecodeTaskImpl::RunOnWorkerThread+0x9e [f:\code\cef\2623\chromium\src\cc\tiles\image_decode_controller.cc @ 36]

    22 1e0ffa48 034fdf70 1742b690 1742b690 1742b690 libcef!content::RasterWorkerPool::RunTaskWithLockAcquired+0xbb [f:\code\cef\2623\chromium\src\content\renderer\raster_worker_pool.cc @ 302]

    23 1e0ffa58 01f5f0da 1742b6ac 00000000 1e0ffa98 libcef!content::RasterWorkerPool::Run+0x15 [f:\code\cef\2623\chromium\src\content\renderer\raster_worker_pool.cc @ 175]

    24 1e0ffa68 01f5f01c 1794e650 7752c5e0 00000000 libcef!base::DelegateSimpleThread::Run+0x1a [f:\code\cef\2623\chromium\src\base\threading\simple_thread.cc @ 88]

    25 1e0ffa98 01f0d3f7 00000000 00000000 1794e650 libcef!base::SimpleThread::ThreadMain+0x9c [f:\code\cef\2623\chromium\src\base\threading\simple_thread.cc @ 67]

    26 1e0ffab8 7752ef3c 1794e650 1e0ffb04 77d63618 libcef!base::`anonymous namespace'::ThreadFunc+0x87 [f:\code\cef\2623\chromium\src\base\threading\platform_thread_win.cc @ 86]

    27 1e0ffac4 77d63618 1794e650 699fc9d5 00000000 kernel32!BaseThreadInitThunk+0xe

    28 1e0ffb04 77d635eb 01f0d370 1794e650 00000000 ntdll!__RtlUserThreadStart+0x70

    29 1e0ffb1c 00000000 01f0d370 1794e650 00000000 ntdll!_RtlUserThreadStart+0x1b

    可以看到,抓dmp文件时,主线程时当前线程,在我们查找过程中,发现35号线程符合我们的要求:一是是一个cef线程,二是包含了异常栈,基本可以判断这个线程就是异常产生的线程。

    切换到该线程~35s

    0:000> ~35s

    eax=00000110 ebx=1e0fe87c ecx=00391620 edx=1e0fe21c esi=1e0fe87c edi=1e0fe89c

    eip=77d46c04 esp=1e0fe214 ebp=1e0fe560 iopl=0 nv up ei pl zr na pe cy

    cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000247

    ntdll!KiFastSystemCallRet:

    77d46c04 c3 ret

    输出栈,kv

    0:035> kv

    # ChildEBP RetAddr Args to Child

    00 1e0fe210 77d45e3c 77578bad 90000003 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0])

    01 1e0fe214 77578bad 90000003 00000000 00000000 ntdll!NtRaiseHardError+0xc (FPO: [6,0,0])

    02 1e0fe560 14e1175d 1e0fe87c 1e0fe89c 00000000 kernel32!RaiseFailFastException+0xe0 (FPO: [Non-Fpo])

    03 1e0fe59c 14e11a14 b7ea7701 00000000 00000000 clr!RaiseFailFastExceptionOnWin7+0x6a (FPO: [Non-Fpo])

    04 1e0fe5ec 14e124bc 00000005 b7ea74d9 1e0fe77c clr!WatsonLastChance+0x15f (FPO: [1,13,0])

    05 1e0fe670 14e12766 00000000 0ef59b50 14e12721 clr!InternalUnhandledExceptionFilter_Worker+0x231 (FPO: [Non-Fpo])

    06 1e0fe684 6b384cd7 1e0fe77c bb7efc13 6b384af2 clr!COMUnhandledExceptionFilter+0x40 (FPO: [Non-Fpo])

    07 1e0fe6b0 6b384b20 003172d0 1e0fe77c 775a778c mscoreei!CLRUEFManager::InvokeUEFCallbacks+0x29 (FPO: [Non-Fpo])

    08 1e0fe6c4 775409ae 1e0fe77c bb5fdf63 00000000 mscoreei!InternalUnhandledExceptionFilter+0x2e (FPO: [Non-Fpo])

    09 1e0fe74c 77d77858 1e0fe77c 77d1e55c 00000000 kernel32!UnhandledExceptionFilter+0x127 (FPO: [Non-Fpo])

    0a 1e0fe754 77d1e55c 00000000 1e0ffb04 77d50e68 ntdll!__RtlUserThreadStart+0x62 (FPO: [SEH])

    0b 1e0fe768 77d1e3f4 00000000 00000000 00000000 ntdll!_EH4_CallFilterFunc+0x12 (FPO: [Uses EBP] [0,0,4])

    0c 1e0fe790 77d46d09 fffffffe 1e0ffaf4 1e0fe89c ntdll!_except_handler4+0x8e (FPO: [Non-Fpo])

    0d 1e0fe7b4 77d46cdb 1e0fe87c 1e0ffaf4 1e0fe89c ntdll!ExecuteHandler2+0x26 (FPO: [Uses EBP] [5,3,1])

    0e 1e0fe7d8 77d1fbc7 1e0fe87c 1e0ffaf4 1e0fe89c ntdll!ExecuteHandler+0x24 (FPO: [5,0,3])

    0f 1e0fe864 77d46b67 000fe87c 1e0fe89c 1e0fe87c ntdll!RtlDispatchException+0x127 (FPO: [Non-Fpo])

    10 1e0fe864 01efbae3 000fe87c 1e0fe89c 1e0fe87c ntdll!KiUserExceptionDispatcher+0xf (FPO: [2,0,0]) (CONTEXT @ 1e0fe89c)

    11 (Inline) -------- -------- -------- -------- libcef!base::debug::BreakDebugger+0x9 (Inline Function @ 01efbae3) (CONV: cdecl) [f:\code\cef\2623\chromium\src\base\debug\debugger_win.cc @ 18]

    12 1e0ff128 0281ee14 17417828 00d7b000 00000003 libcef!logging::LogMessage::~LogMessage+0x183 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\base\logging.cc @ 737]

    13 1e0ff1ec 035502e0 00d7b000 00000049 17417830 libcef!base::`anonymous namespace'::OnNoMemory+0xa4 (FPO: [Non-Fpo]) (CONV: cdecl) [f:\code\cef\2623\chromium\src\base\process\memory.cc @ 20]

    14 1e0ff220 035500c6 1e0ff3a8 00d7b000 00000049 libcef!content::ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory+0xe8 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\content\child\child_discardable_shared_memory_manager.cc @ 307]

    15 1e0ff3cc 030328bd 1e0ff3e0 00000d7b 00d7a3c0 libcef!content::ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory+0x24c (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\content\child\child_discardable_shared_memory_manager.cc @ 188]

    16 1e0ff3e4 01fefc9c 00d7a3c0 1e0ff9a8 3672d698 libcef!SkDiscardableMemory::Create+0x25 (FPO: [Non-Fpo]) (CONV: cdecl) [f:\code\cef\2623\chromium\src\skia\ext\skdiscardablememory_chrome.cc @ 42]

    17 1e0ff420 01fede90 1e0ff9a8 00000000 283f11a4 libcef!SkResourceCacheDiscardableAllocator::allocPixelRef+0x5c (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skresourcecache.cpp @ 186]

    18 (Inline) -------- -------- -------- -------- libcef!SkBitmap::tryAllocPixels+0x26 (Inline Function @ 01fede90) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skbitmap.cpp @ 284]

    19 1e0ff89c 02009214 1e0ff9a8 283f11a4 1794e608 libcef!SkImageGenerator::tryGenerateBitmap+0x170 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagegenerator.cpp @ 172]

    1a (Inline) -------- -------- -------- -------- libcef!SkImageGenerator::tryGenerateBitmap+0xe (Inline Function @ 02009214) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\include\core\skimagegenerator.h @ 231]

    1b 1e0ff8f4 02009365 1e0ff9a8 283f1198 1e0ff9a8 libcef!SkImageCacherator::generateBitmap+0x54 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagecacherator.cpp @ 95]

    1c 1e0ff90c 020093dc 1e0ff9a8 36923e10 00000000 libcef!SkImageCacherator::tryLockAsBitmap+0x25 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagecacherator.cpp @ 134]

    1d 1e0ff97c 01feee72 1e0ff9a8 36923e10 00000000 libcef!SkImageCacherator::lockAsBitmap+0x2c (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\core\skimagecacherator.cpp @ 150]

    1e 1e0ff990 01fb3788 1e0ff9a8 00000000 04c8ff39 libcef!SkImage_Generator::getROPixels+0x12 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\image\skimage_generator.cpp @ 75]

    1f 1e0ff9dc 0291959e 1e0ff9f7 1738f008 28986c00 libcef!SkImage::preroll+0x28 (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\third_party\skia\src\image\skimage.cpp @ 86]

    20 (Inline) -------- -------- -------- -------- libcef!cc::ImageDecodeController::DecodeImage+0x9 (Inline Function @ 0291959e) (CONV: thiscall) [f:\code\cef\2623\chromium\src\cc\tiles\image_decode_controller.cc @ 85]

    21 1e0ffa10 034fe05b 1738f014 1742b690 1742b690 libcef!cc::`anonymous namespace'::ImageDecodeTaskImpl::RunOnWorkerThread+0x9e (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\cc\tiles\image_decode_controller.cc @ 36]

    22 1e0ffa48 034fdf70 1742b690 1742b690 1742b690 libcef!content::RasterWorkerPool::RunTaskWithLockAcquired+0xbb (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\content\renderer\raster_worker_pool.cc @ 302]

    23 1e0ffa58 01f5f0da 1742b6ac 00000000 1e0ffa98 libcef!content::RasterWorkerPool::Run+0x15 (FPO: [0,0,4]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\content\renderer\raster_worker_pool.cc @ 175]

    24 1e0ffa68 01f5f01c 1794e650 7752c5e0 00000000 libcef!base::DelegateSimpleThread::Run+0x1a (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\base\threading\simple_thread.cc @ 88]

    25 1e0ffa98 01f0d3f7 00000000 00000000 1794e650 libcef!base::SimpleThread::ThreadMain+0x9c (FPO: [Non-Fpo]) (CONV: thiscall) [f:\code\cef\2623\chromium\src\base\threading\simple_thread.cc @ 67]

    26 1e0ffab8 7752ef3c 1794e650 1e0ffb04 77d63618 libcef!base::`anonymous namespace'::ThreadFunc+0x87 (FPO: [Non-Fpo]) (CONV: stdcall) [f:\code\cef\2623\chromium\src\base\threading\platform_thread_win.cc @ 86]

    27 1e0ffac4 77d63618 1794e650 699fc9d5 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])

    28 1e0ffb04 77d635eb 01f0d370 1794e650 00000000 ntdll!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])

    29 1e0ffb1c 00000000 01f0d370 1794e650 00000000 ntdll!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])

    注意到libcef!base::debug::BreakDebugger+0x9 (Inline Function @ 01efbae3) (CONV: cdecl) [f:\code\cef\2623\chromium\src\base\debug\debugger_win.cc @ 18]

    赶紧查看源码

    // Copyright (c) 2010 The Chromium Authors. All rights reserved.

    // Use of this source code is governed by a BSD-style license that can be

    // found in the LICENSE file.

    #include "base/debug/debugger.h"

    #include

    #include

    namespace base {

    namespace debug {

    bool BeingDebugged() {

    return ::IsDebuggerPresent() != 0;

    }

    void BreakDebugger() {

    if (IsDebugUISuppressed())

    _exit(1);

    __debugbreak();

    }

    } // namespace debug

    } // namespace base

    是这__debugbreak();函数引发的异常,且对话框是它弹出的。查下这个函数的资料。

    根据微软的介绍,这是一个编译器内部函数。Microsoft 专用将在代码中引起断点,并在其中提示用户运行调试程序(就是本文最开始提到的那个对话框)。找到了始作俑者,那么回头想想,为什么会调用这个呢,根据异常栈,查询libcef3的代码,发现是libcef在加载网页图片时,内存缓冲区发生溢出。这时,libcef会输出日志,在日志对象的析构里会根据日志级别,做不同处理,由于这里时内存溢出错误,是很严重的,所以它采用了__debugbreak();及时中断程序,并跳出提示框提示开发者,程序有错误了赶紧调试解决问题。

    展开全文
  • eplan中断点怎么关联

    千次阅读 2021-01-15 05:31:54
    答:为了解决用户可能碰到关于"我的EPLAN 软件 符号、中断点等 关联参考 不显示 什么设置出问题 在线等大神解答"相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网...

    答:为了解决用户可能碰到关于"我的EPLAN 软件 符号、中断点等 关联参考 不显示 什么设置出问题 在线等大神解答"相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联...

    答:首先请双击中断点,看他们的“完整设备标识符”是否相同。 只有相同的时候才能连起来。 因为你加了位置框,如果在同一页内,会使中断点的完整标识符中的“位置”发生变化,所以连不起来。 把完整标识符改一致之后,设备连起来了,如果显示有误,就打...

    答:在这个导航器的中断点名称上点右键,有个分类,在这里可以调整中断点的连接顺序

    答:看是否选择了隐藏,双击中断点或元件。 然后可以再看一下,选项---设置---项目---“你的项目”---关联参考

    答:在中段年只能在页面中关联,不能延长下一页,因为他不值得的功能

    答:他们自动关联是因为你命名相同了。 只要命名相同的的设备,系统都会把它自动关联上。 你可以修改命名,可以看全名选项

    答:1、创建文本时勾选下面路径功能文本复选框。 2、按下键盘上的“I”键,显示出插入点位置。 3、将路径功能文本的插入点移动到需要关联的设备符号上即可。 希望可以帮到你

    答:双击元器件,进入显示一栏,点击这个可以移动关联参考,不显示的话可以直接删除掉关联参考

    答:选项-设置-项目-项目名-关联参考/触点映像-常规,窗口右侧最底行 勾上就行了

    答:当两个对象的功能代号,位置代号,设备标识符三者一样时,会自动关联的,同一个元件中是不能有两个或更多主功能元件的。

    展开全文
  • CefSharp 中断点 已达到中断点

    千次阅读 2021-03-07 16:58:36
    相信cefsharp中断点问题会困扰到很多人,以下是我碰到的情况,不知大家是否和我一样。多个项目中使用碰到cefsharp中断点 已到达报错问题!在此记录!查看两个项目debug文件夹下面的 debug.log日志文件,发现是内存...

    相信cefsharp中断点问题会困扰到很多人,以下是我碰到的情况,不知大家是否和我一样。

    2dda821085d2ccac2bcf0a1e1db5ba20.png

    f7d0b00311bdfd5f90dc2f8e6e76f186.png

    多个项目中使用碰到cefsharp中断点 已到达报错问题!在此记录!

    查看两个项目debug文件夹下面的 debug.log日志文件,发现是内存溢出造成。

    产生中断点原因:

    1、代码原因导致内存一直在增长!(运行一段时间报异常)

    可以查看任务管理器,程序内存有没有一直在增加;

    2、在另一个项目中发现加载长图也会直接报中断点异常!(直接报异常)

    由于代码中很多视频和大图,导致这个内存溢出经常出现,优化代码后出现频率减小,但是还会出现。

    ed93cf21bd8ef4cd4e7dc472ac167dba.png

    解决办法:

    查看代码有没有内存溢出现象,修改代码。

    大多数网上报错问题,应该是45版本和49版本。可以升级cefsharp版本解决问题。

    ec3cd4d3a53a0e235ea47eb5d4939a8d.png

    当前使用版本为45版本,但是别人用cefsharp 并没有报中断点异常。于是升级cefsharp到63版本,解决中断点问题,可能是cefsharp45版本和49版本的漏洞吧!我只是猜测,45版本没解决问题!

    5c875b243b8ae129c1cfa2baa34a07e6.png

    CefSharp 63版本(X86),支持mp4 h264编码,需要的自行下载!

    使用:

    下载后只需替换debug下面的全部文件

    项目右键"添加引用",找到debug下面的:

    CefSharp.dll

    CefSharp.Core.dll

    CefSharp.WinForms.dll

    在form中编写测试代码:

    using CefSharp;

    using CefSharp.WinForms;

    public ChromiumWebBrowser browser;

    public void InitBrowser(){

    Cef.Initialize(new CefSettings());

    browser = new ChromiumWebBrowser ("www.baidu.com");

    this.Controls.Add(browser);

    browser.Dock = DockStyle.Fill;

    }

    在InitializeComponent()方法中调用 InitBrowser()。

    展开全文
  • pycharm中断点的使用

    2021-09-06 09:09:52
    - 调用堆栈信息是从运行开始,自下而上开始运行

    在这里插入图片描述- 调用堆栈信息是从运行开始,自下而上开始运行

    展开全文
  • MATLAB中断点调试入门到进阶 第一种情况:单个.m文件的断点调试 图一 (把j和数组A中的三个元素相加) 方法—可以看到,在代码的左侧,有行数提示,我们想要对这里的代码进行调试,直接在左侧的行数位置点一下,会...
  • 在写定时器中断时,想每隔20ms就中断一次,结果怎么都返回不了 原程序 #include<reg51.h> unsigned char i; //定时器0初始化 void IT0_INIT() { TMOD=0x01; TH0=(65536-2000)/256; TL0=(65536-2000)%256...
  • vscode中断点失效问题

    千次阅读 2021-07-24 12:52:42
    vscode无法调试 1、断点失效 这是出现问题是调试的样子 解决方案 打开 如图添加 然后就 稳得一批啦! 2、如果第一种没有用的话 设置中搜索:just 将这个勾选项取消
  • pycharm中断点调试代码

    2021-12-06 14:38:34
    打断:pycharm中代码行前面的红点即为断点 运行调试代码:debug英语译为调试、排错
  • 操作系统对中断信号的处理实际是对硬件中断的一种模拟, CPU在INTR引脚上接到一个中断请求信号,如果此时IF=1,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在INTA引脚连续发两个负脉冲,外设在...
  • Java中启动一个线程很容易,通常情况下我们都是等到...首先来看Thread类三个和中断有关的方法:public class Thread {// 发出一个中断请求,把标志位设定为中断状态,不会终止线程运行。// 其他线程试图调用该方法,...
  • 什么是中断中断就是被打断的意思。生活中充满了中断,甚至可以说生活中离不开中断。比如我们正在写代码时,被领导叫出去谈话,打断了当前的工作,这就是中断。而且这个中断有点“意外”,因为没人提前告知我们。当然...
  • Linux 中断管理机制GIC 硬件原理GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为:接受硬件中断信号,并经过一定处...
  • 中断是硬件系统的基本功能,DSP通过中断实现和其他芯片的实时交互。中断是指DSP在执行程序的过程中,当出现异常情况或特殊请求时,DSP停止现行程序的运行,转向这些异常情况会特殊请求的处理,处理结束后再返回现行...
  • 中断中断处理流程

    千次阅读 2020-12-20 04:41:20
    1. 中断概念中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器...
  • 时钟中断

    2021-07-21 03:25:57
    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!在单片机程序设计中,设置一个好的时钟中断,将能...中文名时钟中断外文名clock interrupt时钟中断电路编辑语音一种时钟中断检测电路,包...
  • 在单片机程序设计中,设置一个好的时钟中断,将能使一个CPU发挥两个CPU的功效,大大方便和简化程序的编制,提高系统的效率与可操作性。那么你对时钟中断了解多少呢?以下是由学习啦小编整理关于什么是时钟中断的内容...
  • MIPS中断总结

    2021-08-19 18:31:47
    1. mips中断总结 本文将总结关于MIPS架构的中断系统。同时也会涉及到SylixOS的BSP如何处理和设置中断控制器。 2. 什么是中断 ...同时异常向量表是CPU产生异常时,处理产生异常的入口。这对中断的理解
  • 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧...中文名中断外文名Interrupt Request分类中断装置和中断处理程序相关概念程序状态字和向量中断等系统功能实现中断响应和中断返回等中断定...
  • 1、简介 2、中断处理 3、软中断
  • 中断

    2021-03-10 18:05:59
    中断(Interruption)也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够及时响应。
  • Java中断机制

    2021-02-25 18:32:12
    1. 引言当我们点击某个杀毒软件的取消按钮来停止查杀...如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此。中断机制是如何工作的?捕获或检测到中断后,是抛出Interrup...
  • 吐血整理 | 肝翻Linux中断所有知识 Linux kernel中断子系统之(五):驱动申请中断API 前言   中断的处理主要有以下几个功能模块:硬件中断号到Linux irq中断号的映射,并创建好irq_desc中断描述符;中断注册时...
  • Linux中断中断处理程序 由于处理器的速度与外设的速度相差很大,无法采取处理器向外设发出请求然后等待的方法。处理器与外设通信的方法: 轮询:处理器定期对设备的状态进行查询(缺点:在不需要通信的情况下,...
  • 每按一下按键(外部 0 中断 P3.2),8 个 LED 从下向上流水 1 次。 电路图: 代码: #include<reg51.h> #include<intrins.h> void delay(unsigned int m) { unsigned int i; for(;m>0;m--) { ...
  • 三、LED点亮灭 四、参考资料 一、使用CubeMX生成代码 打开CubeMX,点击ACCESS TO MCU SELECTOR创建新项目 在Part Number处选择芯片,我这里用的是STM32F103C8T6,所以选择的是STM32F103C8,选择芯片之后再...
  • Linux 中断实验

    2021-11-08 21:48:56
    目录Linux 中断简介Linux 中断API 函数上半部与下半部设备树中断信息节点获取中断号硬件原理图分析实验程序编写修改设备树文件 不管是裸机实验还是Linux 下的驱动实验,中断都是频繁使用的功能,关于I.MX6U 的中断...
  • 外部中断常用库函数 外部中断的一般配置步骤 实验代码
  • 8xx51单片机有5个中断源,8xx52单片机正加了一个定时/计时器2,共有6个中断源,其中两个外部中断源,其余为内部中断源。本篇博客以52单片机为例总结。 中断中断源就是引起中断的原因和发出中断申请的来源。他们在...
  • 中断:1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 406,358
精华内容 162,543
关键字:

中断点