mgorny added a comment.
Herald added a subscriber: dexonsmith.
So I've made some progress on this. However, I'm stuck and I'd use some help
going forward.
I've made a trivial two-threaded program:
#include <stdio.h>
#include <assert.h>
#include <unistd.h>
#include <pthread.h>
void* thread_func(void* x) {
printf("thread 1\n");
int i;
for (i = 0; i < 100; i++)
{
printf("t2 %d\n", i);
sleep(3);
}
return NULL;
}
int main() {
pthread_t t;
printf("step 1\n");
assert(!pthread_create(&t, NULL, thread_func, NULL));
printf("step 2\n");
int i;
for (i = 0; i < 100; i++)
{
printf("t1 %d\n", i);
sleep(3);
}
assert(!pthread_join(t, NULL));
printf("step 3\n");
return 0;
}
Now, if I start it, then issue `process interrupt`, then `thread continue 1`,
everything works as expected. However, if I interrupt it again and then `thread
continue 2` (i.e. try to change the thread running), nothing happens.
According to the gdb-remote log, `vCont` is received but nothing is sent back
(though normally stdout should happen). If I send any other command,
lldb-server dies:
1568906517.952658892 < 16> read packet: $vCont;c:0002#a4
1568906874.978140354 < 1> read packet:
lldb-server exiting...
According to the posix log, Resume is working as expected.
1568906976.934143305 NativeProcessNetBSD.cpp:Resume
no action specified for pid 12124 tid 1
1568906976.934377670 NativeProcessNetBSD.cpp:Resume
processing resume action state suspended signal 2147483647 for pid 12124
tid 1
1568906976.934622765 NativeProcessNetBSD.cpp:Resume
processing resume action state running signal 2147483647 for pid 12124 tid 2
I suspect I'm not setting some state correctly but I so far haven't managed to
figure out which.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64647/new/
https://reviews.llvm.org/D64647
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits