.NET Tip: Debugging: Dynamically Determining the Name of the Current Function Miami FL

Are you tired of hard-coding function names in trace messages? Have you ever used cut and paste to copy a trace statement and forgot to change the function name? There'll be no more wild goose chases because of bad function names when you determine the function name dynamically.

Local Companies

Truelogic Software Solutions
(305) 407-9432
8345 NW 66th St.
Miami, FL
IBLESOFT INC
305.908.7957 EXT 100
7801 NW 37th Street
Doral, FL
Acl Computers Inc
(305) 826-5000
1711 W 38th Pl
Hialeah, FL
Game Rak Inc
(786) 517-1882
1790 W 49th St
Hialeah, FL
Software Development Solutions
305-274-2147
9745 SW 72nd St
Miami, FL
Home Care Software Solutions Inc
786-433-4700
9500 S Dadeland Blvd
Miami, FL
Alta Star Software Inc
305-279-8898
7700 N Kendall DR
Miami, FL
BlueClaw Group LLC
(305) 433-2006
1508 bay rd
miami beach, FL
TrueSoft
408-647-1434
911 Meridian Ave, Suite 201
Miami Beach, FL
Creative Technical Systems
(305) 512-2872
8181 NW 154th St
Hialeah, FL

provided by: 
Originally published at Internet.com


Determining function names dynamically can simplify your debugging and trace logic as well as ensure that your trace messages match the actual code that generated them. All you have to do is wrap all your calls to Trace() with your own custom function. This utility function then can reference the stack frame to find the name of the function that called it. Here is the utility function: public static void TraceContext(string FormattedMessage) { Trace.WriteLine(string.Format(FormattedMessage, new System.Diagnostics.StackFrame(1).GetMethod().Name)); }

This function takes the message to output to Trace() and replaces the '{0}' in the message string with the name of the function that called TraceContext(). That is really all there is to it. To test the function, I created a form and added a button. In the button's click event, I call TraceContext() and call another function that also calls TraceContext(). Here is the sample code for calling TraceContext(): private void button1_Click(object sender, EventArgs e) { TraceContext("In event handler: {0}"); DynamicNameTest(); } private void DynamicNameTest() { TraceContext("In function: {0}"); }

Here is the trace output when the button is clicked: In event handler: button1_Click In function: DynamicNameTest

You now can have confidence in your trace output because you do not have any hard-coded function names in your messages.

About the Author

Jay Miller is a Software Engineer with Electronic Tracking Systems, a company dedicated to robbery prevention, apprehension, and recovery based in Carrollton, Texas. Jay has been working with .NET since the release of the first beta and is co-author of Learn Microsoft Visual Basic.Net In a Weekend. Jay can be reached via email at jmiller@sm-ets.com.

Author: Jay Miller

Read article at Internet.com site

Featured Local Company

Truelogic Software Solutions

3054079432
8345 NW 66th St.
Miami, FL
www.truelogicsoftware.com

Related Local Events
SCORE Business Counseling
Dates: 12/9/2009 - 12/9/2009
Location: The Chamber Office
Coral Springs, FL
View Details

Wake Up Coral Springs Breakfast!!
Dates: 12/15/2009 - 12/15/2009
Location: Marriott Heron Bay
Coral Springs, FL
View Details

Wednesday Evening Referral Group
Dates: 12/16/2009 - 12/16/2009
Location: WineStyles
Coral Springs, FL
View Details

Afternoon Chamber Referral Group Meeting
Dates: 1/21/2010 - 1/21/2010
Location: The Coral Springs Chamber Office
Coral Springs, FL
View Details

Wednesday Evening Referral Group
Dates: 2/3/2010 - 2/5/2010
Location: WineStyles
Coral Springs, FL
View Details