Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 52 for unwinding (0.13 sec)

  1. src/runtime/testdata/testprogcgo/panic.go

    package main
    
    // This program will crash.
    // We want to test unwinding from a cgo callback.
    
    /*
    void call_callback(void);
    */
    import "C"
    
    func init() {
    	register("PanicCallback", PanicCallback)
    }
    
    //export panic_callback
    func panic_callback() {
    	var i *int
    	*i = 42
    }
    
    func PanicCallback() {
    	C.call_callback()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Oct 27 20:29:07 UTC 2021
    - 312 bytes
    - Viewed (0)
  2. test/fixedbugs/issue51401.go

    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    // Issue 51401: bad inline info in generated interface method wrapper
    // causes infinite loop in stack unwinding.
    
    package main
    
    import "runtime"
    
    type Outer interface{ Inner }
    
    type impl struct{}
    
    func New() Outer { return &impl{} }
    
    type Inner interface {
    	DoStuff() error
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Mar 01 21:27:42 UTC 2022
    - 766 bytes
    - Viewed (0)
  3. src/runtime/runtime-seh_windows_test.go

    	if runtime.GOARCH != "amd64" {
    		t.Skip("skipping amd64-only test")
    	}
    	// This test checks that Win32 is able to retrieve
    	// function metadata stored in the .pdata section
    	// by the Go linker.
    	// Win32 unwinding will fail if this test fails,
    	// as RtlUnwindEx uses RtlLookupFunctionEntry internally.
    	// If that's the case, don't bother investigating further,
    	// first fix the .pdata generation.
    	sehf1pc := abi.FuncPCABIInternal(sehf1)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jul 31 16:52:06 UTC 2023
    - 4.7K bytes
    - Viewed (0)
  4. src/runtime/tracestack.go

    //
    // fpunwindExpand checks if pcBuf contains logical frames (which include inlined
    // frames) or physical frames (produced by frame pointer unwinding) using a
    // sentinel value in pcBuf[0]. Logical frames are simply returned without the
    // sentinel. Physical frames are turned into logical frames via inline unwinding
    // and by applying the skip value that's stored in pcBuf[0].
    func fpunwindExpand(dst, pcBuf []uintptr) int {
    	if len(pcBuf) == 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 21 14:38:56 UTC 2024
    - 11K bytes
    - Viewed (0)
  5. src/runtime/testdata/testwinlib/main.c

            c->Rsp += 8;
    #elif defined(_X86_)
            c->Eip = *(DWORD *)c->Esp;
            c->Esp += 4;
    #else
            c->Pc = c->Lr;
    #endif
    #ifdef _ARM64_
            // TODO: remove when windows/arm64 supports SEH stack unwinding.
            return EXCEPTION_CONTINUE_EXECUTION;
    #endif
        }
        return EXCEPTION_CONTINUE_SEARCH;
    }
    LONG WINAPI customContinueHandlder(struct _EXCEPTION_POINTERS *ExceptionInfo)
    {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 05 08:26:52 UTC 2023
    - 2.5K bytes
    - Viewed (0)
  6. test/typeparam/issue58513.go

    // However, when these expressions are inlined, we were constructing
    // the function literal bodies with the inline-adjusted positions
    // instead of the original (inline-free) positions, which could lead
    // to infinite loops when unwinding the stack.
    
    package main
    
    import "runtime"
    
    func assert[_ any]() {
    	panic(0)
    }
    
    func Assert[To any]() func() {
    	return assert[To]
    }
    
    type asserter[_ any] struct{}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Feb 27 23:07:49 UTC 2023
    - 1.2K bytes
    - Viewed (0)
  7. src/runtime/signal_arm64.go

    	c.set_sp(sp)
    	*(*uint64)(unsafe.Pointer(uintptr(sp))) = c.lr()
    	// Make sure a valid frame pointer is saved on the stack so that the
    	// frame pointer checks in adjustframe are happy, if they're enabled.
    	// Frame pointer unwinding won't visit the sigpanic frame, since
    	// sigpanic will save the same frame pointer before calling into a panic
    	// function.
    	*(*uint64)(unsafe.Pointer(uintptr(sp - goarch.PtrSize))) = c.r29()
    
    	pc := gp.sigpc
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Apr 05 18:16:00 UTC 2023
    - 3.8K bytes
    - Viewed (0)
  8. src/runtime/symtabinl_test.go

    			// We're probably in the trailing function padding, where findfunc
    			// still returns f but there's no symbolic information. Just keep
    			// going until we definitely hit the end. If we see a "?" in the
    			// middle of unwinding, that's a real problem.
    			//
    			// TODO: If we ever have function end information, use that to make
    			// this robust.
    			continue
    		}
    		for ; uf.valid(); uf = u.next(uf) {
    			file, line := u.fileLine(uf)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 3K bytes
    - Viewed (0)
  9. src/internal/abi/symtab.go

    	// The traceback routines cannot encode such changes into the
    	// pcsp tables, so the function traceback cannot safely unwind past
    	// SPWrite functions. Stopping at an SPWrite function is considered
    	// to be an incomplete unwinding of the stack. In certain contexts
    	// (in particular garbage collector stack scans) that is a fatal error.
    	FuncFlagSPWrite
    
    	// FuncFlagAsm indicates that a function was implemented in assembly.
    	FuncFlagAsm
    )
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Feb 16 14:25:22 UTC 2024
    - 3.6K bytes
    - Viewed (0)
  10. src/runtime/os3_plan9.go

    		pc := c.pc()
    		sp := c.sp()
    
    		// If we don't recognize the PC as code
    		// but we do recognize the top pointer on the stack as code,
    		// then assume this was a call to non-code and treat like
    		// pc == 0, to make unwinding show the context.
    		if pc != 0 && !findfunc(pc).valid() && findfunc(*(*uintptr)(unsafe.Pointer(sp))).valid() {
    			pc = 0
    		}
    
    		// IF LR exists, sigpanictramp must save it to the stack
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 4K bytes
    - Viewed (0)
Back to top