Tôi đang cố gắng sử dụng các cơ sở in ấn đẹp của GDB để hiển thị lớp ma trận C++ tùy chỉnh.gdb in đẹp với các cuộc gọi hàm trực tiếp
Lớp học khá chuẩn mà bạn có thể tìm thấy ở mọi nơi. Nó là một mẫu được tham số hóa theo kiểu, và có thể được truy cập với ký pháp kiểu C như mat [i] [j]. Điều này đầu tiên hoàn toàn trả về một mẫu "Slice" khác đại diện cho một hàng hoặc một cột, mà một lần nữa có thể truy cập bởi toán tử [] để trích xuất dữ liệu. Bản thân lớp này đang sử dụng một mảng C đơn giản để lưu trữ, nhưng nó đang thực hiện một số thủ thuật trên nó, giống như một tùy chọn phân bổ trước một ma trận lớn hơn, cho phép bắt đầu khác 0, sử dụng stride vv. giao diện, và tôi không thể sửa đổi nó, hoặc liên kết với mã của riêng tôi một cách dễ dàng.
Các tính năng tùy chỉnh làm cho việc tạo lại mã truy cập dữ liệu trực tiếp bằng Python trở nên đau đớn. Nhưng điều đó có cần thiết không? Nói chung: tại sao nên in ấn tái tạo lại logic của việc truy cập dữ liệu? Tôi không thể sử dụng các cuộc gọi C++ và sử dụng toán tử [] để in phần tử i, j-th? Thực tế là lớp Slice là tạm thời trong GDB trong một yêu cầu như vậy làm phức tạp thêm điều này.
Tôi cũng là người mới bắt đầu với kịch bản lệnh python và GDB. Tôi đã cố gắng để hack các ví dụ để thay thế truy cập dữ liệu với các cuộc gọi gdb.execute, nhưng tôi không có ý tưởng làm thế nào để truy cập tên đối tượng từ hàm to_string, vì vậy tôi có thể sử dụng một cái gì đó như gdb.execute (??? + '[] + str (i) + ']', False, True).
Tôi tự hỏi cách hiệu quả nhất để thực hiện việc này là gì.
Ai cũng có thể nhét vào một ví dụ, xin vui lòng? – takbal