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
cmd/link: function symbol table not sorted by program counter #50679
Comments
Thanks for report. Is there a way for us to reproduce the error? What program do you build? Thanks. |
@cherrymui @ianlancetaylor I updated the new test result, and I hope to get your help. At present, my business has been blocked due to this problem, thank you very much |
@cherrymui Sorry, after testing again today, I found that this error is not fixed, but it is still not available in Ubuntu (Docker, Ubuntu Latest) environment after compiling |
Still, what is your program? Is there a way that we can build the program and reproduce the failure? Without a reproducer it would be very hard to understand what the problem is. Also, does it reproduce with a different version of Go, say, Go 1.18beta1 or Go 1.16? Thanks. The second error looks very different. It is likely that it is not the same cause. |
@cherrymui I'm sorry that this is a commercial software, I can't open the binary file, or could you tell me the debugging method? I can output debugging information |
@crcms I'm not sure what this bug is about. You start by saying that the symbol table is not sorted by address. That is true, if you are looking at the output of You then report a problem in which the program reports |
@ianlancetaylor I try readelf -s [bin file], is output empty |
@crcms OK, in that case, what precisely do you mean when you say that the function symbol table is not sorted by program counter? |
@ianlancetaylor First of all, regarding the question of "Function Symbol table not sorted by Program Counter", I found that the prompted scenario was reported when I used waitGroup without defer, similar to this example: jp.wg.Add(1)
go func() {
// Notice that we have not added defer
jp.wg.Done()
defer support.RecoverLogger()
defer close(jp.httpPool)
BreakLoop:
for {
select {
case v := <-jp.httpPool:
jp.sendFromHttp(v)
case <-jp.selfCtx.Done():
break BreakLoop
}
}
}() When I used Now let's focus on the second question: Another case of go1.71.1 running on Ubuntu (Ubuntu Docker latest)
|
@cherrymui @ianlancetaylor I have solved the problem, thank you very much |
What version of Go are you using (
go version
)?Build command
Runing result
Supplement, important
Today, I tried to recompile an application in Jenkins, but when it was executed in Ubuntu, another error occurred (the code and compilation environment remained unchanged).
ubuntu: use ubuntu:latest
uname -a
At first I suspected problems with GCC and g++ were causing the compilation environment
In Ubuntu GCC&G++ use 9.x
But in my tests, this conclusion is wrong and seems to have no effect
Note
Ubuntu was the only operating system I tried to run that didn't work with fixed code-based and compilation environments
docker : apline latest ok
centos7 centos8 ok
ubuntu: crash
The text was updated successfully, but these errors were encountered: