boost.test не показывает утечку памяти от pyString_from...()
http://msdn.microsoft.com/en-us/library/974tc9t1%28v=vs.80%2... )
2) утечки могут не репортиться, потому что аллокация не проходит через главный дебужный рантайм нашего бинаря, а это может быть вследствие нескольких причин:
- используется динамическое свзяывание с длл (Python.dll?) и там свой рантайм (статический?)
- используются внутренние средства для выделения памяти (статические буферы, хитрые аллокаторы и тд)
boost test parameters: http://www.boost.org/doc/libs/1_49_0/libs/test/doc/html/utf/...
1) подобные утечки репортует студия (хвала дебужному рантайму), то есть boost.test имеет крайне отдаленное отношение в этому репорту, скорее всего там просто включаются эти проверки через _CrtSetDbgFlag ( 2) утечки могут не репортиться, потому что аллокация не проходит через главный дебужный рантайм нашего бинаря, а это может быть вследствие нескольких причин:
- используется динамическое свзяывание с длл (Python.dll?) и там свой рантайм (статический?)
- используются внутренние средства для выделения памяти (статические буферы, хитрые аллокаторы и тд)
boost test parameters: http://www.boost.org/doc/libs/1_49_0/libs/test/doc/html/utf/...
Parameter Name : Detect memory leaks
Environment variable name : BOOST_TEST_DETECT_MEMORY_LEAK
Command line argument name : build_info
Acceptable Values :
0
1
integer value > 1
Description :
positive value tells the framework to detect the memory leaks (if any). Any value greater then 1 in addition is treated as leak allocation number and setup runtime breakpoint. In other words setting this parameter to the positive value N greater than 1 causes the framework to set a breakpoint at Nth memory allocation (don't do that from the command line - only when you are under debugger). Note: if your test program produce memory leaks notifications, they are combined with allocation number values you could use to set a breakpoint. Currently only applies to MS family of compilers.
Ясненько. Спасибо!
Вот сейчас, segfault на строке "print (0)", видимо, где-то лишний Py_DECREF() на PyInt(0) сделан.
Оставить комментарий
Phoenix
Показывает
говорит, что всё хорошо. Почему так?