mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-19 11:26:11 +00:00
Update Rizin to dev and use CMake config files (#2855)
API usage has been adjusted. There are now also cmake config files directly installed by Rizin itself, so we don't need to keep a custom FindRizin.cmake file in Cutter. This remove that file and just uses `find_package(Rizin COMPONENTS Core)`, which will use the cmake files installed on the system.
This commit is contained in:
parent
f5a7a79ee8
commit
98411b4dbf
@ -48,8 +48,8 @@ if(CUTTER_USE_BUNDLED_RIZIN)
|
|||||||
include(BundledRizin)
|
include(BundledRizin)
|
||||||
set(RIZIN_TARGET Rizin)
|
set(RIZIN_TARGET Rizin)
|
||||||
else()
|
else()
|
||||||
find_package(Rizin REQUIRED)
|
find_package(Rizin COMPONENTS Core REQUIRED)
|
||||||
set(RIZIN_TARGET Rizin::librz)
|
set(RIZIN_TARGET Rizin::Core)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
@ -47,8 +47,8 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set (RZ_LIBS rz_core rz_config rz_cons rz_io rz_util rz_flag rz_asm rz_debug
|
set (RZ_LIBS rz_core rz_config rz_cons rz_io rz_util rz_flag rz_asm rz_debug
|
||||||
rz_hash rz_bin rz_lang rz_io rz_analysis rz_parse rz_bp rz_egg rz_reg
|
rz_hash rz_bin rz_lang rz_il rz_analysis rz_parse rz_bp rz_egg rz_reg
|
||||||
rz_search rz_syscall rz_socket rz_magic rz_crypto rz_type rz_diff)
|
rz_search rz_syscall rz_socket rz_magic rz_crypto rz_type rz_diff rz_sign)
|
||||||
set (RZ_EXTRA_LIBS rz_main)
|
set (RZ_EXTRA_LIBS rz_main)
|
||||||
set (RZ_BIN rz-agent rz-bin rizin rz-diff rz-find rz-gg rz-hash rz-run rz-asm rz-ax)
|
set (RZ_BIN rz-agent rz-bin rizin rz-diff rz-find rz-gg rz-hash rz-run rz-asm rz-ax)
|
||||||
|
|
||||||
|
@ -1,117 +0,0 @@
|
|||||||
# - Find Rizin (librz)
|
|
||||||
#
|
|
||||||
# This module provides the following imported targets, if found:
|
|
||||||
#
|
|
||||||
# Rizin::librz
|
|
||||||
#
|
|
||||||
# This will define the following variables:
|
|
||||||
# (but don't use them if you don't know what you are doing, use Rizin::librz)
|
|
||||||
#
|
|
||||||
# Rizin_FOUND - True if librz has been found.
|
|
||||||
# Rizin_INCLUDE_DIRS - librz include directory
|
|
||||||
# Rizin_LIBRARIES - List of libraries when using librz.
|
|
||||||
# Rizin_LIBRARY_DIRS - librz library directories
|
|
||||||
#
|
|
||||||
# If librz was found using find_library and not pkg-config, the following variables will also be set:
|
|
||||||
# Rizin_LIBRARY_<name> - Path to library rz_<name>
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
find_path(Rizin_INCLUDE_DIRS
|
|
||||||
NAMES rz_core.h rz_bin.h rz_util.h
|
|
||||||
HINTS
|
|
||||||
"$ENV{HOME}/bin/prefix/rizin/include/librz"
|
|
||||||
/usr/local/include/libr
|
|
||||||
/usr/include/librz)
|
|
||||||
find_path(SDB_INCLUDE_DIR
|
|
||||||
NAMES sdb.h sdbht.h sdb_version.h
|
|
||||||
HINTS
|
|
||||||
"$ENV{HOME}/bin/prefix/rizin/include/librz/sdb"
|
|
||||||
/usr/local/include/librz/sdb
|
|
||||||
/usr/include/librz/sdb)
|
|
||||||
|
|
||||||
list(APPEND Rizin_INCLUDE_DIRS ${SDB_INCLUDE_DIR})
|
|
||||||
|
|
||||||
set(Rizin_LIBRARY_NAMES
|
|
||||||
core
|
|
||||||
config
|
|
||||||
cons
|
|
||||||
io
|
|
||||||
util
|
|
||||||
flag
|
|
||||||
asm
|
|
||||||
debug
|
|
||||||
hash
|
|
||||||
bin
|
|
||||||
lang
|
|
||||||
io
|
|
||||||
analysis
|
|
||||||
parse
|
|
||||||
bp
|
|
||||||
egg
|
|
||||||
reg
|
|
||||||
search
|
|
||||||
syscall
|
|
||||||
socket
|
|
||||||
magic
|
|
||||||
crypto
|
|
||||||
type)
|
|
||||||
|
|
||||||
set(Rizin_LIBRARIES "")
|
|
||||||
set(Rizin_LIBRARIES_VARS "")
|
|
||||||
foreach(libname ${Rizin_LIBRARY_NAMES})
|
|
||||||
find_library(Rizin_LIBRARY_${libname}
|
|
||||||
rz_${libname}
|
|
||||||
HINTS
|
|
||||||
"$ENV{HOME}/bin/prefix/rizin/lib"
|
|
||||||
/usr/local/lib
|
|
||||||
/usr/lib)
|
|
||||||
|
|
||||||
list(APPEND Rizin_LIBRARIES ${Rizin_LIBRARY_${libname}})
|
|
||||||
list(APPEND Rizin_LIBRARIES_VARS "Rizin_LIBRARY_${libname}")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(Rizin_LIBRARY_DIRS "")
|
|
||||||
|
|
||||||
add_library(Rizin::librz UNKNOWN IMPORTED)
|
|
||||||
set_target_properties(Rizin::librz PROPERTIES
|
|
||||||
IMPORTED_LOCATION "${Rizin_LIBRARY_core}"
|
|
||||||
IMPORTED_LINK_INTERFACE_LIBRARIES "${Rizin_LIBRARIES}"
|
|
||||||
INTERFACE_LINK_DIRECTORIES "${Rizin_LIBRARY_DIRS}"
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${Rizin_INCLUDE_DIRS}")
|
|
||||||
set(Rizin_TARGET Rizin::librz)
|
|
||||||
else()
|
|
||||||
# support installation locations used by rizin scripts like sys/user.sh and sys/install.sh
|
|
||||||
if(CUTTER_USE_ADDITIONAL_RIZIN_PATHS)
|
|
||||||
set(Rizin_CMAKE_PREFIX_PATH_TEMP ${CMAKE_PREFIX_PATH})
|
|
||||||
list(APPEND CMAKE_PREFIX_PATH "$ENV{HOME}/bin/prefix/rizin") # sys/user.sh
|
|
||||||
list(APPEND CMAKE_PREFIX_PATH "/usr/local") # sys/install.sh
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
if(CMAKE_VERSION VERSION_LESS "3.6")
|
|
||||||
pkg_search_module(Rizin REQUIRED rz_core)
|
|
||||||
else()
|
|
||||||
pkg_search_module(Rizin IMPORTED_TARGET REQUIRED rz_core)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# reset CMAKE_PREFIX_PATH
|
|
||||||
if(CUTTER_USE_ADDITIONAL_RIZIN_PATHS)
|
|
||||||
set(CMAKE_PREFIX_PATH ${Rizin_CMAKE_PREFIX_PATH_TEMP})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if((TARGET PkgConfig::Rizin) AND (NOT CMAKE_VERSION VERSION_LESS "3.11.0"))
|
|
||||||
set_target_properties(PkgConfig::Rizin PROPERTIES IMPORTED_GLOBAL ON)
|
|
||||||
add_library(Rizin::librz ALIAS PkgConfig::Rizin)
|
|
||||||
set(Rizin_TARGET Rizin::librz)
|
|
||||||
elseif(Rizin_FOUND)
|
|
||||||
add_library(Rizin::librz INTERFACE IMPORTED)
|
|
||||||
set_target_properties(Rizin::librz PROPERTIES
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${Rizin_INCLUDE_DIRS}")
|
|
||||||
set_target_properties(Rizin::librz PROPERTIES
|
|
||||||
INTERFACE_LINK_LIBRARIES "${Rizin_LIBRARIES}")
|
|
||||||
set(Rizin_TARGET Rizin::librz)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(Rizin REQUIRED_VARS Rizin_TARGET Rizin_LIBRARIES Rizin_INCLUDE_DIRS)
|
|
8
dist/CMakeLists.txt
vendored
8
dist/CMakeLists.txt
vendored
@ -84,9 +84,7 @@ if(APPLE)
|
|||||||
|
|
||||||
if (CUTTER_PACKAGE_JSDEC AND CUTTER_ENABLE_DEPENDENCY_DOWNLOADS)
|
if (CUTTER_PACKAGE_JSDEC AND CUTTER_ENABLE_DEPENDENCY_DOWNLOADS)
|
||||||
install(CODE "
|
install(CODE "
|
||||||
execute_process(COMMAND \"${CMAKE_CURRENT_SOURCE_DIR}/../scripts/jsdec.sh\" --prefix=\${CMAKE_INSTALL_PREFIX}
|
execute_process(COMMAND \"${CMAKE_CURRENT_SOURCE_DIR}/../scripts/jsdec.sh\" --pkg-config-path=\${CMAKE_INSTALL_PREFIX}/lib/pkgconfig --prefix=\${CMAKE_INSTALL_PREFIX}
|
||||||
\"-Drizin_incdir=\${CMAKE_INSTALL_PREFIX}/include/librz\"
|
|
||||||
\"-Drizin_libdir=\${CMAKE_INSTALL_PREFIX}/lib\"
|
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
RESULT_VARIABLE SCRIPT_RESULT)
|
RESULT_VARIABLE SCRIPT_RESULT)
|
||||||
if (SCRIPT_RESULT)
|
if (SCRIPT_RESULT)
|
||||||
@ -109,9 +107,9 @@ if(CUTTER_PACKAGE_RZ_GHIDRA)
|
|||||||
# installed Cutter.
|
# installed Cutter.
|
||||||
ExternalProject_Add(rz-ghidra
|
ExternalProject_Add(rz-ghidra
|
||||||
GIT_REPOSITORY https://github.com/rizinorg/rz-ghidra
|
GIT_REPOSITORY https://github.com/rizinorg/rz-ghidra
|
||||||
GIT_TAG v0.3.0
|
#GIT_TAG v0.3.0
|
||||||
#GIT_TAG c7a50a2e7c0a95cd52b167c9ee0fa1805223f08e
|
#GIT_TAG c7a50a2e7c0a95cd52b167c9ee0fa1805223f08e
|
||||||
#GIT_TAG dev
|
GIT_TAG dev
|
||||||
#GIT_SHALLOW ON # disable this line when using commit hash
|
#GIT_SHALLOW ON # disable this line when using commit hash
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_COMMAND ""
|
BUILD_COMMAND ""
|
||||||
|
1
dist/MacOSSetupBundle.cmake.in
vendored
1
dist/MacOSSetupBundle.cmake.in
vendored
@ -25,7 +25,6 @@ file(COPY "${INFO_PLIST_PATH}" DESTINATION "${BUNDLE_PATH}/Contents")
|
|||||||
|
|
||||||
# replace absolute path from build directory in rizin pkgconfig files with relative ones
|
# replace absolute path from build directory in rizin pkgconfig files with relative ones
|
||||||
file(GLOB RZ_PCFILES "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/rz_*.pc")
|
file(GLOB RZ_PCFILES "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/rz_*.pc")
|
||||||
list(APPEND RZ_PCFILES "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/librz.pc")
|
|
||||||
foreach (_pcfile ${RZ_PCFILES})
|
foreach (_pcfile ${RZ_PCFILES})
|
||||||
file(READ "${_pcfile}" _text)
|
file(READ "${_pcfile}" _text)
|
||||||
string(REGEX REPLACE "^prefix=[^\n]*\n" "prefix=\${pcfiledir}/../..\n" _text "${_text}")
|
string(REGEX REPLACE "^prefix=[^\n]*\n" "prefix=\${pcfiledir}/../..\n" _text "${_text}")
|
||||||
|
4
dist/bundle_jsdec.ps1
vendored
4
dist/bundle_jsdec.ps1
vendored
@ -2,10 +2,10 @@ $dist = $args[0]
|
|||||||
$python = Split-Path((Get-Command python.exe).Path)
|
$python = Split-Path((Get-Command python.exe).Path)
|
||||||
|
|
||||||
if (-not (Test-Path -Path 'jsdec' -PathType Container)) {
|
if (-not (Test-Path -Path 'jsdec' -PathType Container)) {
|
||||||
git clone https://github.com/rizinorg/jsdec.git --depth 1 --branch v0.3.1
|
git clone https://github.com/rizinorg/jsdec.git --depth 1 --branch master
|
||||||
}
|
}
|
||||||
cd jsdec
|
cd jsdec
|
||||||
& meson.exe --buildtype=release -Dc_args=-DDUK_USE_DATE_NOW_WINDOWS -Djsc_folder=".." -Drizin_plugdir=lib\plugins --prefix=$dist --libdir=lib\plugins --datadir=lib\plugins p build
|
& meson.exe --buildtype=release -Dc_args=-DDUK_USE_DATE_NOW_WINDOWS -Djsc_folder=".." --prefix=$dist p build
|
||||||
ninja -C build install
|
ninja -C build install
|
||||||
$ErrorActionPreference = 'Stop'
|
$ErrorActionPreference = 'Stop'
|
||||||
$pathdll = "$dist\lib\plugins\core_pdd.dll"
|
$pathdll = "$dist\lib\plugins\core_pdd.dll"
|
||||||
|
@ -7,13 +7,13 @@ SCRIPTPATH=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
|
|||||||
cd "$SCRIPTPATH/.."
|
cd "$SCRIPTPATH/.."
|
||||||
|
|
||||||
if [[ ! -d jsdec ]]; then
|
if [[ ! -d jsdec ]]; then
|
||||||
git clone https://github.com/rizinorg/jsdec.git --depth 1 --branch v0.3.1
|
git clone https://github.com/rizinorg/jsdec.git --depth 2 --branch master
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd jsdec
|
cd jsdec
|
||||||
rm -rf build
|
rm -rf build
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
meson --buildtype=release -Drizin_plugdir=share/rizin/plugins -Djsc_folder="../" --libdir=share/rizin/plugins --datadir=share/rizin/plugins "$@" ../p
|
meson --buildtype=release -Djsc_folder="../" "$@" ../p
|
||||||
ninja
|
ninja
|
||||||
ninja install
|
ninja install
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
|
#include <rz_util/rz_path.h>
|
||||||
|
|
||||||
#include "common/Configuration.h"
|
#include "common/Configuration.h"
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ const QStringList ColorThemeWorker::rizinUnusedOptions = {
|
|||||||
|
|
||||||
ColorThemeWorker::ColorThemeWorker(QObject *parent) : QObject(parent)
|
ColorThemeWorker::ColorThemeWorker(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
char *szThemes = rz_str_home(RZ_HOME_THEMES);
|
char *szThemes = rz_path_home_prefix(RZ_THEMES);
|
||||||
customRzThemesLocationPath = szThemes;
|
customRzThemesLocationPath = szThemes;
|
||||||
rz_mem_free(szThemes);
|
rz_mem_free(szThemes);
|
||||||
if (!QDir(customRzThemesLocationPath).exists()) {
|
if (!QDir(customRzThemesLocationPath).exists()) {
|
||||||
@ -37,7 +38,7 @@ ColorThemeWorker::ColorThemeWorker(QObject *parent) : QObject(parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDir currDir {
|
QDir currDir {
|
||||||
QStringLiteral("%1%2%3").arg(rz_sys_prefix(nullptr)).arg(RZ_SYS_DIR).arg(RZ_THEMES)
|
QStringLiteral("%1%2%3").arg(rz_path_prefix(nullptr)).arg(RZ_SYS_DIR).arg(RZ_THEMES)
|
||||||
};
|
};
|
||||||
if (currDir.exists()) {
|
if (currDir.exists()) {
|
||||||
standardRzThemesLocationPath = currDir.absolutePath();
|
standardRzThemesLocationPath = currDir.absolutePath();
|
||||||
@ -132,9 +133,9 @@ QJsonDocument ColorThemeWorker::getTheme(const QString &themeName) const
|
|||||||
|
|
||||||
if (themeName != curr) {
|
if (themeName != curr) {
|
||||||
RzCoreLocked core(Core());
|
RzCoreLocked core(Core());
|
||||||
rz_core_load_theme(core, themeName.toUtf8().constData());
|
rz_core_theme_load(core, themeName.toUtf8().constData());
|
||||||
theme = Core()->cmdj("ecj").object().toVariantMap();
|
theme = Core()->cmdj("ecj").object().toVariantMap();
|
||||||
rz_core_load_theme(core, curr.toUtf8().constData());
|
rz_core_theme_load(core, curr.toUtf8().constData());
|
||||||
} else {
|
} else {
|
||||||
theme = Core()->cmdj("ecj").object().toVariantMap();
|
theme = Core()->cmdj("ecj").object().toVariantMap();
|
||||||
}
|
}
|
||||||
|
@ -530,7 +530,7 @@ void Configuration::setColorTheme(const QString &theme)
|
|||||||
Core()->cmdRaw("ecd");
|
Core()->cmdRaw("ecd");
|
||||||
s.setValue("theme", "default");
|
s.setValue("theme", "default");
|
||||||
} else {
|
} else {
|
||||||
rz_core_load_theme(Core()->core(), theme.toUtf8().constData());
|
rz_core_theme_load(Core()->core(), theme.toUtf8().constData());
|
||||||
s.setValue("theme", theme);
|
s.setValue("theme", theme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ void CutterCore::initialize(bool loadPlugins)
|
|||||||
|
|
||||||
#if defined(CUTTER_ENABLE_PACKAGING) && defined(Q_OS_WIN)
|
#if defined(CUTTER_ENABLE_PACKAGING) && defined(Q_OS_WIN)
|
||||||
auto prefixBytes = prefix.absolutePath().toUtf8();
|
auto prefixBytes = prefix.absolutePath().toUtf8();
|
||||||
rz_sys_prefix(prefixBytes.constData());
|
rz_path_prefix(prefixBytes.constData());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rz_cons_new(); // initialize console
|
rz_cons_new(); // initialize console
|
||||||
@ -225,7 +225,7 @@ void CutterCore::initialize(bool loadPlugins)
|
|||||||
setConfig("cfg.plugins", 0);
|
setConfig("cfg.plugins", 0);
|
||||||
}
|
}
|
||||||
if (getConfigi("cfg.plugins")) {
|
if (getConfigi("cfg.plugins")) {
|
||||||
rz_core_loadlibs(this->core_, RZ_CORE_LOADLIBS_ALL, nullptr);
|
rz_core_loadlibs(this->core_, RZ_CORE_LOADLIBS_ALL);
|
||||||
}
|
}
|
||||||
// IMPLICIT rz_bin_iobind (core_->bin, core_->io);
|
// IMPLICIT rz_bin_iobind (core_->bin, core_->io);
|
||||||
|
|
||||||
@ -2416,7 +2416,7 @@ void CutterCore::addBreakpoint(const BreakpointDescription &config)
|
|||||||
RzBreakpointItem *breakpoint = nullptr;
|
RzBreakpointItem *breakpoint = nullptr;
|
||||||
int watchpoint_prot = 0;
|
int watchpoint_prot = 0;
|
||||||
if (config.hw) {
|
if (config.hw) {
|
||||||
watchpoint_prot = config.permission & ~(RZ_BP_PROT_EXEC);
|
watchpoint_prot = config.permission & ~(RZ_PERM_X);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto address = config.addr;
|
auto address = config.addr;
|
||||||
@ -3003,7 +3003,7 @@ QList<CommentDescription> CutterCore::getAllComments(const QString &filterType)
|
|||||||
CORE_LOCK();
|
CORE_LOCK();
|
||||||
QList<CommentDescription> ret;
|
QList<CommentDescription> ret;
|
||||||
|
|
||||||
QJsonArray commentsArray = cmdj("CCj").array();
|
QJsonArray commentsArray = cmdj("CClj").array();
|
||||||
for (const QJsonValue &value : commentsArray) {
|
for (const QJsonValue &value : commentsArray) {
|
||||||
QJsonObject commentObject = value.toObject();
|
QJsonObject commentObject = value.toObject();
|
||||||
|
|
||||||
@ -3153,13 +3153,16 @@ QList<SectionDescription> CutterCore::getAllSections()
|
|||||||
section.paddr = sect->paddr;
|
section.paddr = sect->paddr;
|
||||||
section.size = sect->size;
|
section.size = sect->size;
|
||||||
section.perm = rz_str_rwx_i(sect->perm);
|
section.perm = rz_str_rwx_i(sect->perm);
|
||||||
HtPP *digests = rz_core_bin_section_digests(core, sect, hashnames);
|
if (sect->size > 0) {
|
||||||
|
HtPP *digests = rz_core_bin_create_digests(core, sect->paddr, sect->size, hashnames);
|
||||||
if (!digests) {
|
if (!digests) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const char *entropy = (const char *)ht_pp_find(digests, "entropy", NULL);
|
const char *entropy = (const char *)ht_pp_find(digests, "entropy", NULL);
|
||||||
section.entropy = rz_str_get(entropy);
|
section.entropy = rz_str_get(entropy);
|
||||||
ht_pp_free(digests);
|
ht_pp_free(digests);
|
||||||
|
}
|
||||||
|
section.entropy = "";
|
||||||
|
|
||||||
sections << section;
|
sections << section;
|
||||||
}
|
}
|
||||||
@ -3834,7 +3837,7 @@ QString CutterCore::listFlagsAsStringAt(RVA addr)
|
|||||||
|
|
||||||
QString CutterCore::nearestFlag(RVA offset, RVA *flagOffsetOut)
|
QString CutterCore::nearestFlag(RVA offset, RVA *flagOffsetOut)
|
||||||
{
|
{
|
||||||
auto r = cmdj(QString("fdj @") + QString::number(offset)).object();
|
auto r = cmdj(QString("fdj @ ") + QString::number(offset)).object();
|
||||||
QString name = r.value("name").toString();
|
QString name = r.value("name").toString();
|
||||||
if (flagOffsetOut) {
|
if (flagOffsetOut) {
|
||||||
auto offsetValue = r.value("offset");
|
auto offsetValue = r.value("offset");
|
||||||
|
@ -86,9 +86,9 @@ BreakpointsDialog::BreakpointsDialog(const BreakpointDescription &breakpoint, QW
|
|||||||
ui->breakpointCondition->setEditText(breakpoint.condition);
|
ui->breakpointCondition->setEditText(breakpoint.condition);
|
||||||
if (breakpoint.hw) {
|
if (breakpoint.hw) {
|
||||||
ui->radioHardware->setChecked(true);
|
ui->radioHardware->setChecked(true);
|
||||||
ui->hwRead->setChecked(breakpoint.permission & RZ_BP_PROT_READ);
|
ui->hwRead->setChecked(breakpoint.permission & RZ_PERM_R);
|
||||||
ui->hwWrite->setChecked(breakpoint.permission & RZ_BP_PROT_WRITE);
|
ui->hwWrite->setChecked(breakpoint.permission & RZ_PERM_W);
|
||||||
ui->hwExecute->setChecked(breakpoint.permission & RZ_BP_PROT_EXEC);
|
ui->hwExecute->setChecked(breakpoint.permission & RZ_PERM_X);
|
||||||
ui->breakpointSize->setCurrentText(QString::number(breakpoint.size));
|
ui->breakpointSize->setCurrentText(QString::number(breakpoint.size));
|
||||||
} else {
|
} else {
|
||||||
ui->radioSoftware->setChecked(true);
|
ui->radioSoftware->setChecked(true);
|
||||||
@ -204,13 +204,13 @@ int BreakpointsDialog::getHwPermissions()
|
|||||||
{
|
{
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (ui->hwRead->isChecked()) {
|
if (ui->hwRead->isChecked()) {
|
||||||
result |= RZ_BP_PROT_READ;
|
result |= RZ_PERM_R;
|
||||||
}
|
}
|
||||||
if (ui->hwWrite->isChecked()) {
|
if (ui->hwWrite->isChecked()) {
|
||||||
result |= RZ_BP_PROT_WRITE;
|
result |= RZ_PERM_W;
|
||||||
}
|
}
|
||||||
if (ui->hwExecute->isChecked()) {
|
if (ui->hwExecute->isChecked()) {
|
||||||
result |= RZ_BP_PROT_EXEC;
|
result |= RZ_PERM_X;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -32,13 +32,13 @@ int BreakpointModel::columnCount(const QModelIndex &) const
|
|||||||
static QString formatHwBreakpoint(int permission)
|
static QString formatHwBreakpoint(int permission)
|
||||||
{
|
{
|
||||||
char data[] = "rwx";
|
char data[] = "rwx";
|
||||||
if ((permission & (RZ_BP_PROT_READ | RZ_BP_PROT_ACCESS)) == 0) {
|
if ((permission & (RZ_PERM_R | RZ_PERM_RW)) == 0) {
|
||||||
data[0] = '-';
|
data[0] = '-';
|
||||||
}
|
}
|
||||||
if ((permission & (RZ_BP_PROT_WRITE | RZ_BP_PROT_ACCESS)) == 0) {
|
if ((permission & (RZ_PERM_W | RZ_PERM_RW)) == 0) {
|
||||||
data[1] = '-';
|
data[1] = '-';
|
||||||
}
|
}
|
||||||
if ((permission & RZ_BP_PROT_EXEC) == 0) {
|
if ((permission & RZ_PERM_X) == 0) {
|
||||||
data[2] = '-';
|
data[2] = '-';
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
|
Loading…
Reference in New Issue
Block a user