私が経験している問題は、特定のアプリケーションがログを含めるように作成されたライブラリを使用していることです。実行中のアプリケーションはレガシー アプリケーションであるため、コードを再コンパイルできません。
そのため、ライブラリ ファイルに機能を追加し、ソース コードをライブラリ ファイルに再リンクする必要があります。
DEBUG_DATA() というライブラリ ファイルで定義された関数
-> 関数名行などを返します。 -> この関数は既にアプリケーションで使用されています。私がする必要があるのは、この関数 DEBUG_DATA の実行時です。debug_data を呼び出す関数が返されたら、イベントを追加してイベントをトリガーする必要があります。
トリガーが呼び出されない c のイベントでトリガーを作成することは可能ですか? これは実行時に実行できますか? スタックの微調整のように?
編集: これは DEBUG_DATA() に追加されます:
void Dynatrace_Method_START(
const char *ms_FunctionName, const char *ms_FileName, int ms_LineNO)
{
#ifdef DT_USE /*a global variable needs to be initiated for stack trace lets call it int Dyna_M_SERIAL*/
DT_Current_Stack++;
if (DT_Current_Stack<=DT_STACK) {
// FILE_NAME_STRIPPER(ms_FileName);
Dyna_M_SERIAL++;
fprintf(pfile,"%d,mstart,%s,%s,%d,%s,%d\r\n",
Dyna_UID, ms_FunctionName, FILE_NAME_STRIPPER(ms_FileName), ms_LineNO,
sProgram_name, Dyna_M_SERIAL);
Line_Reference[Dyna_M_SERIAL]=ms_LineNO;
}
#endif
}
OS は Guardian H Series TNS\E、コンパイラは Compaq ETK -NSE です。