Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The test code has a certain probability of error #22

Open
piaoxue1949 opened this issue Jan 17, 2023 · 1 comment
Open

The test code has a certain probability of error #22

piaoxue1949 opened this issue Jan 17, 2023 · 1 comment

Comments

@piaoxue1949
Copy link

piaoxue1949 commented Jan 17, 2023

When running the examples program, package the following error, has added the compile flag "-gcflags=all=-l"。
It seems that the memory referenced by uintptr in the patchSymbolValue function is released by GC。
go version go1.19.1 windows/amd64

original function output:
fake
after patch, function output:
please be polite
unpatch, then output:
fake
restore, then output:
please be polite
unpatch, then output:
fake

original function output:
fake
unexpected fault address 0x4fe6e0
fatal error: fault
[signal 0xc0000005 code=0x0 addr=0x4fe6e0 pc=0xc68610]

goroutine 1 [running]:
runtime.throw({0xd37f4e?, 0xc000096300?})
        D:/Program Files/Go/src/runtime/panic.go:1047 +0x65 fp=0xc000095d00 sp=0
xc000095cd0 pc=0xc3c6e5
runtime.sigpanic()
        D:/Program Files/Go/src/runtime/signal_windows.go:261 +0xb6 fp=0xc000095
d30 sp=0xc000095d00 pc=0xc4e2b6
runtime.memmove()
        D:/Program Files/Go/src/runtime/memmove_amd64.s:178 +0x130 fp=0xc000095d
38 sp=0xc000095d30 pc=0xc68610
github.com/cch123/supermonkey/internal/bouk.ReplaceFunction(0xd0dcc0?, 0xd51cf8?
)
        D:/work/github/GO/补丁/supermonkey/internal/bouk/replace.go:26 +0x68 fp=
0xc000095da0 sp=0xc000095d38 pc=0xcae088
github.com/cch123/supermonkey/internal/bouk.patchSymbolValue({0xd0f240?, 0x4fe6e
0?, 0xc000165790?}, {0xd0dcc0, 0xd51cf8, 0x13})
        D:/work/github/GO/补丁/supermonkey/internal/bouk/monkey.go:108 +0x1d6 fp
=0xc000095e58 sp=0xc000095da0 pc=0xcadb36
github.com/cch123/supermonkey/internal/bouk.PatchSymbol({0xd0f240?, 0x4fe6e0?}, 
{0xd0dcc0, 0xd51cf8})
        D:/work/github/GO/补丁/supermonkey/internal/bouk/monkey.go:58 +0x87 fp=0
xc000095ec8 sp=0xc000095e58 pc=0xcad347
github.com/cch123/supermonkey.PatchByFullSymbolName({0xd45004, 0xe}, {0xd0dcc0, 
0xd51cf8})
        D:/work/github/GO/补丁/supermonkey/supermonkey.go:41 +0xf9 fp=0xc000095f
28 sp=0xc000095ec8 pc=0xcfdbd9
main.patchFuncSymbol()
        D:/work/github/GO/补丁/supermonkey/examples/patch_func_symbol.go:13 +0x6
c fp=0xc000095f70 sp=0xc000095f28 pc=0xcfe5ac
main.main()
        D:/work/github/GO/补丁/supermonkey/examples/main.go:5 +0x1c fp=0xc000095
f80 sp=0xc000095f70 pc=0xcfe23c
runtime.main()
        D:/Program Files/Go/src/runtime/proc.go:250 +0x1c8 fp=0xc000095fe0 sp=0x
c000095f80 pc=0xc3ed68
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000095fe8 sp
=0xc000095fe0 pc=0xc67681

goroutine 2 [force gc (idle)]:
runtime.gopark(0xd51f70, 0xe5d1e0, 0x11, 0x14, 0x1)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000055f88 sp=0xc
000055f58 pc=0xc3f15d
runtime.goparkunlock(0x0?, 0x0?, 0x0?, 0x0?)
        D:/Program Files/Go/src/runtime/proc.go:369 +0x2a fp=0xc000055fb8 sp=0xc
000055f88 pc=0xc3f1ea
runtime.forcegchelper()
        D:/Program Files/Go/src/runtime/proc.go:302 +0xa5 fp=0xc000055fe0 sp=0xc
000055fb8 pc=0xc3ef85
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000055fe8 sp
=0xc000055fe0 pc=0xc67681
created by runtime.init.6
        D:/Program Files/Go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0xd51f70, 0xe5d3a0, 0xc, 0x14, 0x1)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000057f68 sp=0xc
000057f38 pc=0xc3f15d
runtime.goparkunlock(0x1?, 0x0?, 0x0?, 0x0?)
        D:/Program Files/Go/src/runtime/proc.go:369 +0x2a fp=0xc000057f98 sp=0xc
000057f68 pc=0xc3f1ea
runtime.bgsweep(0x0?)
        D:/Program Files/Go/src/runtime/mgcsweep.go:297 +0xd1 fp=0xc000057fc8 sp
=0xc000057f98 pc=0xc27791
runtime.gcenable.func1()
        D:/Program Files/Go/src/runtime/mgc.go:178 +0x26 fp=0xc000057fe0 sp=0xc0
00057fc8 pc=0xc1bd46
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000057fe8 sp
=0xc000057fe0 pc=0xc67681
created by runtime.gcenable
        D:/Program Files/Go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xd51f70, 0xe5d460, 0xd, 0x14, 0x2)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000065f48 sp=0xc
