|  22.12.2010, 18:11 | #1 | 
| Участник | Как программно получить стек вызовов? 
			
			DAX2009 SP1 RU6  Можно ли программно получить в виде строки стэк вызовов, такой же, как, например, получается при трассировке SQL? Мне при закрытии склада нужно понимать откуда вызывается метод при определенных условиях. Профайлер кода не запустишь - слишком много всего выполняется, под отладчиком ждать долго. | 
|  | 
|  22.12.2010, 18:29 | #2 | 
| Axapta | X++: static void CallStack(Args _args) { str s; int i; container stackTrace = xSession::xppCallStack(); ; for(i=1;i<=conLen(stackTrace);i+=2) { s+=strFmt("%1",conPeek(stackTrace, i)); } info(s); } | 
|  | |
| За это сообщение автора поблагодарили: Bega (1). | |
|  22.12.2010, 18:46 | #3 | 
| Сам.AX | 
			
			В 3-ке в Global был такое метод: X++: static void callStack2infolog(str _prefix = "@SYS65092") { container stack = xSession::xppCallStack(); counter n; TreeNodePath stackPath; int line; ; setPrefix(_prefix); for (n = 3; n <= conLen(stack); n += 2) { stackPath = conPeek(stack,n); line = conPeek(stack,n+1); if (line) { info(strfmt("%1 %2", stackPath, line),'', SysInfoAction_Editor::newLineColumn(stackPath, line)); } else { info(strfmt("%1", stackPath)); } } } 
				__________________ "Считать метафору доказательством, поток праздных слов источником истины, а себя оракулом - это заблуждение, свойственное всем нам." Поль Валери | 
|  | |
| За это сообщение автора поблагодарили: Bega (1). | |