diff --git a/sycl/gdb/libsycl.so-gdb.py b/sycl/gdb/libsycl.so-gdb.py index b0c38d375da39..96767fe228051 100644 --- a/sycl/gdb/libsycl.so-gdb.py +++ b/sycl/gdb/libsycl.so-gdb.py @@ -1074,10 +1074,13 @@ def to_string(self): string = self.type_name(self.gdb_type()) extent = SYCLRangePrinter(sycl_item.extent()).value_as_string() string += " range " + extent - offset_id = SYCLItem(self.gdb_value()).offset() - offset = SYCLIdPrinter(offset_id).value_as_string() - if offset not in ["0", "{0, 0}", "{0, 0, 0}"]: - string += ", offset " + offset + try: + offset_id = SYCLItem(self.gdb_value()).offset() + offset = SYCLIdPrinter(offset_id).value_as_string() + if offset not in ["0", "{0, 0}", "{0, 0, 0}"]: + string += ", offset " + offset + except Exception: + pass # device offset disabled string += " = " + self.value_as_string() return string diff --git a/sycl/test/gdb/printers.cpp b/sycl/test/gdb/printers.cpp index 91c1457b93c7f..28a976b1a65ac 100644 --- a/sycl/test/gdb/printers.cpp +++ b/sycl/test/gdb/printers.cpp @@ -24,6 +24,7 @@ #include "detail/accessor_impl.hpp" #include "detail/buffer_impl.hpp" #include "detail/device_impl.hpp" +#include "detail/helpers.hpp" #include "detail/queue_impl.hpp" #include "detail/sycl_mem_obj_t.hpp" @@ -34,6 +35,11 @@ sycl::local_accessor l; sycl::queue q; sycl::range<1> r(3); +sycl::item<1, true> item_w_offset = + sycl::detail::Builder::createItem<1, true>({4}, {2}, {1}); +sycl::item<2, false> item_wo_offset = + sycl::detail::Builder::createItem<2, false>({4, 4}, {2, 2}); + // CHECK: 0 | class sycl::range<> // CHECK: 0 | size_t[1] common_array @@ -93,3 +99,27 @@ sycl::range<1> r(3); // DEVICE: 8 | class sycl::range<> MemRange // DEVICE: 8 | size_t[1] common_array // DEVICE: 24 | ConcreteASPtrType MData + +// CHECK: 0 | class sycl::item<1, true> +// CHECK: 0 | struct sycl::detail::ItemBase<1, true> MImpl +// CHECK: 0 | class sycl::range<> MExtent +// CHECK: 0 | class sycl::detail::array<> (base) +// CHECK: 0 | size_t[1] common_array +// CHECK: 8 | class sycl::id<1> MIndex +// CHECK: 8 | class sycl::detail::array<> (base) +// CHECK: 8 | size_t[1] common_array +// CHECK: 16 | class sycl::id<1> MOffset +// CHECK: 16 | class sycl::detail::array<> (base) +// CHECK: 16 | size_t[1] common_array + +// CHECK: 0 | class sycl::item<2, false> +// CHECK: 0 | struct sycl::detail::ItemBase<2, false> MImpl +// CHECK: 0 | class sycl::range<2> MExtent +// CHECK: 0 | class sycl::detail::array<2> (base) +// CHECK: 0 | size_t[2] common_array +// CHECK: 16 | class sycl::id<2> MIndex +// CHECK: 16 | class sycl::detail::array<2> (base) +// CHECK: 16 | size_t[2] common_array +// CHECK-NOT: 32 | class sycl::id<2> MOffset +// CHECK-NOT: 32 | class sycl::detail::array<2> (base) +// CHECK-NOT: 32 | size_t[2] common_array