2.2. Segmentation in Hardware

本文详细介绍了80x86处理器中逻辑地址到线性地址的转换过程,包括段选择器、段寄存器、段描述符及段描述表等内容。重点阐述了段描述符的组成及其在全局描述符表(GDT)和局部描述符表(LDT)中的存储方式。

Starting with the 80286 model, Intel microprocessors perform address translation in two different ways called real mode and protected mode . We'll focus in the next sections on address translation when protected mode is enabled. Real mode exists mostly to maintain processor compatibility with older models and to allow the operating system to bootstrap (see Appendix A for a short description of real mode).

2.2.1. Segment Selectors and Segmentation Registers

A logical address consists of two parts: a segment identifier and an offset that specifies the relative address within the segment. The segment identifier is a 16-bit field called the Segment Selector (see Figure 2-2), while the offset is a 32-bit field. We'll describe the fields of Segment Selectors in the section "Fast Access to Segment Descriptors" later in this chapter.

 

Figure 2-2. Segment Selector format

 


To make it easy to retrieve segment selectors quickly, the processor provides segmentation registers whose only purpose is to hold Segment Selectors; these registers are called cs, ss, ds, es, fs, and gs. Although there are only six of them, a program can reuse the same segmentation register for different purposes by saving its content in memory and then restoring it later.

Three of the six segmentation registers have specific purposes:


cs

The code segment register, which points to a segment containing program instructions


ss

The stack segment register, which points to a segment containing the current program stack


ds

The data segment register, which points to a segment containing global and static data

The remaining three segmentation registers are general purpose and may refer to arbitrary data segments.

The cs register has another important function: it includes a 2-bit field that specifies the Current Privilege Level (CPL) of the CPU. The value 0 denotes the highest privilege level, while the value 3 denotes the lowest one. Linux uses only levels 0 and 3, which are respectively called Kernel Mode and User Mode.

2.2.2. Segment Descriptors

Each segment is represented by an 8-byte Segment Descriptor that describes the segment characteristics. Segment Descriptors are stored either in the Global Descriptor Table (GDT ) or in the Local Descriptor Table(LDT).

Usually only one GDT is defined, while each process is permitted to have its own LDT if it needs to create additional segments besides those stored in the GDT. The address and size of the GDT in main memory are contained in the gdtr control register, while the address and size of the currently used LDT are contained in the ldtr control register.

Figure 2-3 illustrates the format of a Segment Descriptor; the meaning of the various fields is explained in Table 2-1.

Table 2-1. Segment Descriptor fields

Field name

Description

Base

Contains the linear address of the first byte of the segment.

G

Granularity flag: if it is cleared (equal to 0), the segment size is expressed in bytes; otherwise, it is expressed in multiples of 4096 bytes.

Limit

Holds the offset of the last memory cell in the segment, thus binding the segment length. When G is set to 0, the size of a segment may vary between 1 byte and 1 MB; otherwise, it may vary between 4 KB and 4 GB.

S

System flag: if it is cleared, the segment is a system segment that stores critical data structures such as the Local Descriptor Table; otherwise, it is a normal code or data segment.

Type

Characterizes the segment type and its access rights (see the text that follows this table).

DPL

Descriptor Privilege Level: used to restrict accesses to the segment. It represents the minimal CPU privilege level requested for accessing the segment. Therefore, a segment with its DPL set to 0 is accessible only when the CPL is 0 that is, in Kernel Mode while a segment with its DPL set to 3 is accessible with every CPL value.

P

Segment-Present flag : is equal to 0 if the segment is not stored currently in main memory. Linux always sets this flag (bit 47) to 1, because it never swaps out whole segments to disk.

D or B

Called D or B depending on whether the segment contains code or data. Its meaning is slightly different in the two cases, but it is basically set (equal to 1) if the addresses used as segment offsets are 32 bits long, and it is cleared if they are 16 bits long (see the Intel manual for further details).

AVL

May be used by the operating system, but it is ignored by Linux.


There are several types of segments, and thus several types of Segment Descriptors. The following list shows the types that are widely used in Linux.


Code Segment Descriptor

Indicates that the Segment Descriptor refers to a code segment; it may be included either in the GDT or in the LDT. The descriptor has the S flag set (non-system segment).


Data Segment Descriptor

Indicates that the Segment Descriptor refers to a data segment; it may be included either in the GDT or in the LDT. The descriptor has the S flag set. Stack segments are implemented by means of generic data segments.


Task State Segment Descriptor (TSSD)

