Enchan1207 / cmake-xc8

CMake XC8 Compiler toolchain
MIT License
1 stars 0 forks source link

デバッグがうまくいかないことがある? #5

Closed Enchan1207 closed 10 months ago

Enchan1207 commented 10 months ago

IDE側とコンパイルオプションが違うっぽい

Enchan1207 commented 10 months ago
単一ファイルのコンパイル ``` xc8-cc -DXPRJ_default=default -D__DEBUG=1 -I"/Applications/microchip/xc8/v2.45/pic/include" -I"/Applications/microchip/xc8/v2.45/pic/include/proc" -O0 -Wa,-a -Wl,--data-init -c -fasmfile -fno-short-double -fno-short-float -gdwarf-3 -ginhx32 -maddrqual=ignore -mcpu=16F1936 -mdebugger=pickit3 -mdfp="/Applications/microchip/mplabx/v6.15/packs/Microchip/PIC12-16F1xxx_DFP/1.6.241/xc8" -mno-default-config-bits -mno-download -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-stackcall -mstack=compiled:auto:auto -msummary=-psect,-class,+mem,-hex,-file -mwarn=-3 -o build/default/debug/config.p1 -std=c99 -xassembler-with-cpp source.c ```
実行可能ファイルの生成 ``` xc8-cc -DXPRJ_default=default -D__DEBUG=1 -I"/Applications/microchip/xc8/v2.45/pic/include" -I"/Applications/microchip/xc8/v2.45/pic/include/proc" -O0 -Wa,-a -Wl,--data-init -Wl,--defsym=__MPLAB_BUILD=1 -Wl,--memorysummary,dist/default/debug/memoryfile.xml -Wl,-Map=dist/default/debug/blink.X.debug.map -fasmfile -fno-short-double -fno-short-float -gdwarf-3 -ginhx32 -maddrqual=ignore -mcpu=16F1936 -mdebugger=pickit3 -mdfp="/Applications/microchip/mplabx/v6.15/packs/Microchip/PIC12-16F1xxx_DFP/1.6.241/xc8" -mno-default-config-bits -mno-download -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-stackcall -mram=default,-320-32f -mstack=compiled:auto:auto -msummary=-psect,-class,+mem,-hex,-file -mwarn=-3 -o dist/default/debug/blink.X.debug.elf -std=c99 -xassembler-with-cpp obj1.p1 obj2.p1 ... ```
Enchan1207 commented 10 months ago

少なくとも -Og じゃなくて -O0 なんだな

Enchan1207 commented 10 months ago

バイナリ生成時に以下のオプションが追加されている:

Enchan1207 commented 10 months ago

デバッガがどう呼ばれてるのか非常に気になるが、MDBってそんな設定項目あったかなあ

Enchan1207 commented 10 months ago

とりあえず足してみた

Enchan1207 commented 10 months ago

DFP自動で探すプログラムを組まねばならないが、ちょっとそれをやっている暇はない