C/C++ Command-line Debugging for UDFs - Teradata Vantage - Analytics Database

SQL External Routine Programming

Deployment
VantageCloud
VantageCore
Edition
VMware
Enterprise
IntelliFlex
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
ft:locale
en-US
ft:lastEdition
2025-03-30
dita:mapPath
iiv1628111441820.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
qnu1472247494689
lifecycle
latest
Product Category
Teradata Vantage™
This section uses the name Teradata C/C++ UDF Debugger to refer to a version of GDB (the GNU Source-Level Debugger) that contains extensions implemented by Teradata. The Teradata C/C++ UDF Debugger supports standard GDB commands and adds commands for debugging protected-mode external routines written in C or C++:
  • User-defined functions (UDFs): scalar, aggregate, table functions, and table operators
  • External stored procedures
  • User-defined methods (UDMs)

This document uses the term “UDFs” to refer collectively to UDFs, external stored procedures, and UDMs.

Online information about the GNU debugger, including the Teradata C/C++ UDF Debugger extensions is available from the Linux command line by typing info tdgdb.

Teradata also offers Eclipse (Studio) plug-in debuggers for C/C++ and Java. For more information on these debuggers, see Teradata Debugger for C/C++ UDF and Teradata Debugger for Java UDF.

Required Privileges

Privileges needed for creating and debugging UDFS:
  • CREATE FUNCTION
  • EXECUTE FUNCTION
Privileges needed for creating and debugging external stored procedures:
  • CREATE EXTERNAL PROCEDURE
  • EXECUTE PROCEDURE
Privileges needed for debugging UDFs or external stored procedures by a user other than the one who created the routines:
  • EXECUTE FUNCTION or EXECUTE PROCEDURE
  • DROP FUNCTION or DROP PROCEDURE
Privileges needed for creating and debugging UDMs:
  • ALL on SYSUDTLIB
For example, the following statement grants all privileges on SYSUDTLIB to the user named debugger:
grant all on sysudtlib to debugger with grant option;