mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-10-30 01:12:07 -04:00
41 lines
No EOL
1 KiB
Markdown
41 lines
No EOL
1 KiB
Markdown
---
|
|
date: 2021-06-03 17:54:39
|
|
draft: false
|
|
medium_enabled: true
|
|
medium_post_id: a811c52bda55
|
|
tags:
|
|
- Testing
|
|
title: Print Statements with Frame Information
|
|
---
|
|
|
|
I find it extremely useful to include frame information such as filename, line number, and current function in my print statements. Here's a couple ways that I've done that in the past.
|
|
|
|
In C:
|
|
|
|
```c
|
|
#include <stdio.h>
|
|
|
|
#define DEBUGLOG(msg) (printf("[%s:%d %s] %s\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, msg))
|
|
|
|
int main() {
|
|
DEBUGLOG("Hello World");
|
|
}
|
|
```
|
|
|
|
|
|
|
|
In Python:
|
|
|
|
```python
|
|
from inspect import currentframe, getframeinfo
|
|
|
|
def debuglog(m):
|
|
frame = currentframe()
|
|
frame_info = getframeinfo(frame)
|
|
last_frame = frame.f_back
|
|
last_frame_info = getframeinfo(last_frame)
|
|
filename = last_frame_info.filename if last_frame_info is not None else "<stdin>"
|
|
lineno = last_frame_info.lineno if last_frame_info is not None else 1
|
|
function_name = last_frame_info.function if last_frame_info is not None else "<module>"
|
|
print(f"[{filename}:{lineno} {function_name}] {m}")
|
|
``` |