【问题标题】:How to debug mysql user-defined function?如何调试mysql用户自定义函数?
【发布时间】:2012-02-08 00:03:58
【问题描述】:

我有一个 mysql 函数,我想调试它,设置断点,查看那个时间段的变量值等。 怎么办?

【问题讨论】:

  • 您要调试 UDF 还是存储函数? UDF是编译好的C、C++函数,可以在Visual Studio中调试。
  • 我想调试 UDF。 Visual Studio 可以连接 MySQL 服务器吗?

标签: mysql debugging trace user-defined-functions


【解决方案1】:

到目前为止,从我目前的搜索来看(尽管我可能遗漏了一些东西),我必须同意 Devart 的观点,即您无法调试 UDF 函数。

给您的一个额外建议是使用 stderr 进行调试。我制作了一些相当简单的东西:

void udf_debug( char *msg, ... ) {
#ifdef DEBUG
  va_list ap;

  va_start(ap, msg);
  vfprintf(stderr, msg, ap);
  va_end(ap);

  fflush(stderr);
#endif
}

【讨论】:

    【解决方案2】:

    当 UDF 函数被 MySQL 调用时,您无法调试它。但我认为您可以尝试这些变体:

    • 在没有 MySQL 的情况下调试您的函数,只需将测试参数值传递给函数。
    • 尝试在调用 UDF 时将值输出到文件中,这将有助于您查看内部变量并了解发生了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      相关资源
      最近更新 更多