Indicates that the Segment Descriptor refers to a Task State Segment (TSS) that is, a segment used to save the contents of the processor registers (see the section "Task State Segment" in Chapter 3); it can appear only in the GDT. The corresponding Type field has the value 11 or 9, depending on whether the corresponding process is currently executing on a CPU. The S flag of such descriptors is set to 0.

 

Figure 2-3. Segment Descriptor format

 


Local Descriptor Table Descriptor (LDTD)

Indicates that the Segment Descriptor refers to a segment containing an LDT; it can appear only in the GDT. The corresponding Type field has the value 2. The S flag of such descriptors is set to 0. The next section shows how 80 x 86 processors are able to decide whether a segment descriptor is stored in the GDT or in the LDT of the process.

2.2.3. Fast Access to Segment Descriptors

We recall that logical addresses consist of a 16-bit Segment Selector and a 32-bit Offset, and that segmentation registers store only the Segment Selector.

To speed up the translation of logical addresses into linear addresses, the 80 x 86 processor provides an additional nonprogrammable registerthat is, a register that cannot be set by a programmerfor each of the six programmable segmentation registers. Each nonprogrammable register contains the 8-byte Segment Descriptor (described in the previous section) specified by the Segment Selector contained in the corresponding segmentation register. Every time a Segment Selector is loaded in a segmentation register, the corresponding Segment Descriptor is loaded from memory into the matching nonprogrammable CPU register. From then on, translations of logical addresses referring to that segment can be performed without accessing the GDT or LDT stored in main memory; the processor can refer only directly to the CPU register containing the Segment Descriptor. Accesses to the GDT or LDT are necessary only when the contents of the segmentation registers change (see Figure 2-4).

 

Figure 2-4. Segment Selector and Segment Descriptor

 


Any Segment Selector includes three fields that are described in Table 2-2.

Table 2-2. Segment Selector fields

Field name

Description

index

Identifies the Segment Descriptor entry contained in the GDT or in the LDT (described further in the text following this table).

TI

Table Indicator : specifies whether the Segment Descriptor is included in the GDT (TI = 0) or in the LDT (TI = 1).

RPL

Requestor Privilege Level : specifies the Current Privilege Level of the CPU when the corresponding Segment Selector is loaded into the cs register; it also may be used to selectively weaken the processor privilege level when accessing data segments (see Intel documentation for details).


Because a Segment Descriptor is 8 bytes long, its relative address inside the GDT or the LDT is obtained by multiplying the 13-bit index field of the Segment Selector by 8. For instance, if the GDT is at 0x00020000 (the value stored in the gdtr register) and the index specified by the Segment Selector is 2, the address of the corresponding Segment Descriptor is 0x00020000 + (2 x 8), or 0x00020010.

The first entry of the GDT is always set to 0. This ensures that logical addresses with a null Segment Selector will be considered invalid, thus causing a processor exception. The maximum number of Segment Descriptors that can be stored in the GDT is 8,191 (i.e., 213-1).

2.2.4. Segmentation Unit

Figure 2-5 shows in detail how a logical address is translated into a corresponding linear address. The segmentation unit performs the following operations:

  • Examines the TI field of the Segment Selector to determine which Descriptor Table stores the Segment Descriptor. This field indicates that the Descriptor is either in the GDT (in which case the segmentation unit gets the base linear address of the GDT from the gdtr register) or in the active LDT (in which case the segmentation unit gets the base linear address of that LDT from the ldtr register).

  • Computes the address of the Segment Descriptor from the index field of the Segment Selector. The index field is multiplied by 8 (the size of a Segment Descriptor), and the result is added to the content of the gdtr or ldtr register.

  • Adds the offset of the logical address to the Base field of the Segment Descriptor, thus obtaining the linear address.

     

    Figure 2-5. Translating a logical address

     

