@@ -0,0 +1,51 | |||||
|
1 | #include "qtablewidgetintitem.h" | |||
|
2 | ||||
|
3 | QTableWidgetIntItem::QTableWidgetIntItem(const QString &text,int Type) | |||
|
4 | :QTableWidgetItem(text,Type) | |||
|
5 | { | |||
|
6 | } | |||
|
7 | ||||
|
8 | bool QTableWidgetIntItem::operator <(const QTableWidgetItem& other) const | |||
|
9 | { | |||
|
10 | return toInt() < toInt(other); | |||
|
11 | } | |||
|
12 | ||||
|
13 | bool QTableWidgetIntItem::operator >(const QTableWidgetItem &other) const | |||
|
14 | { | |||
|
15 | return toInt() > toInt(other); | |||
|
16 | } | |||
|
17 | ||||
|
18 | bool QTableWidgetIntItem::operator ==(const QTableWidgetItem &other) const | |||
|
19 | { | |||
|
20 | return toInt() == toInt(other); | |||
|
21 | } | |||
|
22 | ||||
|
23 | int QTableWidgetIntItem::toInt() const | |||
|
24 | { | |||
|
25 | bool ok=true; | |||
|
26 | if(type()==DecimalItem) | |||
|
27 | { | |||
|
28 | return text().toInt(); | |||
|
29 | } | |||
|
30 | else if(type()==HexaDecimalItem) | |||
|
31 | { | |||
|
32 | return text().replace("0x","").toInt(&ok,16); | |||
|
33 | } | |||
|
34 | return 0; | |||
|
35 | } | |||
|
36 | ||||
|
37 | int QTableWidgetIntItem::toInt(const QTableWidgetItem &item) const | |||
|
38 | { | |||
|
39 | bool ok=true; | |||
|
40 | if(item.type()==DecimalItem) | |||
|
41 | { | |||
|
42 | return item.text().toInt(); | |||
|
43 | } | |||
|
44 | else if(item.type()==HexaDecimalItem) | |||
|
45 | { | |||
|
46 | return item.text().replace("0x","").toInt(&ok,16); | |||
|
47 | } | |||
|
48 | return 0; | |||
|
49 | } | |||
|
50 | ||||
|
51 |
@@ -0,0 +1,22 | |||||
|
1 | #ifndef QTABLEWIDGETINTITEM_H | |||
|
2 | #define QTABLEWIDGETINTITEM_H | |||
|
3 | ||||
|
4 | #include <QTableWidgetItem> | |||
|
5 | ||||
|
6 | #define DecimalItem 0 | |||
|
7 | #define HexaDecimalItem 1 | |||
|
8 | ||||
|
9 | class QTableWidgetIntItem : public QTableWidgetItem | |||
|
10 | { | |||
|
11 | ||||
|
12 | public: | |||
|
13 | explicit QTableWidgetIntItem(const QString& text, int Type); | |||
|
14 | bool operator <(const QTableWidgetItem &other)const; | |||
|
15 | bool operator >(const QTableWidgetItem &other)const; | |||
|
16 | bool operator ==(const QTableWidgetItem &other)const; | |||
|
17 | int toInt() const; | |||
|
18 | int toInt(const QTableWidgetItem &item) const; | |||
|
19 | ||||
|
20 | }; | |||
|
21 | ||||
|
22 | #endif // QTABLEWIDGETINTITEM_H |
@@ -40,7 +40,8 header.files = \ | |||||
40 | elf/elffile.h \ |
|
40 | elf/elffile.h \ | |
41 | elf/elffilewidget.h \ |
|
41 | elf/elffilewidget.h \ | |
42 | qipdialogbox.h \ |
|
42 | qipdialogbox.h \ | |
43 | lppserial/src/RS232.h |
|
43 | lppserial/src/RS232.h \ | |
|
44 | qtablewidgetintitem.h | |||
44 |
|
45 | |||
45 | win32{ |
|
46 | win32{ | |
46 | elfheader.path = $$[QT_INSTALL_HEADERS]/SocExplorer/common/libelf |
|
47 | elfheader.path = $$[QT_INSTALL_HEADERS]/SocExplorer/common/libelf | |
@@ -85,7 +86,8 HEADERS += \ | |||||
85 | qipdialogbox.h \ |
|
86 | qipdialogbox.h \ | |
86 | PySocExplorer.h \ |
|
87 | PySocExplorer.h \ | |
87 | SocExplorerPlot.h \ |
|
88 | SocExplorerPlot.h \ | |
88 | elf/elffilewidget.h |
|
89 | elf/elffilewidget.h \ | |
|
90 | qtablewidgetintitem.h | |||
89 |
|
91 | |||
90 |
|
92 | |||
91 | SOURCES += \ |
|
93 | SOURCES += \ | |
@@ -104,7 +106,8 SOURCES += \ | |||||
104 | elf/elffile.cpp \ |
|
106 | elf/elffile.cpp \ | |
105 | qipdialogbox.cpp \ |
|
107 | qipdialogbox.cpp \ | |
106 | SocExplorerPlot.cpp \ |
|
108 | SocExplorerPlot.cpp \ | |
107 | elf/elffilewidget.cpp |
|
109 | elf/elffilewidget.cpp \ | |
|
110 | qtablewidgetintitem.cpp | |||
108 |
|
111 | |||
109 | FORMS += \ |
|
112 | FORMS += \ | |
110 | elf/elffilewidget.ui |
|
113 | elf/elffilewidget.ui |
@@ -43,6 +43,28 ElfFile::ElfFile(const QString &File) | |||||
43 | openFile(File); |
|
43 | openFile(File); | |
44 | } |
|
44 | } | |
45 |
|
45 | |||
|
46 | ElfFile::~ElfFile() | |||
|
47 | { | |||
|
48 | closeFile(); | |||
|
49 | if(scn)free(scn); | |||
|
50 | if(data)free(data); | |||
|
51 | for(int i=0;i<this->sections.count();i++) | |||
|
52 | { | |||
|
53 | delete this->sections.at(i); | |||
|
54 | } | |||
|
55 | this->sections.clear(); | |||
|
56 | for(int i=0;i<this->Segments.count();i++) | |||
|
57 | { | |||
|
58 | free(this->Segments.at(i)); | |||
|
59 | } | |||
|
60 | this->Segments.clear(); | |||
|
61 | for(int i=0;i<symbols.count();i++) | |||
|
62 | { | |||
|
63 | delete this->symbols.at(i); | |||
|
64 | } | |||
|
65 | this->symbols.clear(); | |||
|
66 | } | |||
|
67 | ||||
46 | bool ElfFile::openFile(const QString &File) |
|
68 | bool ElfFile::openFile(const QString &File) | |
47 | { |
|
69 | { | |
48 | this->p_fileName = File; |
|
70 | this->p_fileName = File; | |
@@ -828,6 +850,19 QString ElfFile::getSectionType(int inde | |||||
828 | return type; |
|
850 | return type; | |
829 | } |
|
851 | } | |
830 |
|
852 | |||
|
853 | int ElfFile::getSectionIndex(QString name) | |||
|
854 | { | |||
|
855 | if(this->e!=NULL) | |||
|
856 | { | |||
|
857 | for(int i=0;i<sections.count();i++) | |||
|
858 | { | |||
|
859 | if(getSectionName(i)==name) | |||
|
860 | return i; | |||
|
861 | } | |||
|
862 | } | |||
|
863 | return -1; | |||
|
864 | } | |||
|
865 | ||||
831 | QString ElfFile::getSymbolName(int index) |
|
866 | QString ElfFile::getSymbolName(int index) | |
832 | { |
|
867 | { | |
833 | if(this->e!=NULL) |
|
868 | if(this->e!=NULL) |
@@ -64,6 +64,7 class ElfFile : public abstractExecFile | |||||
64 | public: |
|
64 | public: | |
65 | ElfFile(); |
|
65 | ElfFile(); | |
66 | ElfFile(const QString& File); |
|
66 | ElfFile(const QString& File); | |
|
67 | ~ElfFile(); | |||
67 | bool openFile(const QString& File); |
|
68 | bool openFile(const QString& File); | |
68 | bool isopened(); |
|
69 | bool isopened(); | |
69 | int closeFile(); |
|
70 | int closeFile(); | |
@@ -96,6 +97,7 public: | |||||
96 | qint64 getSectionMemsz(int index); |
|
97 | qint64 getSectionMemsz(int index); | |
97 | QString getSectionName(int index); |
|
98 | QString getSectionName(int index); | |
98 | QString getSectionType(int index); |
|
99 | QString getSectionType(int index); | |
|
100 | int getSectionIndex(QString name); | |||
99 |
|
101 | |||
100 | QString getSymbolName(int index); |
|
102 | QString getSymbolName(int index); | |
101 | QString getSymbolType(int index); |
|
103 | QString getSymbolType(int index); |
@@ -1,19 +1,26 | |||||
1 | #include "elffilewidget.h" |
|
1 | #include "elffilewidget.h" | |
2 | #include "ui_elffilewidget.h" |
|
2 | #include "ui_elffilewidget.h" | |
3 | #include <QtWidgets/QTableWidgetItem> |
|
3 | #include <QtWidgets/QTableWidgetItem> | |
|
4 | #include "qhexedit.h" | |||
|
5 | #include "qtablewidgetintitem.h" | |||
4 |
|
6 | |||
5 | elfFileWidget::elfFileWidget(QWidget *parent) : |
|
7 | elfFileWidget::elfFileWidget(QWidget *parent) : | |
6 | QWidget(parent), |
|
8 | QWidget(parent), | |
7 | ui(new Ui::elfFileWidget) |
|
9 | ui(new Ui::elfFileWidget) | |
8 | { |
|
10 | { | |
9 | ui->setupUi(this); |
|
11 | ui->setupUi(this); | |
|
12 | connect(this->ui->sectionsList,SIGNAL(cellActivated(int,int)),this,SLOT(sectionCellActivated(int,int))); | |||
10 | } |
|
13 | } | |
11 |
|
14 | |||
|
15 | ||||
|
16 | ||||
12 | elfFileWidget::~elfFileWidget() |
|
17 | elfFileWidget::~elfFileWidget() | |
13 | { |
|
18 | { | |
14 | delete ui; |
|
19 | delete ui; | |
15 | } |
|
20 | } | |
16 |
|
21 | |||
|
22 | ||||
|
23 | ||||
17 | void elfFileWidget::updateElfFile(ElfFile *file) |
|
24 | void elfFileWidget::updateElfFile(ElfFile *file) | |
18 | { |
|
25 | { | |
19 | this->p_elf = file; |
|
26 | this->p_elf = file; | |
@@ -30,44 +37,91 void elfFileWidget::updateElfFile(ElfFil | |||||
30 | this->ui->symbolCountLabel->setText(QString::number(p_elf->getSymbolCount())); |
|
37 | this->ui->symbolCountLabel->setText(QString::number(p_elf->getSymbolCount())); | |
31 | } |
|
38 | } | |
32 | updateSymbols(); |
|
39 | updateSymbols(); | |
|
40 | updateSections(); | |||
33 | } |
|
41 | } | |
34 |
|
42 | |||
|
43 | ||||
|
44 | ||||
35 | void elfFileWidget::updateSymbols() |
|
45 | void elfFileWidget::updateSymbols() | |
36 | { |
|
46 | { | |
37 | this->ui->symbolsList->clear(); |
|
47 | this->ui->symbolsList->clear(); | |
38 | this->ui->symbolsList->setRowCount(p_elf->getSymbolCount()); |
|
48 | this->ui->symbolsList->setRowCount(p_elf->getSymbolCount()); | |
39 | this->ui->symbolsList->setHorizontalHeaderLabels(QStringList()<<"Value"<<"Size"<<"Type"<<"Link"<<"Section"<<"Name"); |
|
49 | this->ui->symbolsList->setHorizontalHeaderLabels(QStringList()<<"Index"<<"Value"<<"Size"<<"Type"<<"Link"<<"Section"<<"Name"); | |
40 | for(int i=0;i<p_elf->getSymbolCount();i++) |
|
50 | for(int i=0;i<p_elf->getSymbolCount();i++) | |
41 | { |
|
51 | { | |
42 |
QTableWidgetItem *newItem = new QTableWidgetItem(QString(" |
|
52 | QTableWidgetItem *newItem = (QTableWidgetItem*)new QTableWidgetIntItem(QString("%1").arg(i),DecimalItem); | |
43 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); |
|
53 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |
44 | this->ui->symbolsList->setItem(i, 0, newItem); |
|
54 | this->ui->symbolsList->setItem(i, 0, newItem); | |
45 |
|
55 | |||
46 |
newItem = new QTableWidgetItem(QString("0x%1").arg(p_elf->getSymbol |
|
56 | newItem = (QTableWidgetItem*)new QTableWidgetIntItem(QString("0x%1").arg(p_elf->getSymbolAddress(i),8,16).replace(" ","0"),HexaDecimalItem); | |
47 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); |
|
57 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |
48 | this->ui->symbolsList->setItem(i, 1, newItem); |
|
58 | this->ui->symbolsList->setItem(i, 1, newItem); | |
49 |
|
59 | |||
|
60 | newItem = (QTableWidgetItem*)new QTableWidgetIntItem(QString("%1").arg(p_elf->getSymbolSize(i)),DecimalItem); | |||
|
61 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |||
|
62 | this->ui->symbolsList->setItem(i, 2, newItem); | |||
|
63 | ||||
50 | newItem = new QTableWidgetItem(p_elf->getSymbolType(i)); |
|
64 | newItem = new QTableWidgetItem(p_elf->getSymbolType(i)); | |
51 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); |
|
65 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |
52 |
this->ui->symbolsList->setItem(i, |
|
66 | this->ui->symbolsList->setItem(i, 3, newItem); | |
53 |
|
67 | |||
54 | newItem = new QTableWidgetItem(p_elf->getSymbolLinkType(i)); |
|
68 | newItem = new QTableWidgetItem(p_elf->getSymbolLinkType(i)); | |
55 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); |
|
69 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |
56 |
this->ui->symbolsList->setItem(i, |
|
70 | this->ui->symbolsList->setItem(i, 4, newItem); | |
57 |
|
71 | |||
58 | newItem = new QTableWidgetItem(p_elf->getSymbolSectionName(i)); |
|
72 | newItem = new QTableWidgetItem(p_elf->getSymbolSectionName(i)); | |
59 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); |
|
73 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |
60 |
this->ui->symbolsList->setItem(i, |
|
74 | this->ui->symbolsList->setItem(i, 5, newItem); | |
61 |
|
75 | |||
62 | newItem = new QTableWidgetItem(p_elf->getSymbolName(i)); |
|
76 | newItem = new QTableWidgetItem(p_elf->getSymbolName(i)); | |
63 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); |
|
77 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |
64 |
this->ui->symbolsList->setItem(i, |
|
78 | this->ui->symbolsList->setItem(i, 6, newItem); | |
65 | } |
|
79 | } | |
66 | this->ui->symbolsList->resizeColumnsToContents(); |
|
80 | this->ui->symbolsList->resizeColumnsToContents(); | |
67 | } |
|
81 | } | |
68 |
|
82 | |||
69 |
|
83 | |||
70 |
|
84 | |||
|
85 | void elfFileWidget::updateSections() | |||
|
86 | { | |||
|
87 | this->ui->sectionsList->clear(); | |||
|
88 | this->ui->sectionsList->setRowCount(p_elf->getSectionCount()); | |||
|
89 | this->ui->sectionsList->setHorizontalHeaderLabels(QStringList()<<"Index"<<"Name"<<"Address"<<"Size"); | |||
|
90 | for(int i=0;i<p_elf->getSectionCount();i++) | |||
|
91 | { | |||
|
92 | QTableWidgetItem *newItem = (QTableWidgetItem*) new QTableWidgetIntItem(QString("%1").arg(i),DecimalItem); | |||
|
93 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |||
|
94 | this->ui->sectionsList->setItem(i,0, newItem); | |||
|
95 | ||||
|
96 | newItem = new QTableWidgetItem(p_elf->getSectionName(i)); | |||
|
97 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |||
|
98 | this->ui->sectionsList->setItem(i, 1, newItem); | |||
|
99 | ||||
|
100 | newItem = (QTableWidgetItem*) new QTableWidgetIntItem(QString("0x%1").arg(p_elf->getSectionPaddr(i),8,16).replace(" ","0"),HexaDecimalItem); | |||
|
101 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |||
|
102 | this->ui->sectionsList->setItem(i, 2, newItem); | |||
|
103 | ||||
|
104 | newItem = (QTableWidgetItem*) new QTableWidgetIntItem(QString("%1").arg(p_elf->getSectionDatasz(i)),DecimalItem); | |||
|
105 | newItem->setFlags(newItem->flags() ^ Qt::ItemIsEditable); | |||
|
106 | this->ui->sectionsList->setItem(i, 3, newItem); | |||
|
107 | } | |||
|
108 | this->ui->sectionsList->resizeColumnsToContents(); | |||
|
109 | } | |||
|
110 | ||||
|
111 | void elfFileWidget::sectionCellActivated(int row, int column) | |||
|
112 | { | |||
|
113 | Q_UNUSED(column) | |||
|
114 | char* buff=NULL; | |||
|
115 | int sectionIndex = p_elf->getSectionIndex(this->ui->sectionsList->item(row,1)->text()); | |||
|
116 | if(sectionIndex!=-1) | |||
|
117 | { | |||
|
118 | this->p_elf->getSectionData(sectionIndex,&buff); | |||
|
119 | this->ui->sectionsHexView->setData(QByteArray(buff,this->p_elf->getSectionDatasz(sectionIndex))); | |||
|
120 | } | |||
|
121 | } | |||
|
122 | ||||
|
123 | ||||
|
124 | ||||
71 |
|
125 | |||
72 |
|
126 | |||
73 |
|
127 |
@@ -19,6 +19,10 public: | |||||
19 | public slots: |
|
19 | public slots: | |
20 | void updateElfFile(ElfFile* file); |
|
20 | void updateElfFile(ElfFile* file); | |
21 | void updateSymbols(); |
|
21 | void updateSymbols(); | |
|
22 | void updateSections(); | |||
|
23 | ||||
|
24 | private slots: | |||
|
25 | void sectionCellActivated(int row, int column); | |||
22 |
|
26 | |||
23 | private: |
|
27 | private: | |
24 | Ui::elfFileWidget *ui; |
|
28 | Ui::elfFileWidget *ui; |
@@ -26,7 +26,7 | |||||
26 | <item row="0" column="0"> |
|
26 | <item row="0" column="0"> | |
27 | <widget class="QTabWidget" name="tabWidget"> |
|
27 | <widget class="QTabWidget" name="tabWidget"> | |
28 | <property name="currentIndex"> |
|
28 | <property name="currentIndex"> | |
29 |
<number> |
|
29 | <number>2</number> | |
30 | </property> |
|
30 | </property> | |
31 | <widget class="QWidget" name="generalInfoTab"> |
|
31 | <widget class="QWidget" name="generalInfoTab"> | |
32 | <attribute name="title"> |
|
32 | <attribute name="title"> | |
@@ -189,6 +189,17 | |||||
189 | <property name="sortingEnabled"> |
|
189 | <property name="sortingEnabled"> | |
190 | <bool>true</bool> |
|
190 | <bool>true</bool> | |
191 | </property> |
|
191 | </property> | |
|
192 | <attribute name="verticalHeaderVisible"> | |||
|
193 | <bool>false</bool> | |||
|
194 | </attribute> | |||
|
195 | <attribute name="verticalHeaderShowSortIndicator" stdset="0"> | |||
|
196 | <bool>false</bool> | |||
|
197 | </attribute> | |||
|
198 | <column> | |||
|
199 | <property name="text"> | |||
|
200 | <string>Index</string> | |||
|
201 | </property> | |||
|
202 | </column> | |||
192 | <column> |
|
203 | <column> | |
193 | <property name="text"> |
|
204 | <property name="text"> | |
194 | <string>Value</string> |
|
205 | <string>Value</string> | |
@@ -239,7 +250,37 | |||||
239 | </widget> |
|
250 | </widget> | |
240 | </item> |
|
251 | </item> | |
241 | <item row="0" column="1"> |
|
252 | <item row="0" column="1"> | |
242 |
<widget class="QTableWidget" name="sectionsList" |
|
253 | <widget class="QTableWidget" name="sectionsList"> | |
|
254 | <property name="sortingEnabled"> | |||
|
255 | <bool>true</bool> | |||
|
256 | </property> | |||
|
257 | <attribute name="verticalHeaderVisible"> | |||
|
258 | <bool>false</bool> | |||
|
259 | </attribute> | |||
|
260 | <attribute name="verticalHeaderShowSortIndicator" stdset="0"> | |||
|
261 | <bool>false</bool> | |||
|
262 | </attribute> | |||
|
263 | <column> | |||
|
264 | <property name="text"> | |||
|
265 | <string>Index</string> | |||
|
266 | </property> | |||
|
267 | </column> | |||
|
268 | <column> | |||
|
269 | <property name="text"> | |||
|
270 | <string>Name</string> | |||
|
271 | </property> | |||
|
272 | </column> | |||
|
273 | <column> | |||
|
274 | <property name="text"> | |||
|
275 | <string>Address</string> | |||
|
276 | </property> | |||
|
277 | </column> | |||
|
278 | <column> | |||
|
279 | <property name="text"> | |||
|
280 | <string>Size</string> | |||
|
281 | </property> | |||
|
282 | </column> | |||
|
283 | </widget> | |||
243 | </item> |
|
284 | </item> | |
244 | </layout> |
|
285 | </layout> | |
245 | </widget> |
|
286 | </widget> |
@@ -210,6 +210,11 QList<codeFragment* > PythonQtWrapper_E | |||||
210 | return ( theWrappedObject->getFragments(fragmentList)); |
|
210 | return ( theWrappedObject->getFragments(fragmentList)); | |
211 | } |
|
211 | } | |
212 |
|
212 | |||
|
213 | int PythonQtWrapper_ElfFile::getSectionCount(ElfFile* theWrappedObject) | |||
|
214 | { | |||
|
215 | return ( theWrappedObject->getSectionCount()); | |||
|
216 | } | |||
|
217 | ||||
213 | bool PythonQtWrapper_ElfFile::getSectionData(ElfFile* theWrappedObject, int index, char** buffer) |
|
218 | bool PythonQtWrapper_ElfFile::getSectionData(ElfFile* theWrappedObject, int index, char** buffer) | |
214 | { |
|
219 | { | |
215 | return ( theWrappedObject->getSectionData(index, buffer)); |
|
220 | return ( theWrappedObject->getSectionData(index, buffer)); | |
@@ -220,6 +225,11 qint64 PythonQtWrapper_ElfFile::getSect | |||||
220 | return ( theWrappedObject->getSectionDatasz(index)); |
|
225 | return ( theWrappedObject->getSectionDatasz(index)); | |
221 | } |
|
226 | } | |
222 |
|
227 | |||
|
228 | int PythonQtWrapper_ElfFile::getSectionIndex(ElfFile* theWrappedObject, QString name) | |||
|
229 | { | |||
|
230 | return ( theWrappedObject->getSectionIndex(name)); | |||
|
231 | } | |||
|
232 | ||||
223 | qint64 PythonQtWrapper_ElfFile::getSectionMemsz(ElfFile* theWrappedObject, int index) |
|
233 | qint64 PythonQtWrapper_ElfFile::getSectionMemsz(ElfFile* theWrappedObject, int index) | |
224 | { |
|
234 | { | |
225 | return ( theWrappedObject->getSectionMemsz(index)); |
|
235 | return ( theWrappedObject->getSectionMemsz(index)); | |
@@ -240,9 +250,9 QString PythonQtWrapper_ElfFile::getSec | |||||
240 | return ( theWrappedObject->getSectionType(index)); |
|
250 | return ( theWrappedObject->getSectionType(index)); | |
241 | } |
|
251 | } | |
242 |
|
252 | |||
243 |
int PythonQtWrapper_ElfFile::getSe |
|
253 | int PythonQtWrapper_ElfFile::getSegmentCount(ElfFile* theWrappedObject) | |
244 | { |
|
254 | { | |
245 |
return ( theWrappedObject->getSe |
|
255 | return ( theWrappedObject->getSegmentCount()); | |
246 | } |
|
256 | } | |
247 |
|
257 | |||
248 | qint64 PythonQtWrapper_ElfFile::getSegmentFilesz(ElfFile* theWrappedObject, int index) |
|
258 | qint64 PythonQtWrapper_ElfFile::getSegmentFilesz(ElfFile* theWrappedObject, int index) | |
@@ -280,9 +290,44 qint64 PythonQtWrapper_ElfFile::getSegm | |||||
280 | return ( theWrappedObject->getSegmentVaddr(index)); |
|
290 | return ( theWrappedObject->getSegmentVaddr(index)); | |
281 | } |
|
291 | } | |
282 |
|
292 | |||
283 |
int PythonQtWrapper_ElfFile::getS |
|
293 | quint64 PythonQtWrapper_ElfFile::getSymbolAddress(ElfFile* theWrappedObject, int index) | |
284 | { |
|
294 | { | |
285 |
return ( theWrappedObject->getS |
|
295 | return ( theWrappedObject->getSymbolAddress(index)); | |
|
296 | } | |||
|
297 | ||||
|
298 | int PythonQtWrapper_ElfFile::getSymbolCount(ElfFile* theWrappedObject) | |||
|
299 | { | |||
|
300 | return ( theWrappedObject->getSymbolCount()); | |||
|
301 | } | |||
|
302 | ||||
|
303 | QString PythonQtWrapper_ElfFile::getSymbolLinkType(ElfFile* theWrappedObject, int index) | |||
|
304 | { | |||
|
305 | return ( theWrappedObject->getSymbolLinkType(index)); | |||
|
306 | } | |||
|
307 | ||||
|
308 | QString PythonQtWrapper_ElfFile::getSymbolName(ElfFile* theWrappedObject, int index) | |||
|
309 | { | |||
|
310 | return ( theWrappedObject->getSymbolName(index)); | |||
|
311 | } | |||
|
312 | ||||
|
313 | int PythonQtWrapper_ElfFile::getSymbolSectionIndex(ElfFile* theWrappedObject, int index) | |||
|
314 | { | |||
|
315 | return ( theWrappedObject->getSymbolSectionIndex(index)); | |||
|
316 | } | |||
|
317 | ||||
|
318 | QString PythonQtWrapper_ElfFile::getSymbolSectionName(ElfFile* theWrappedObject, int index) | |||
|
319 | { | |||
|
320 | return ( theWrappedObject->getSymbolSectionName(index)); | |||
|
321 | } | |||
|
322 | ||||
|
323 | quint64 PythonQtWrapper_ElfFile::getSymbolSize(ElfFile* theWrappedObject, int index) | |||
|
324 | { | |||
|
325 | return ( theWrappedObject->getSymbolSize(index)); | |||
|
326 | } | |||
|
327 | ||||
|
328 | QString PythonQtWrapper_ElfFile::getSymbolType(ElfFile* theWrappedObject, int index) | |||
|
329 | { | |||
|
330 | return ( theWrappedObject->getSymbolType(index)); | |||
286 | } |
|
331 | } | |
287 |
|
332 | |||
288 | QString PythonQtWrapper_ElfFile::getType(ElfFile* theWrappedObject) |
|
333 | QString PythonQtWrapper_ElfFile::getType(ElfFile* theWrappedObject) |
@@ -92,13 +92,15 void delete_ElfFile(ElfFile* obj) { dele | |||||
92 | qint64 getEntryPointAddress(ElfFile* theWrappedObject); |
|
92 | qint64 getEntryPointAddress(ElfFile* theWrappedObject); | |
93 | QList<codeFragment* > getFragments(ElfFile* theWrappedObject); |
|
93 | QList<codeFragment* > getFragments(ElfFile* theWrappedObject); | |
94 | QList<codeFragment* > getFragments(ElfFile* theWrappedObject, QStringList fragmentList); |
|
94 | QList<codeFragment* > getFragments(ElfFile* theWrappedObject, QStringList fragmentList); | |
|
95 | int getSectionCount(ElfFile* theWrappedObject); | |||
95 | bool getSectionData(ElfFile* theWrappedObject, int index, char** buffer); |
|
96 | bool getSectionData(ElfFile* theWrappedObject, int index, char** buffer); | |
96 | qint64 getSectionDatasz(ElfFile* theWrappedObject, int index); |
|
97 | qint64 getSectionDatasz(ElfFile* theWrappedObject, int index); | |
|
98 | int getSectionIndex(ElfFile* theWrappedObject, QString name); | |||
97 | qint64 getSectionMemsz(ElfFile* theWrappedObject, int index); |
|
99 | qint64 getSectionMemsz(ElfFile* theWrappedObject, int index); | |
98 | QString getSectionName(ElfFile* theWrappedObject, int index); |
|
100 | QString getSectionName(ElfFile* theWrappedObject, int index); | |
99 | qint64 getSectionPaddr(ElfFile* theWrappedObject, int index); |
|
101 | qint64 getSectionPaddr(ElfFile* theWrappedObject, int index); | |
100 | QString getSectionType(ElfFile* theWrappedObject, int index); |
|
102 | QString getSectionType(ElfFile* theWrappedObject, int index); | |
101 |
int getSe |
|
103 | int getSegmentCount(ElfFile* theWrappedObject); | |
102 | qint64 getSegmentFilesz(ElfFile* theWrappedObject, int index); |
|
104 | qint64 getSegmentFilesz(ElfFile* theWrappedObject, int index); | |
103 | QString getSegmentFlags(ElfFile* theWrappedObject, int index); |
|
105 | QString getSegmentFlags(ElfFile* theWrappedObject, int index); | |
104 | qint64 getSegmentMemsz(ElfFile* theWrappedObject, int index); |
|
106 | qint64 getSegmentMemsz(ElfFile* theWrappedObject, int index); | |
@@ -106,7 +108,14 void delete_ElfFile(ElfFile* obj) { dele | |||||
106 | qint64 getSegmentPaddr(ElfFile* theWrappedObject, int index); |
|
108 | qint64 getSegmentPaddr(ElfFile* theWrappedObject, int index); | |
107 | QString getSegmentType(ElfFile* theWrappedObject, int index); |
|
109 | QString getSegmentType(ElfFile* theWrappedObject, int index); | |
108 | qint64 getSegmentVaddr(ElfFile* theWrappedObject, int index); |
|
110 | qint64 getSegmentVaddr(ElfFile* theWrappedObject, int index); | |
109 |
int getS |
|
111 | quint64 getSymbolAddress(ElfFile* theWrappedObject, int index); | |
|
112 | int getSymbolCount(ElfFile* theWrappedObject); | |||
|
113 | QString getSymbolLinkType(ElfFile* theWrappedObject, int index); | |||
|
114 | QString getSymbolName(ElfFile* theWrappedObject, int index); | |||
|
115 | int getSymbolSectionIndex(ElfFile* theWrappedObject, int index); | |||
|
116 | QString getSymbolSectionName(ElfFile* theWrappedObject, int index); | |||
|
117 | quint64 getSymbolSize(ElfFile* theWrappedObject, int index); | |||
|
118 | QString getSymbolType(ElfFile* theWrappedObject, int index); | |||
110 | QString getType(ElfFile* theWrappedObject); |
|
119 | QString getType(ElfFile* theWrappedObject); | |
111 | qint64 getVersion(ElfFile* theWrappedObject); |
|
120 | qint64 getVersion(ElfFile* theWrappedObject); | |
112 | bool static_ElfFile_isElf(const QString& File); |
|
121 | bool static_ElfFile_isElf(const QString& File); | |
@@ -589,12 +598,12 public slots: | |||||
589 | codeFragment* new_codeFragment(); |
|
598 | codeFragment* new_codeFragment(); | |
590 | codeFragment* new_codeFragment(char* data, unsigned int size, unsigned int address); |
|
599 | codeFragment* new_codeFragment(char* data, unsigned int size, unsigned int address); | |
591 | void delete_codeFragment(codeFragment* obj) { delete obj; } |
|
600 | void delete_codeFragment(codeFragment* obj) { delete obj; } | |
|
601 | void py_set_address(codeFragment* theWrappedObject, unsigned int address){ theWrappedObject->address = address; } | |||
|
602 | unsigned int py_get_address(codeFragment* theWrappedObject){ return theWrappedObject->address; } | |||
|
603 | void py_set_data(codeFragment* theWrappedObject, char* data){ theWrappedObject->data = data; } | |||
|
604 | char* py_get_data(codeFragment* theWrappedObject){ return theWrappedObject->data; } | |||
592 | void py_set_size(codeFragment* theWrappedObject, unsigned int size){ theWrappedObject->size = size; } |
|
605 | void py_set_size(codeFragment* theWrappedObject, unsigned int size){ theWrappedObject->size = size; } | |
593 | unsigned int py_get_size(codeFragment* theWrappedObject){ return theWrappedObject->size; } |
|
606 | unsigned int py_get_size(codeFragment* theWrappedObject){ return theWrappedObject->size; } | |
594 | void py_set_data(codeFragment* theWrappedObject, char* data){ theWrappedObject->data = data; } |
|
|||
595 | char* py_get_data(codeFragment* theWrappedObject){ return theWrappedObject->data; } |
|
|||
596 | void py_set_address(codeFragment* theWrappedObject, unsigned int address){ theWrappedObject->address = address; } |
|
|||
597 | unsigned int py_get_address(codeFragment* theWrappedObject){ return theWrappedObject->address; } |
|
|||
598 | }; |
|
607 | }; | |
599 |
|
608 | |||
600 |
|
609 |
General Comments 0
You need to be logged in to leave comments.
Login now