Open zhaoqin opened 7 years ago
Is it documented somewhere what assumptions DynamoRIO makes about the app's TLS?
See also: https://github.com/DynamoRIO/dynamorio/issues/1936
Usually it's more about the private library TLS, which DR has to create, or about failing to restore the app TLS if there are points where it's read without DR's knowledge, such as via ptrace. Segment stealing means the kernel view of the app's TLS is not always pointing at the app.
I have hit a number of cases of gdb failing to see threads when under DR and I meant to file an issue. Let's make a separate issue on that particular problem, as it may be the same with Go and the apps I was running. I went and filed #2201
Simple Go program cannot run under DynamoRIO. DynamoRIO ToT debug build go version go1.7.5 Linux/amd64
There are 4 threads are created:
However, GDB shows only one thread. The error message of "unreadable memory at 0x18" suggest it is more likely it is accessing the TLS segment. So DR may not handle the Go program TLS correctly.