- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi...
I couldn't find a thread specific to the Thread Checker so please feel free to move this post if needed...
I'm testing a relatively simple algorithm of two threads and it looks like there is a potential deadlock... unfortunately, our mutexes are wrapped in a TMutex class so the actual call to the lock is always done in the place which renders the output given by the checker completely useless.
As you can see, all the erros reported involve the line number 55 of a given class (the lock, of course)...
Is there a way the get backtrace instead of just one line? I really need to know where it's coming from.
Thanks in advance,
Leandro Franco
|ID|Short |Seve|C|Conte|Description |1st Acc|2nd Acc|
| |Description |rity|o|xt[Be| |ess[Bes|ess[Bes|
| | |Name|u|st] | |t] |t] |
| | | |n| | | | |
| | | |t| | | | |
_______________________________________________________________________________
|1 |The sync |Caut|1|"TCon|The sync object notify |"TCondi|"TCondi|
| |object notify |ion | |ditio|operation at "TCondition.h":57|tion.h"|tion.h"|
| |operation wasa| | |n.h":|was a no-op |:57 |:57 |
| |no-op | | |57 | | | |
_______________________________________________________________________________
|2 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 1 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|3 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 1 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|4 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 2 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|5 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 2 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|6 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 3 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|7 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 3 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|8 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 4 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
I couldn't find a thread specific to the Thread Checker so please feel free to move this post if needed...
I'm testing a relatively simple algorithm of two threads and it looks like there is a potential deadlock... unfortunately, our mutexes are wrapped in a TMutex class so the actual call to the lock is always done in the place which renders the output given by the checker completely useless.
As you can see, all the erros reported involve the line number 55 of a given class (the lock, of course)...
Is there a way the get backtrace instead of just one line? I really need to know where it's coming from.
Thanks in advance,
Leandro Franco
|ID|Short |Seve|C|Conte|Description |1st Acc|2nd Acc|
| |Description |rity|o|xt[Be| |ess[Bes|ess[Bes|
| | |Name|u|st] | |t] |t] |
| | | |n| | | | |
| | | |t| | | | |
_______________________________________________________________________________
|1 |The sync |Caut|1|"TCon|The sync object notify |"TCondi|"TCondi|
| |object notify |ion | |ditio|operation at "TCondition.h":57|tion.h"|tion.h"|
| |operation wasa| | |n.h":|was a no-op |:57 |:57 |
| |no-op | | |57 | | | |
_______________________________________________________________________________
|2 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 1 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|3 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 1 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|4 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 2 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|5 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 2 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|6 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 3 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|7 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 3 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
|8 |A sync object |Caut|1|Whole|A synchronization object |"TPosix|"TPosix|
| |was acquired |ion | |Progr|"TPosixMutex.cxx":55 was |Mutex.c|Mutex.c|
| |in the wrong | | |am 4 |acquired in the wrong order at|xx":55 |xx":55 |
| |order | | | |"TPosixMutex.cxx":55 | | |
_______________________________________________________________________________
コピーされたリンク
1 返信
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Silly me...
That's one of the options ("-s n" in case somebody ends up here too)...
Just ignore the post....
Cheers,
Leo