commit
6f3d02deab
@ -1015,15 +1015,7 @@ void debug::dumpInfo()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static va_list getEmptyVAList(va_list list, ...)
|
static void dumpCallstackImpl(MessageHandler *messageHandler, int callstackLevelsToSkip, ...)
|
||||||
{
|
|
||||||
va_start(list, list);
|
|
||||||
va_end(list);
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Dump callstack using the specified handler.
|
|
||||||
void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToSkip /*= 0*/)
|
|
||||||
{
|
{
|
||||||
#if (NV_OS_WIN32 && NV_CC_MSVC) || (defined(HAVE_SIGNAL_H) && defined(HAVE_EXECINFO_H))
|
#if (NV_OS_WIN32 && NV_CC_MSVC) || (defined(HAVE_SIGNAL_H) && defined(HAVE_EXECINFO_H))
|
||||||
if (hasStackTrace())
|
if (hasStackTrace())
|
||||||
@ -1035,7 +1027,8 @@ void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToS
|
|||||||
writeStackTrace(trace, size, callstackLevelsToSkip + 1, lines); // + 1 to skip the call to dumpCallstack
|
writeStackTrace(trace, size, callstackLevelsToSkip + 1, lines); // + 1 to skip the call to dumpCallstack
|
||||||
|
|
||||||
va_list empty;
|
va_list empty;
|
||||||
empty = getEmptyVAList(empty);
|
va_start(empty, callstackLevelsToSkip);
|
||||||
|
va_end(empty);
|
||||||
|
|
||||||
for (uint i = 0; i < lines.count(); i++) {
|
for (uint i = 0; i < lines.count(); i++) {
|
||||||
messageHandler->log(lines[i], empty);
|
messageHandler->log(lines[i], empty);
|
||||||
@ -1045,6 +1038,12 @@ void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToS
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Dump callstack using the specified handler.
|
||||||
|
void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToSkip /*= 0*/)
|
||||||
|
{
|
||||||
|
dumpCallstackImpl(messageHandler, callstackLevelsToSkip);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Set the debug message handler.
|
/// Set the debug message handler.
|
||||||
void debug::setMessageHandler(MessageHandler * message_handler)
|
void debug::setMessageHandler(MessageHandler * message_handler)
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
#include "nvcore/Debug.h" // nvDebugCheck
|
#include "nvcore/Debug.h" // nvDebugCheck
|
||||||
#include "nvcore/Utils.h" // max, clamp
|
#include "nvcore/Utils.h" // max, clamp
|
||||||
|
|
||||||
|
// Both cmath and math for C++11 and C function definitions.
|
||||||
|
#include <cmath>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if NV_OS_WIN32 || NV_OS_XBOX
|
#if NV_OS_WIN32 || NV_OS_XBOX
|
||||||
@ -162,7 +164,9 @@ namespace nv
|
|||||||
|
|
||||||
inline bool isNan(const float f)
|
inline bool isNan(const float f)
|
||||||
{
|
{
|
||||||
#if NV_OS_WIN32 || NV_OS_XBOX
|
#if __cplusplus >= 199711L
|
||||||
|
return std::isnan(f);
|
||||||
|
#elif NV_OS_WIN32 || NV_OS_XBOX
|
||||||
return _isnan(f) != 0;
|
return _isnan(f) != 0;
|
||||||
#elif NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_NETBSD || NV_OS_OPENBSD || NV_OS_ORBIS || NV_OS_LINUX
|
#elif NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_NETBSD || NV_OS_OPENBSD || NV_OS_ORBIS || NV_OS_LINUX
|
||||||
return isnan(f);
|
return isnan(f);
|
||||||
|
Loading…
Reference in New Issue
Block a user