mirror of
https://github.com/RGBCube/serenity
synced 2025-05-30 23:58:12 +00:00
ProfileViewer: Interpret addresses >= 0xc0000000 as kernel frames
This commit is contained in:
parent
32ec1e5aed
commit
efbdaaaa65
2 changed files with 3 additions and 2 deletions
|
@ -35,7 +35,8 @@ Profile::Profile(const JsonArray& json)
|
||||||
if (frames_array.size() < 2)
|
if (frames_array.size() < 2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
sample.in_kernel = frames_array.at(1).as_object().get("address").to_number<u32>() < (8 * MB);
|
u32 innermost_frame_address = frames_array.at(1).as_object().get("address").to_number<u32>();
|
||||||
|
sample.in_kernel = innermost_frame_address >= 0xc0000000 || innermost_frame_address < (8 * MB);
|
||||||
|
|
||||||
for (int i = frames_array.size() - 1; i >= 1; --i) {
|
for (int i = frames_array.size() - 1; i >= 1; --i) {
|
||||||
auto& frame_value = frames_array.at(i);
|
auto& frame_value = frames_array.at(i);
|
||||||
|
|
|
@ -92,7 +92,7 @@ GVariant ProfileModel::data(const GModelIndex& index, Role role) const
|
||||||
auto* node = static_cast<ProfileNode*>(index.internal_data());
|
auto* node = static_cast<ProfileNode*>(index.internal_data());
|
||||||
if (role == Role::Icon) {
|
if (role == Role::Icon) {
|
||||||
if (index.column() == Column::StackFrame) {
|
if (index.column() == Column::StackFrame) {
|
||||||
if (node->address() < (8 * MB))
|
if (node->address() < (8 * MB) || node->address() >= 0xc0000000)
|
||||||
return m_kernel_frame_icon;
|
return m_kernel_frame_icon;
|
||||||
return m_user_frame_icon;
|
return m_user_frame_icon;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue