| 3404 | } |
| 3405 | |
| 3406 | std::string format_backtrace(void** addresses, int numAddresses) { |
| 3407 | ImageInfo const& imageInfo = getCachedImageInfo(); |
| 3408 | #ifdef __APPLE__ |
| 3409 | std::string s = format("atos -o %s -arch x86_64 -l %p", imageInfo.symbolFileName.c_str(), imageInfo.offset); |
| 3410 | for (int i = 1; i < numAddresses; i++) { |
| 3411 | s += format(" %p", addresses[i]); |
| 3412 | } |
| 3413 | #else |
| 3414 | std::string s = format("addr2line -e %s -p -C -f -i", imageInfo.symbolFileName.c_str()); |
| 3415 | for (int i = 1; i < numAddresses; i++) { |
| 3416 | s += format(" %p", (char*)addresses[i] - (char*)imageInfo.offset); |
| 3417 | } |
| 3418 | #endif |
| 3419 | return s; |
| 3420 | } |
| 3421 | |
| 3422 | std::string get_backtrace() { |
| 3423 | void* addresses[50]; |
no test coverage detected