upenn-acg / ocolos-public

Ocolos is the first online code layout optimization system for unmodified applications written in unmanaged languages.
BSD 2-Clause "Simplified" License
49 stars 14 forks source link

tracer doesn't work with the error "thread 87732 delivers a non-SIGSTOP signal" #3

Closed onroadmuwl closed 1 year ago

onroadmuwl commented 1 year ago

I have used the _extract_callsites to produced the call site information successfully, but the tracer doesn't work normally with the error “thread 87732 delivers a non-SIGSTOP signal” and "ERROR: couldn't find symbol for function address 0x20520f0". The complete output is shown in the link below:

https://github.com/onroadmuwl/ocolos_tracer_error/blob/main/tracer.out

Any way to fix that? Thanks.

zyuxuan0115 commented 1 year ago

From your output I noticed [tracer] 0 functions was moved (functions reordered) by BOLT. This is abnormal because in BOLT's lite mode, MySQL will have a number of functions moved by BOLT. On our machine, this number is ~1000. Can you check your MySQL binary by readelf -S /path/to/mysqld and see if it contains .rela.text? If it doesn't, it means you didn't compile mysqld with -Wl,--emit-relocs successfully.

onroadmuwl commented 1 year ago

Thanks for your suggestion, the error of "couldn't find symbol for function address " has been fixed, but the error of “delivers a non-SIGSTOP signal” remains the same. May I ask you some other passible solutions for this error ?The following is the latest output of tracer. https://github.com/onroadmuwl/ocolos_tracer_error/blob/main/tracer1.out

onroadmuwl commented 1 year ago

I'm sorry that I don't follow the README.md strictly. This error is solved if I change the path of libunwind library.