Stacktrace trong C++

Giữ symbol names (biên dịch với -g và link với -rdynamic trên Linux), nên dùng cả 2 để có đầy đủ tên hàm + số dòng. Debug symbol “-g” để thêm thông tin debug (file, line). Linking flags “-rdynamic" để export symbol names để backtrace() hoặc addr2line có thể ánh xạ địa chỉ bộ nhớ … Read more

Exception handling trong C++

Simple try/catch Multiple try/catch Chúng ta có thể dùng nhiều khối catch để bắt các exception có kiểu khác nhau. Nested try/catch Chúng ta có thể dùng throw; bên trong khối catch để rethrow exception hiện tại hoặc throw msg; nó sẽ copy và tạo new throw của object đó Throw/catch không phải là thao tác … Read more