Download dependencies/libcudacxx/libunwind/test/libunwind_01.pass.cpp from camenduru/thrust: direct link, hf CLI and curl.
- Browser
- Download file 1.03 kB
-
https://huggingface.co/camenduru/thrust/resolve/main/dependencies/libcudacxx/libunwind/test/libunwind_01.pass.cpp
- Command line
-
hf download hf://camenduru/thrust/dependencies/libcudacxx/libunwind/test/libunwind_01.pass.cpp
-
curl -L -o libunwind_01.pass.cpp https://huggingface.co/camenduru/thrust/resolve/main/dependencies/libcudacxx/libunwind/test/libunwind_01.pass.cpp
1.03 kB
| void backtrace(int lower_bound) { | |
| unw_context_t context; | |
| unw_getcontext(&context); | |
| unw_cursor_t cursor; | |
| unw_init_local(&cursor, &context); | |
| int n = 0; | |
| do { | |
| ++n; | |
| if (n > 100) { | |
| abort(); | |
| } | |
| } while (unw_step(&cursor) > 0); | |
| if (n < lower_bound) { | |
| abort(); | |
| } | |
| } | |
| void test1(int i) { | |
| backtrace(i); | |
| } | |
| void test2(int i, int j) { | |
| backtrace(i); | |
| test1(j); | |
| } | |
| void test3(int i, int j, int k) { | |
| backtrace(i); | |
| test2(j, k); | |
| } | |
| void test_no_info() { | |
| unw_context_t context; | |
| unw_getcontext(&context); | |
| unw_cursor_t cursor; | |
| unw_init_local(&cursor, &context); | |
| unw_proc_info_t info; | |
| int ret = unw_get_proc_info(&cursor, &info); | |
| if (ret != UNW_ESUCCESS) | |
| abort(); | |
| // Set the IP to an address clearly outside any function. | |
| unw_set_reg(&cursor, UNW_REG_IP, (unw_word_t)0); | |
| ret = unw_get_proc_info(&cursor, &info); | |
| if (ret != UNW_ENOINFO) | |
| abort(); | |
| } | |
| int main() { | |
| test1(1); | |
| test2(1, 2); | |
| test3(1, 2, 3); | |
| test_no_info(); | |
| } | |