//go:build windows && cgo // +build windows,cgo package main // #include // typedef void(*callmeBackFunc)(); // static void bridgeCallback(callmeBackFunc callback) { // callback(); //} import "C" // CallMeBack call backs C code. // //export CallMeBack func CallMeBack(callback C.callmeBackFunc) { C.bridgeCallback(callback) } // Dummy is called by the C code before registering the exception/continue handlers simulating a debugger. // This makes sure that the Go runtime's lastcontinuehandler is reached before the C continue handler and thus, // validate that it does not crash the program before another handler could take an action. // The idea here is to reproduce what happens when you attach a debugger to a running program. // It also simulate the behavior of the .Net debugger, which register its exception/continue handlers lazily. // //export Dummy func Dummy() int { return 42 } func main() {}