Notice that, thanks to the nonprogrammable registers associated with the segmentation registers, the first two operations need to be performed only when a segmentation register has been changed.

 
test@test-pc:/media/test/DATA/soft_DMG/Soft/Soft_dmg$ BOX64_LOG=1 BOX64_DYNAREC_LOG=1 BOX64_LOGLEVEL=debug box64 '/media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft' [BOX64] Box64 arm64 v0.3.6 with Dynarec built on Sep 6 2025 16:26:44 [BOX64] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2 [BOX64] Running on Phytium,D2000/8 E8C with 8 cores, pagesize: 4096 [BOX64] Will use hardware counter measured at 48.0 MHz emulating 3.0 GHz [BOX64] Didn't detect 48bits of address space, considering it's 39bits [BOX64] New Bridge brick at 0x30000000 (size 0x1000) [BOX64] Counted 64 Env var [BOX64] Library search path: [BOX64] Binary search path: ./:bin/:/usr/local/sbin/:/usr/local/bin/:/usr/sbin/:/usr/bin/:/sbin/:/bin/:/usr/games/:/usr/local/games/ [BOX64] Looking for /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] BOX64ENV: Variables overridden: BOX64_DYNAREC_LOG=1 BOX64_LOG=1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft (/damageassesssoft) in 0x100000000-0x1009e05b0 [BOX64] Rename process to "DamageAssessSoft" [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_QtDB_Lib.so.1 (/libjw_qtdb_lib.so.1) in 0x3f00000000-0x3f02d868d0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_QtDB_Lib.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_QtIO_Lib.so.1 (/libjw_qtio_lib.so.1) in 0x3f03000000-0x3f03098740 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_QtIO_Lib.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_View_Lib.so.1 (/libjw_view_lib.so.1) in 0x3f04000000-0x3f040ce5d0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_View_Lib.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_AppCommon_Lib.so.1 (/libjw_appcommon_lib.so.1) in 0x3f05000000-0x3f0504ffd8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_AppCommon_Lib.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_3DWindow_Lib.so.1 (/libjw_3dwindow_lib.so.1) in 0x3f06000000-0x3f07795bc8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_3DWindow_Lib.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpython3.8.so.1.0 (/libpython3.8.so.1.0) in 0x3f08000000-0x3f0855bba8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpython3.8.so.1.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libonnxruntime.so.1.16.3 (/libonnxruntime.so.1.16.3) in 0x3f09000000-0x3f0a0a7d90 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libonnxruntime.so.1.16.3 [BOX64] New Bridge brick at 0x30010000 (size 0x1000) [BOX64] Using native(wrapped) libtiff.so.5 [BOX64] Mapping /usr/lib/box64-x86_64-linux-gnu/libstdc++.so.6 (/libstdc++.so.6) in 0x3f0b000000-0x3f0b255140 [BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libstdc++.so.6 [BOX64] New Bridge brick at 0x30020000 (size 0x1000) [BOX64] Using native(wrapped) libm.so.6 [BOX64] New Bridge brick at 0x30030000 (size 0x1000) [BOX64] Using native(wrapped) libc.so.6 [BOX64] New Bridge brick at 0x30040000 (size 0x1000) [BOX64] Using native(wrapped) ld-linux-x86-64.so.2 [BOX64] New Bridge brick at 0x30050000 (size 0x1000) [BOX64] Using native(wrapped) libpthread.so.0 [BOX64] New Bridge brick at 0x30060000 (size 0x1000) [BOX64] Using native(wrapped) libdl.so.2 [BOX64] New Bridge brick at 0x30070000 (size 0x1000) [BOX64] Using native(wrapped) libutil.so.1 [BOX64] New Bridge brick at 0x30080000 (size 0x1000) [BOX64] Using native(wrapped) librt.so.1 [BOX64] New Bridge brick at 0x30090000 (size 0x1000) [BOX64] Using native(wrapped) libbsd.so.0 [BOX64] Mapping /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (/libgcc_s.so.1) in 0x3f0c000000-0x3f0c01a448 [BOX64] Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_surface.so.1.8.1 (/libpcl_surface.so.1.8.1) in 0x3f0d000000-0x3f0e29acc0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_surface.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_recognition.so.1.8.1 (/libpcl_recognition.so.1.8.1) in 0x3f0f000000-0x3f0f6f9bf0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_recognition.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_system.so.1.64.0 (/libboost_system.so.1.64.0) in 0x3f10000000-0x3f100058a8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_system.so.1.64.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libflann_cpp.so.1.9 (/libflann_cpp.so.1.9) in 0x3f11000000-0x3f1101ca30 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libflann_cpp.so.1.9 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkRenderingCore-8.0.so.1 (/libvtkrenderingcore-8.0.so.1) in 0x3f12000000-0x3f12540cd8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkRenderingCore-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libopencv_world.so.3.1 (/libopencv_world.so.3.1) in 0x3f13000000-0x3f15bd65b0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libopencv_world.so.3.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Charts.so.5 (/libqt5charts.so.5) in 0x3f16000000-0x3f163fa548 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Charts.so.5 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5PrintSupport.so.5 (/libqt5printsupport.so.5) in 0x3f17000000-0x3f1727e768 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5PrintSupport.so.5 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Widgets.so.5 (/libqt5widgets.so.5) in 0x3f18000000-0x3f188cd6f8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Widgets.so.5 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Gui.so.5 (/libqt5gui.so.5) in 0x3f19000000-0x3f1997d348 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Gui.so.5 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Sql.so.5 (/libqt5sql.so.5) in 0x3f1a000000-0x3f1a24f668 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Sql.so.5 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Xml.so.5 (/libqt5xml.so.5) in 0x3f1b000000-0x3f1b23f970 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Xml.so.5 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Core.so.5 (/libqt5core.so.5) in 0x3f1c000000-0x3f1c8175b8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5Core.so.5 [BOX64] New Bridge brick at 0x300a0000 (size 0x1000) [BOX64] Using native(wrapped) libz.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libicui18n.so.56 (/libicui18n.so.56) in 0x3f1d000000-0x3f1d4f5dd8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libicui18n.so.56 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libicuuc.so.56 (/libicuuc.so.56) in 0x3f1e000000-0x3f1e3d7428 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libicuuc.so.56 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libicudata.so.56 (/libicudata.so.56) in 0x3f1f000000-0x3f209e31f8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libicudata.so.56 [BOX64] New Bridge brick at 0x300b0000 (size 0x1000) [BOX64] Using native(wrapped) libgthread-2.0.so.0 [BOX64] New Bridge brick at 0x300c0000 (size 0x1000) [BOX64] Using native(wrapped) libglib-2.0.so.0 [BOX64] Look for arc4random in loaded elfs [BOX64] Warning, function arc4random not found in lib libbsd.so.0 [BOX64] Look for arc4random in loaded elfs [BOX64] Warning, function arc4random not found in lib libbsd.so.0 [BOX64] New Bridge brick at 0x30031000 (size 0x1000) [BOX64] New Bridge brick at 0x300d0000 (size 0x1000) [BOX64] Using native(wrapped) libGL.so.1 [BOX64] New Bridge brick at 0x30032000 (size 0x1000) [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libjpeg.so.8 (/libjpeg.so.8) in 0x3f21000000-0x3f21085f78 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libjpeg.so.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpng12.so.0 (/libpng12.so.0) in 0x3f22000000-0x3f220295d8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpng12.so.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonColor-8.0.so.1 (/libvtkcommoncolor-8.0.so.1) in 0x3f23000000-0x3f2322c288 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonColor-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersGeometry-8.0.so.1 (/libvtkfiltersgeometry-8.0.so.1) in 0x3f24000000-0x3f24308fe0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersGeometry-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersSources-8.0.so.1 (/libvtkfilterssources-8.0.so.1) in 0x3f25000000-0x3f2531f2b0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersSources-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersGeneral-8.0.so.1 (/libvtkfiltersgeneral-8.0.so.1) in 0x3f26000000-0x3f2668d330 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersGeneral-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersCore-8.0.so.1 (/libvtkfilterscore-8.0.so.1) in 0x3f27000000-0x3f27887f80 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkFiltersCore-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonExecutionModel-8.0.so.1 (/libvtkcommonexecutionmodel-8.0.so.1) in 0x3f28000000-0x3f2832b3e8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonExecutionModel-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonComputationalGeometry-8.0.so.1 (/libvtkcommoncomputationalgeometry-8.0.so.1) in 0x3f29000000-0x3f29251678 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonComputationalGeometry-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonDataModel-8.0.so.1 (/libvtkcommondatamodel-8.0.so.1) in 0x3f2a000000-0x3f2a794ec8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonDataModel-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonSystem-8.0.so.1 (/libvtkcommonsystem-8.0.so.1) in 0x3f2b000000-0x3f2b222b60 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonSystem-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtksys-8.0.so.1 (/libvtksys-8.0.so.1) in 0x3f2c000000-0x3f2c291878 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtksys-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonTransforms-8.0.so.1 (/libvtkcommontransforms-8.0.so.1) in 0x3f2d000000-0x3f2d2388a0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonTransforms-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonMath-8.0.so.1 (/libvtkcommonmath-8.0.so.1) in 0x3f2e000000-0x3f2e22a7a8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonMath-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonCore-8.0.so.1 (/libvtkcommoncore-8.0.so.1) in 0x3f2f000000-0x3f2f854e38 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonCore-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonMisc-8.0.so.1 (/libvtkcommonmisc-8.0.so.1) in 0x3f30000000-0x3f3024ace0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libvtkCommonMisc-8.0.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_filesystem.so.1.64.0 (/libboost_filesystem.so.1.64.0) in 0x3f31000000-0x3f310208f8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_filesystem.so.1.64.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_io.so.1.8 (/libpcl_io.so.1.8) in 0x3f32000000-0x3f333023c8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_io.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_features.so.1.8 (/libpcl_features.so.1.8) in 0x3f34000000-0x3f364aa250 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_features.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_filters.so.1.8 (/libpcl_filters.so.1.8) in 0x3f37000000-0x3f37978b78 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_filters.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_search.so.1.8 (/libpcl_search.so.1.8) in 0x3f38000000-0x3f383c79a8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_search.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_kdtree.so.1.8 (/libpcl_kdtree.so.1.8) in 0x3f39000000-0x3f3933d130 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_kdtree.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_sample_consensus.so.1.8 (/libpcl_sample_consensus.so.1.8) in 0x3f3a000000-0x3f3adbf5f8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_sample_consensus.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_common.so.1.8 (/libpcl_common.so.1.8) in 0x3f3b000000-0x3f3b2b7b90 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_common.so.1.8 [BOX64] New Bridge brick at 0x300e0000 (size 0x1000) [BOX64] Using native(wrapped) libgomp.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_thread.so.1.64.0 (/libboost_thread.so.1.64.0) in 0x3f3c000000-0x3f3c038008 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_thread.so.1.64.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_octree.so.1.8 (/libpcl_octree.so.1.8) in 0x3f3d000000-0x3f3d3cc7b8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_octree.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_iostreams.so.1.64.0 (/libboost_iostreams.so.1.64.0) in 0x3f3e000000-0x3f3e21ba10 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_iostreams.so.1.64.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_chrono.so.1.64.0 (/libboost_chrono.so.1.64.0) in 0x3f3f000000-0x3f3f007ca0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libboost_chrono.so.1.64.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_io_ply.so.1.8 (/libpcl_io_ply.so.1.8) in 0x3f40000000-0x3f40260870 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_io_ply.so.1.8 [BOX64] New Bridge brick at 0x300f0000 (size 0x1000) [BOX64] Using native(wrapped) libusb-1.0.so.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libOpenNI2.so.0 (/libopenni2.so.0) in 0x3f41000000-0x3f41067158 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libOpenNI2.so.0 [BOX64] New Bridge brick at 0x30100000 (size 0x1000) [BOX64] Using native(wrapped) libpcap.so.0 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libqhull.so.7 (/libqhull.so.7) in 0x3f42000000-0x3f4225bf40 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libqhull.so.7 [BOX64] New Bridge brick at 0x30110000 (size 0x1000) [BOX64] Using native(wrapped) libexpat.so.1 [BOX64] New Bridge brick at 0x30033000 (size 0x1000) [BOX64] New Bridge brick at 0x30034000 (size 0x1000) [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_segmentation.so.1.8 (/libpcl_segmentation.so.1.8) in 0x3f43000000-0x3f43e81738 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_segmentation.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_visualization.so.1.8 (/libpcl_visualization.so.1.8) in 0x3f45000000-0x3f45e10aa8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_visualization.so.1.8 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libflann.so.1.9 (/libflann.so.1.9) in 0x3f47000000-0x3f47779cc8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libflann.so.1.9 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_PluginAPI_Lib.so.1 (/libjw_pluginapi_lib.so.1) in 0x3f48000000-0x3f4804acc8 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_PluginAPI_Lib.so.1 [BOX64] New Bridge brick at 0x30120000 (size 0x1000) [BOX64] Using native(wrapped) libgmp.so.10 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_FrameBuffer_Lib.so.1 (/libjw_framebuffer_lib.so.1) in 0x3f49000000-0x3f490421e0 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libJW_FrameBuffer_Lib.so.1 [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5OpenGL.so.5 (/libqt5opengl.so.5) in 0x3f4a000000-0x3f4a262a68 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libQt5OpenGL.so.5 [BOX64] New Bridge brick at 0x30130000 (size 0x1000) [BOX64] Using native(wrapped) libX11.so.6 [BOX64] New Bridge brick at 0x30140000 (size 0x1000) [BOX64] Using native(wrapped) libxcb.so.1 [BOX64] New Bridge brick at 0x30150000 (size 0x1000) [BOX64] Using native(wrapped) libXau.so.6 [BOX64] New Bridge brick at 0x30160000 (size 0x1000) [BOX64] Using native(wrapped) libXdmcp.so.6 [BOX64] New Bridge brick at 0x30170000 (size 0x1000) [BOX64] Using native(wrapped) libXt.so.6 [BOX64] New Bridge brick at 0x30180000 (size 0x1000) [BOX64] Using native(wrapped) libXext.so.6 [BOX64] Error: Global Symbol applicationShellWidgetClass not found, cannot apply R_X86_64_GLOB_DAT @0x3f45d82880 ((nil)) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_visualization.so.1.8 [BOX64] New Bridge brick at 0x300d1000 (size 0x1000) [BOX64] Mapping /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_ml.so.1.8 (/libpcl_ml.so.1.8) in 0x3f4b000000-0x3f4b228540 [BOX64] Using emulated /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libpcl_ml.so.1.8 [BOX64] Error: Symbol TIFFSetField not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d69e8 (0xb90d6) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFOpen not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d6ad0 (0xb92a6) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFNumberOfStrips not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d6d28 (0xb9756) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFReadEncodedStrip not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d7dc8 (0xbb896) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFGetField not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d8238 (0xbc176) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFWriteScanline not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d8548 (0xbc796) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFStripSize not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d87b8 (0xbcc76) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFReadTile not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d8ff8 (0xbdcf6) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFTileSize not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d9950 (0xbefa6) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] Error: Symbol TIFFDefaultStripSize not found, cannot apply R_X86_64_JUMP_SLOT @0x1009d99d8 (0xbf0b6) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/DamageAssessSoft [BOX64] BOX64 Dynarec: higher max_db=27 [BOX64] BOX64 Dynarec: higher max_db=241 [BOX64] BOX64 Dynarec: higher max_db=582 [BOX64] BOX64 Dynarec: higher max_db=765 [BOX64] BOX64 Dynarec: higher max_db=3837 [BOX64] Error: PltResolver: Symbol TIFFSetErrorHandler(ver 0: TIFFSetErrorHandler) not found, cannot apply R_X86_64_JUMP_SLOT 0x3f15ae6608 (0x3f131cd3c6) in /media/test/DATA/soft_DMG/Soft/Soft_dmg/lib/libopencv_world.so.3.1 (local_maplib=(nil), global maplib=0x4c66a460, deepbind=0) QSocketNotifier: Can only be used with threads started with QThread terminate called after throwing an instance of 'CGAL::Assertion_exception' what(): CGAL ERROR: assertion violation! Expr: -CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1) File: /usr/include/CGAL/Interval_nt.h Line: 279 Explanation: Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)? [BOX64] NativeBT: /usr/local/bin/box64() [0x34a50c7c] [BOX64] NativeBT: /usr/local/bin/box64() [0x34a8856c] [BOX64] NativeBT: linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x7f80ac45b0] [BOX64] NativeBT: /lib/aarch64-linux-gnu/libc.so.6(gsignal+0xe0) [0x7f80939c60] [BOX64] NativeBT: /lib/aarch64-linux-gnu/libc.so.6(abort+0x110) [0x7f80926a68] [BOX64] NativeBT: [0x7f75cc500c] [BOX64] EmulatedBT: box64(abort+0) [0x300300a0] [BOX64] EmulatedBT: ??? [(nil)] [BOX64] 7357|SIGABRT @0x7f80939c60 (gsignal(/lib/aarch64-linux-gnu/libc.so.6)) (x64pc=0x300300a0/"???", rsp=0x7f805c1d90, stack=0x7f7fdc3000:0x7f805c3000 own=(nil) fp=0x1009db080), for accessing 0x3e800001cbd (code=-6/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil) RSP-0x20:0x0000003f0b0af274 RSP-0x18:0x0000000000000167 RSP-0x10:0x000000004c6ea520 RSP-0x08:0x0000000000000078 RSP+0x00:0x0000003f0b0a09db RSP+0x08:0x000000004defa848 RSP+0x10:0x000000004defa640 RSP+0x18:0x000000004defa6a0 RAX:0x000000004deb02a0 RCX:0x0000007f80a75468 RDX:0x0000000000000001 RBX:0x000000004defab78 RSP:0x0000007f805c1d90 RBP:0x00000001009db080 RSI:0x0000000035cd5f48 RDI:0x000000004defa650 R8:0x00000000ffffffff R9:0x0000007f805c1798 R10:0x0000003f0c01a1f0 R11:0x0000007f805c1d98 R12:0x000000004cde4f90 R13:0x0000007f805c1e20 R14:0x000000004defa6c0 R15:0x0000003f0b254640 ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 已放弃 (核心已转储)
09-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值