Проблема, с которой я сталкиваюсь, заключается в том, что некоторые приложения используют библиотеку, созданную для включения ведения журнала. Мы не можем перекомпилировать код для работающих приложений, поскольку они являются устаревшими приложениями.
поэтому мне нужно добавить функциональность в файл библиотеки и связать исходный код с файлами библиотеки.
функция, определенная в файле библиотеки с именем 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
}
ОС — Guardian H Series TNS \ E, компилятор — Compaq ETK -NSE.
Задача ещё не решена.
Других решений пока нет …