000065f18 pc=0xc3f15d
runtime.gopark(0xd51f70, 0xe5d460, 0xd, 0x14, 0x2)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000065f48 sp=0xc000065f18 pc=0xc3f15d
runtime.goparkunlock(0xd5b5d0?, 0x0?, 0x0?, 0x0?)
        D:/Program Files/Go/src/runtime/proc.go:369 +0x2a fp=0xc000065f78 sp=0xc000065f48 pc=0xc3f1ea
runtime.(*scavengerState).park(0xe5d460)
        D:/Program Files/Go/src/runtime/mgcscavenge.go:389 +0x4b fp=0xc000065fa0 sp=0xc000065f78 pc=0xc253eb
runtime.bgscavenge(0x0?)
        D:/Program Files/Go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc000065fc8 sp=0xc000065fa0 pc=0xc259e5
runtime.gcenable.func2()
        D:/Program Files/Go/src/runtime/mgc.go:179 +0x26 fp=0xc000065fe0 sp=0xc000065fc8 pc=0xc1bce6
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000065fe8 sp=0xc000065fe0 pc=0xc67681
created by runtime.gcenable
        D:/Program Files/Go/src/runtime/mgc.go:179 +0xaa

goroutine 5 [finalizer wait]:
runtime.gopark(0xd51f70, 0xeb39f0, 0x10, 0x14, 0x1)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000059df8 sp=0xc000059dc8 pc=0xc3f15d
runtime.goparkunlock(0xc3f72f?, 0xc5?, 0xee?, 0x18000000000?)
        D:/Program Files/Go/src/runtime/proc.go:369 +0x2a fp=0xc000059e28 sp=0xc000059df8 pc=0xc3f1ea
runtime.runfinq()
        D:/Program Files/Go/src/runtime/mfinal.go:180 +0x107 fp=0xc000059fe0 sp=0xc000059e28 pc=0xc1ade7
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000059fe8 sp=0xc000059fe0 pc=0xc67681
created by runtime.createfing
        D:/Program Files/Go/src/runtime/mfinal.go:157 +0x45

goroutine 6 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc000086000, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000067f48 sp=0xc000067f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc000067fe0 sp=0xc000067f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000067fe8 sp=0xc000067fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 18 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc0004c0000, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000061f48 sp=0xc000061f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc000061fe0 sp=0xc000061f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000061fe8 sp=0xc000061fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 34 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d5a0, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004c9f48 sp=0xc0004c9f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004c9fe0 sp=0xc0004c9f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004c9fe8 sp=0xc0004c9fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 19 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc000086020, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc000063f48 sp=0xc000063f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc000063fe0 sp=0xc000063f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000063fe8 sp=0xc000063fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 20 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d5c0, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004c5f48 sp=0xc0004c5f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004c5fe0 sp=0xc0004c5f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004c5fe8 sp=0xc0004c5fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 35 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d5e0, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004cbf48 sp=0xc0004cbf18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004cbfe0 sp=0xc0004cbf48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004cbfe8 sp=0xc0004cbfe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 21 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d600, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004c7f48 sp=0xc0004c7f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004c7fe0 sp=0xc0004c7f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004c7fe8 sp=0xc0004c7fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 36 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d620, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004d3f48 sp=0xc0004d3f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004d3fe0 sp=0xc0004d3f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004d3fe8 sp=0xc0004d3fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 22 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d640, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004cff48 sp=0xc0004cff18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004cffe0 sp=0xc0004cff48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004cffe8 sp=0xc0004cffe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 37 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d660, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004d5f48 sp=0xc0004d5f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004d5fe0 sp=0xc0004d5f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004d5fe8 sp=0xc0004d5fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 23 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d680, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004d1f48 sp=0xc0004d1f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004d1fe0 sp=0xc0004d1f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004d1fe8 sp=0xc0004d1fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 38 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d6a0, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004dbf48 sp=0xc0004dbf18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004dbfe0 sp=0xc0004dbf48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004dbfe8 sp=0xc0004dbfe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 24 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d6c0, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004d7f48 sp=0xc0004d7f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004d7fe0 sp=0xc0004d7f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004d7fe8 sp=0xc0004d7fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 39 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d6e0, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004ddf48 sp=0xc0004ddf18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004ddfe0 sp=0xc0004ddf48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004ddfe8 sp=0xc0004ddfe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 25 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d700, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004d9f48 sp=0xc0004d9f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004d9fe0 sp=0xc0004d9f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004d9fe8 sp=0xc0004d9fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25

goroutine 40 [GC worker (idle)]:
runtime.gopark(0xd51e20, 0xc00020d720, 0x18, 0x14, 0x0)
        D:/Program Files/Go/src/runtime/proc.go:363 +0xfd fp=0xc0004e3f48 sp=0xc0004e3f18 pc=0xc3f15d
runtime.gcBgMarkWorker()
        D:/Program Files/Go/src/runtime/mgc.go:1235 +0x107 fp=0xc0004e3fe0 sp=0xc0004e3f48 pc=0xc1d807
runtime.goexit()
        D:/Program Files/Go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0004e3fe8 sp=0xc0004e3fe0 pc=0xc67681
created by runtime.gcBgMarkStartWorkers
        D:/Program Files/Go/src/runtime/mgc.go:1159 +0x25
@cch123
Copy link
Owner

cch123 commented Mar 10, 2023

🤔 maybe we need to turn gc off?
I dont know whether there is better way to avoid this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants