Chromium `debugger` 等效于 Cygwin 的 `gdb`?
Chromium `debugger` equivalent, on `gdb` for Cygwin?
人们如何从源代码中触发 gdb
上的断点(特别是对于 Cygwin)?
比如当 JS 脚本中包含 debugger
单词并且 Chromium 开发工具触发停止进行调试时?
以下是 SDL2 implements 此功能的作用:
#if defined(_MSC_VER)
/* Don't include intrin.h here because it contains C++ code */
extern void __cdecl __debugbreak(void);
#define SDL_TriggerBreakpoint() __debugbreak()
#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int \n\t" )
#elif defined(__386__) && defined(__WATCOMC__)
#define SDL_TriggerBreakpoint() { _asm { int 0x03 } }
#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__)
#include <signal.h>
#define SDL_TriggerBreakpoint() raise(SIGTRAP)
#else
/* How do we trigger breakpoints on this platform? */
#define SDL_TriggerBreakpoint()
#endif
Cygwin 上的条件可能应该解析为 __asm__ __volatile__ ( "int \n\t" )
。
人们如何从源代码中触发 gdb
上的断点(特别是对于 Cygwin)?
比如当 JS 脚本中包含 debugger
单词并且 Chromium 开发工具触发停止进行调试时?
以下是 SDL2 implements 此功能的作用:
#if defined(_MSC_VER)
/* Don't include intrin.h here because it contains C++ code */
extern void __cdecl __debugbreak(void);
#define SDL_TriggerBreakpoint() __debugbreak()
#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int \n\t" )
#elif defined(__386__) && defined(__WATCOMC__)
#define SDL_TriggerBreakpoint() { _asm { int 0x03 } }
#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__)
#include <signal.h>
#define SDL_TriggerBreakpoint() raise(SIGTRAP)
#else
/* How do we trigger breakpoints on this platform? */
#define SDL_TriggerBreakpoint()
#endif
Cygwin 上的条件可能应该解析为 __asm__ __volatile__ ( "int \n\t" )
。